工作流为用户提供了直观的可视化画布,支持通过大模型、代码、参数提取等多种节点来编排复杂的业务流程。旨在实现稳定且可控的业务效果,确保每个流程节点的准确性和可解释性。本节介绍工作流中的关键概念。
变量
变量类型
变量用于承载工作流运行中可流转的数据,包含以下3种类型:
1. 系统变量:表示系统级变量,具有全局性,支持在工作流中的任意节点引用。包含以下三种:
用户本轮对话内容:表示用户当前轮对话的内容。
对话历史:表示用户从开启对话到本轮用户对话上一轮的所有对话内容,包含用户对话内容和系统回复内容。
当前时间:表示当前的系统时间。
2. API 参数:API 参数来自外部系统,调用应用 API 时通过 custom_variables 字段传入工作流(详情请参见 对话端接口文档(WebSocket)、对话端接口文档(HTTP SSE)),工作流根据变量名称获取到参数值。例如在车载场景中,在工作流的 API 数中设置终端用户 ID 字段:userID,在调用 API 时通过custom_variables传入"userID":"abc",则在工作流中使用 API.userID 即可获取变量值"abc"。
3. 节点变量:
节点的输入变量:表示输入到该节点的变量,名称支持用户自定义,输入变量支持引用(包括系统变量、API 参数和当前节点所连接的所有祖先节点的输出变量)和固定值两种配置方式。
节点的输出变量:表示经过该节点处理后,输出给后续节点的变量。根据每个节点特点,输出变量有差异。例如参数提取节点输出变量是提取到的参数,而工具节点输出变量是调用工具后返回的结果。
变量使用方式
工作流变量的变量名及引用方式如下:
变量类型 | 变量名 | 变量英文名(被引用时使用) | 示例说明 |
系统变量 | 用户本轮对话内容 | SYS.UserQuery | - |
| 多轮对话中本轮对话改写结果 | SYS.RewriteQuery | - |
| 对话历史 | SYS.ChatHistory | - |
| 当前时间 | SYS.CurrentTime | - |
API 参数 | 用户自定义名称 | API.ParmName(用户自定义名称) | API.UserID |
节点变量 | 输入变量 | 用户自定义输入变量名称,仅在该节点内部使用 | Query |
| 输出变量 | 节点名称.Output.ParmName(根据节点不同,该名称有差异) | 医院名称提取.Output.HospitalName |
节点
节点是工作流中的基本构建单元,每个节点代表一个特定的操作或功能。节点通过互相连接形成一个完整的业务流程。根据功能和用途,腾讯云智能体开发平台工作流节点可以分为以下几类:
1. 信息收集类节点:用于从用户对话或 UI 交互中收集必要的信息,并将这些信息传递到后续节点。信息收集类节点包括:
选项卡节点
2. 信息处理类节点:用于对收集到的信息进行加工和处理,不再收集新的信息。信息处理类节点包括:
大模型节点
知识检索节点
插件节点
工具节点
代码节点
工作流节点
变量聚合节点
3. 基础节点:工作流运行的基础,负责进入或退出工作流、条件分支判断、串行/并行执行、回复内容输出等功能。基础节点包括:
开始节点
条件判断节点
循环节点
批处理节点
回复节点
消息队列节点
结束节点
连线
连线是一条有向线段,用于连接两个工作流节点,描述工作流执行的流向,并在约束条件下连接节点。
约束条件
约束条件制约节点之间的连线,在特定情况下不允许连接两节点。具体约束条件包括:
工作流中至少要有一个结束回复节点,整个工作流才可以正常执行。
当前节点的输入一定要连接前一个节点的输出,节点的输入之间、输出之间不能连接。
信息收集类节点、信息处理类节点之间没有固定的前后顺序关系。
信息收集类节点、信息处理类节点、开始节点的输出都可以连接多个后续节点,即支持并行处理。
多节点之间的连接需要符合以下校验逻辑:
无环校验
定义:工作流中不能出现节点间的循环依赖,即不能有环。
示例:节点A -> 节点B -> 节点C -> 节点D ->节点A的环状连接。

并行执行校验
定义:并行执行的分支中不能出现信息收集类节点。
示例:参数提取节点2和参数提取节点3处在不同的并行分支中。
