工作流应用将复杂的任务拆分成一系列有序执行的步骤,以降低系统复杂度。在阿里云百炼,通过工作流组合使用大模型、API和函数计算等节点,可有效降低编码成本。本文介绍如何创建工作流。
应用介绍
为什么使用工作流应用
工作流是一种将复杂任务拆分为一系列有序步骤的方法,旨在简化系统复杂度,提高工作效率。在现代软件开发和业务流程管理中,工作流应用变得尤为重要。通过在阿里云百炼平台上创建工作流应用,可以清晰地定义任务的执行顺序、责任分配以及各步骤之间的依赖关系,从而实现自动化和优化。
工作流应用有许多使用场景,如:
- 旅行规划:用户可通过工作流插件选择目的地等参数,自动生成旅行计划,包括航班、住宿、景点推荐等。
- 报告分析:针对复杂数据集,通过组合数据处理、分析和可视化插件,生成结构化和格式化的分析报告,满足不同业务需求。
- 客服支持:通过自动化工作流处理客户咨询,包括问题分类等,提高客服响应速度和准确性。
- 内容创作:实现文章、市场营销文案等内容的生成,用户只需输入主题和要求,系统自动生成符合要求的文稿。
- 教育培训:通过工作流设计个性化学习方案,包括学习进度跟踪、测评等,实现学生的自主学习。
- 医疗问诊:根据患者输入的症状,通过组合多种分析工具生成初步诊断或推荐相关检查,辅助医生进行进一步判断。
节点类型
工作流由多种功能节点组合而成。
基础节点
AI 节点
工具节点
数据处理节点
会话变量
会话变量作为全局变量,能够在当前工作流的全生命周期内记录参数信息,并可在各个节点中进行引用。可在画布配置页面右上角单击会话变量图标进行配置。
测试应用
在工作流配置完成后,可以通过测试功能验证工作流的运行效果。单击右上角测试按钮,打开测试面板。测试面板支持多种测试模式,可根据不同的使用场景选择合适的模式测试。
文本对话
文本对话是默认的测试模式,会保留历史对话上下文,支持连续的多轮对话交互。
- 在测试面板顶部的下拉框中选择文本对话模式(默认模式)。如果工作流中包含自定义变量,在参数配置区域填写变量值。
- 在输入框输入测试内容(支持文本输入和附件上传),单击发送按钮(或按 Enter 键)执行测试。
- 查看测试结果,可以单击节点查看详细的输入输出,也可以切换输出格式(Text/JSON 格式)查看结果。
- 如需继续多轮对话,在输入框输入下一轮对话内容并发送;如需重新开始对话,可单击清空按钮。
文本生成
文本生成模式为单轮交互,每次测试都是独立的,不会保留历史对话上下文,支持两种模式:
- 同步运行:适用于执行时间较短的简单任务,工作流执行完成后直接返回结果。
- 异步运行:适用于执行时间较长的复杂应用,系统返回 Task ID,可通过 Task ID 查询任务执行结果。
同步运行
同步运行模式下,工作流会立即执行并等待完成,执行完成后直接返回结果。
- 在输入框中输入测试内容,单击运行按钮执行测试。
- 等待工作流运行完成后,切换到结果标签页查看输出结果。可以单击节点查看详细的输入输出,也可以切换输出格式(Text/JSON 格式)查看结果。
异步运行
异步运行模式下,工作流会在后台执行。系统会立即返回 Task ID,可通过 Task ID 查询任务执行结果,也可在任务中心查看历史异步任务。
- 在输入框中输入测试内容,单击运行按钮执行测试。系统会立即返回 Task ID。
- 异步任务执行过程中,测试面板会显示"执行中"状态,可单击刷新按钮刷新任务状态。
- 任务执行完成后,在结果标签页中查看输出结果,结果中会显示"异步"标签和 Task ID。可以单击节点查看详细的输入输出,也可以切换输出格式(Text/JSON 格式)查看结果。
音视频互动
可以将工作流应用发布为音视频实时对话应用,并提供便捷的调试窗口,支持通过 H5/APP 快速体验 demo 效果,也可以通过音视频 SDK 集成到 Web/iOS/Android 应用中。
- 不推荐使用深度思考模式的模型进行实时音视频对话,会影响对话体验,如 DeepSeek-R1、QwQ 系列模型。
- DeepSeek V3 模型不支持视频对话功能。
- 选择开始节点、大模型节点和结束节点,配置一个可正常执行的工作流。
- 通过测试文本对话,先在文本对话中调试出符合预期的应用效果。
- 文本会话效果满意后,切换到语音互动或视频互动,再单击去配置配置 API Key 用于调用应用。
- 进行音视频设置,配置参数后,再单击拨打调试音视频互动效果。其中语音转文字可进行语种选择,文字转语音可进行语音模型选择和音色选择。
- 效果测试满意后,单击右上角体验按钮,生成临时体验二维码,通过手机微信/钉钉/浏览器扫码体验交互效果。二维码有效期为 24 小时。
- 效果确认后,单击发布按钮发布应用。再进入发布渠道,完成智能媒体服务开通和 SLR 授权后,创建互动智能体。
检查清单
在检查清单中可以查看为确保工作流成功运行所需进行的配置。可在画布配置页面右上角单击检查清单图标查看。
发布与调用
完成工作流配置和测试后,单击右上角发布按钮发布应用。发布后可通过 API 调用工作流应用。
如需使用 Responses API 调用,请参阅 Responses API 调用。
前提条件
- 已获取 API Key 并配置 API Key 到环境变量。
- 已创建工作流应用,并在应用管理页面的应用卡片上获取 APP_ID。
- 若通过 DashScope SDK 调用,需要安装 DashScope SDK。
快速开始
节点执行状态
响应中的 output.thoughts[] 按执行顺序返回各节点的运行信息。数组每个元素的 response 字段是一段 JSON 字符串,包含以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| nodeId | string | 节点 ID。 |
| nodeName | string | 节点名称。 |
| nodeType | string | 节点类型,如 Start、LLM、Script。 |
| nodeStatus | string | 节点执行状态,取值见下表。 |
| nodeResult | string | 节点输出结果,JSON 字符串。开始节点等无输出节点不返回该字段。 |
| nodeExecTime | string | 节点执行耗时,如 1167ms。节点执行中时不返回该字段。 |
nodeStatus 取值:
| 取值 | 说明 |
|---|---|
| success | 节点执行成功。 |
| fail | 节点执行失败。 |
| skip | 节点被跳过,未执行。 |
| executing | 节点执行中,nodeResult 为空。流式输出时,节点先返回 executing,执行完成后再返回最终状态。 |
多轮对话
相比于单轮对话,多轮对话可以让大模型参考历史对话信息,更符合日常交流的场景。
自定义参数传递
调用工作流应用时,动态参数统一封装在 input 对象中,该对象包含两个关键字段:
prompt:传递用户的主要输入内容。这部分内容会自动映射到工作流中名为{{query}}的内置变量,无需手动定义。biz_params:以键值对形式传递自定义的业务参数(例如{"city": "杭州"})。这些参数需要在工作流的开始节点中预先定义,之后便可作为全局变量在流程中的任意节点中通过{{参数名}}的方式引用。
工作流导入/导出
- 导入/导出阿里云百炼工作流 单击工作流页面上方的更多图标,选择导出 DSL 或导入阿里云百炼 DSL。
-
导入 Dify 工作流
支持一键导入 Dify 工作流,便于迁移和复用。
- 单击工作流页面上方的更多图标,选择导入 Dify DSL。
- 调整各节点的参数配置。节点兼容性详情如下:
Dify 节点 对应的阿里云百炼节点 兼容性 开始 开始 sys.query对应阿里云百炼的query;sys.dialogue_count对应阿里云百炼的最大记忆轮次。LLM 大模型 模型:阿里云百炼不支持的模型会置空,需自行选择,阿里云百炼支持模型完全兼容;Prompt:Dify 的 System 对应阿里云百炼的提示词,User 对应用户提示词;视觉能力完全一致;上下文:阿里云百炼将 Dify 上下文的原始字段直接纳入 System Prompt。 知识检索 知识库 输入:统一引入 content字段作为输入;知识库:导入后置空,需手动关联;召回设置:Dify 的Top-k映射为阿里云百炼的召回片段数。直接回复 输出节点 完全兼容。 Agent 无 仅保留名称,需单击以选择具体的阿里云百炼节点进行替换。 问题分类器 意图分类 阿里云百炼不支持的模型会置空,需自行选择,阿里云百炼支持模型完全兼容。 迭代 批处理 输入对应阿里云百炼的批处理数组;输出变量对应阿里云百炼的输出变量。 循环 循环 完全兼容。 代码执行 脚本 区分 Python 和 JavaScript 脚本。 模板转换 无 不兼容,生成自定义节点。 变量聚合器 变量处理 对应阿里云百炼变量处理节点的聚合分组输出模型。 文档提取器 无 不兼容,生成自定义节点。 变量赋值 变量设置 完全兼容。 参数提取器 参数提取 阿里云百炼不支持推理模式,其余完全兼容。 HTTP 请求 API 完全兼容,但需要重新鉴权。 列表操作 无 不兼容,生成自定义节点。 工具 插件、MCP 不兼容,生成自定义节点。 注释 无 不兼容。 结束 结束 若 Dify 工作流中存在多个结束节点,阿里云百炼会将其转换为一个变量聚合节点和一个结束节点。
查看工作流应用版本
- 单击工作流配置页面右上角的发布,在发布对话框中输入版本信息(例如 1.0.0)后,单击确定。
- 单击页面顶部的版本管理,可在历史版本面板按需查看或使用(单击覆盖当前草稿或回到当前版本)当前工作流应用的不同版本。也可以单击顶部的 DSL 导出该版本,导出所选历史版本工作流的 DSL。
- (可选)在节点库中查看或搜索节点。
删除与复制工作流应用
可以在应用管理找到已发布的应用卡片,单击更多图标,进行删除与复制工作流、修改应用名操作。
常见问题
工作流应用相关
- 怎么把工作流运行的结果写入数据库? 使用脚本转换节点,可将上一节点的内容写入数据库。
- 如何上传文件? 可以在工作流应用中加入一个 API 节点来实现文件上传功能。
- 如何上传图片? 使用 VL 模型,通过指定参数传入图片 URL 地址。
- 能否在工作流应用里使用异步任务 API? 工作流应用超时时间为 600 秒,不建议在流程里使用异步任务 API。
- 工作流前端应该怎么调用 API 并且流式输出? 暂时不支持前端调用。
- 工作流无法导入单独的 .yaml 文件? 不支持单独导入 .yaml 文件,需提供包含 md5 文件的压缩包,建议重新生成 MD5。
- 工作流变量名可以为中文吗? 变量名不支持使用中文。
- 对话记录存储问题? 工作流应用仅保存一个月数据,需自行保存对话记录,session_id 有效时间为一小时。
节点相关
- 若意图分类节点开启上下文,运行报错? 若意图分类节点开启上下文,则传入该节点的变量类型需为 List 类型。
- API 节点使用流式输出报错? 工作流中的 API 节点不支持流式输出,HTTP API 本身是支持的。
-
如何处理条件判断节点响应速度慢?
- 检查工作流配置:确保每个节点配置正确,尤其是条件判断节点,避免不必要的复杂计算或数据处理。
- 优化代码逻辑:如果条件判断中涉及自定义脚本,尝试优化脚本逻辑,减少不必要的循环或数据处理。
- 批量测试:批量测试当前工作流的平均响应时间,以确定是否存在特定条件下的性能瓶颈。
-
大模型节点流式如何输出思考过程?
需要在大模型节点后添加文本转换节点并配置
reasoning_content变量,打开结果返回开关。返回条件需要结束节点接收。 -
大模型节点输出参数无法自定义?
- 使用脚本节点处理输出:在大模型节点之后添加一个脚本节点,通过脚本处理大模型节点的输出,将其转换为需要的格式或添加额外的输出参数。
- 配置批量节点:如果在批量节点中使用大模型节点,可以在批量节点的配置中选择大模型节点的输出作为最终输出
resultList。
- 工作流 API 调用节点无返回结果及参数传递问题? 确认 API Key 和 Base URL 正确。确认输入参数配置正确,调整字段输入类型,通过模型观测查看模型使用详情。
- 调用知识库的 Excel 数据问题? 无法直接调用本地文件,可通过 MCP 实现本地调用;知识库节点输出需自行处理文字内容,建议增加大模型完成表格转换后再传入脚本处理。