工作流
概述
工作流模块提供可视化的 AI 流程编排能力,支持通过拖拽方式设计工作流和对话流,无需编码即可构建复杂的 AI 应用流程。
流程类型
系统支持两种流程类型:
工作流(Workflow)

面向自动化任务的有向无环图(DAG)编排,适用于:
- 批量数据处理
- 自动化报告生成
- 多步骤 AI 任务
- 定时触发的业务流程
对话流(Chatflow)

面向多轮对话场景的流程编排,适用于:
- 智能客服
- 智能问答助手
- 流程式对话引导
- 多轮任务型对话
流程管理

流程列表
- 新增流程:创建新的工作流或对话流
- 编辑流程:修改流程基本信息
- 设计流程:进入可视化编排界面
- 版本管理:查看历史版本、切换版本
版本管理
- 语义化版本:采用 v1.0.0 格式的版本号
- 版本备注:记录每次修改的内容说明
- 版本切换:可查看和回滚到任意历史版本
- 发布状态:区分草稿、已发布、线上版本
发布流程
- 存草稿:保存当前编辑内容,不影响线上运行
- 发布:将当前版本发布为线上版本
- 发布记录:记录每次发布的时间和操作人
可视化设计器

画布操作
- 拖拽节点:点击添加节点或者点击节点右侧+号可以添加新节点,可以拖拽摆放位置
- 连线:拖拽节点连接点创建连线
- 拖拽移动:拖动节点调整位置
- 缩放平移:滚轮缩放画布,拖拽平移画布
- 自动布局:一键自动整理节点布局
- 复制粘贴:复制选中节点到剪贴板
- 修改撤回:
Control + Z可以撤回修改 - 删除:删除选中的节点和连线
- 导入/导出:流程配置的导入导出
节点面板
左侧展示可用的节点类型,按分类组织:
- 基础节点:Start、End
- AI 节点:LLM、Knowledge
- 工具节点:Tool
- 逻辑节点:Condition、Aggregator、Batch
属性面板
右侧展示选中节点的配置:
- 节点名称:自定义节点显示名称
- 节点配置:各节点类型的具体参数
- 输入参数:定义节点的输入
- 输出变量:查看节点输出的变量
节点类型
Start(开始节点)
流程的入口节点,用于定义流程的全局输入参数。
- 输入参数定义:添加流程的输入参数
- 参数类型:支持文本、数字、布尔值、对象、数组等
- 参数默认值:设置参数的默认值
- 参数说明:描述参数的用途
End(结束节点)
流程的出口节点,用于定义流程的输出结果。
- 输出配置:定义要输出的变量
- 变量映射:将其他节点的输出映射为流程输出
LLM(大语言模型节点)
调用大语言模型进行文本生成、对话、推理等任务。


- 模型选择:从已配置的模型中选择
- 系统提示词:设置模型的角色设定
- 用户提示词:输入问题或任务描述,支持变量引用
- 温度参数:控制输出的随机性
- 最大 Token:限制输出长度
- 工具绑定:选择该节点可调用的工具(可选)
- 上下文引用:引用其他节点的输出作为上下文
Knowledge(知识库检索节点)
从知识库中检索相关内容,为 LLM 提供参考信息。

- 知识库选择:选择要检索的知识库
- 检索内容:输入检索文本,支持变量引用
- Top K:设置返回结果数量
- 相似度阈值:过滤低相似度结果
- 结果格式:配置检索结果的格式
Tool(工具调用节点)
调用已注册的工具执行特定任务,如 HTTP 请求、数据处理等。
- 工具选择:从工具库中选择工具
- 参数配置:填写工具的输入参数,支持变量引用
- 结果处理:获取工具的返回值
Condition(条件分支节点)
根据条件判断进行分支路由,实现流程的条件控制。

- 条件配置:添加多个条件分支
- 条件表达式:支持 ==、!=、>、>=、<、<=、contains 等运算符
- 变量引用:引用其他节点的输出作为判断条件
- 默认分支:条件都不满足时走的分支
Aggregator(变量聚合节点)
将多个变量聚合为一个变量,用于数据整合。
- 聚合配置:添加要聚合的变量
- 聚合方式:支持列表拼接、对象合并等
- 结果输出:输出聚合后的变量
Batch(批处理节点)
对列表数据进行批处理,并行处理多个子任务。
- 输入列表:选择要处理的列表变量
- 子流程设计:设计处理单个元素的子流程
- 并行执行:多个元素并行处理提高效率
- 结果收集:收集所有子流程的输出
变量系统
参数变量引用
在节点输入参数和结束节点输出参数,支持选择引用的变量。
文本中变量引用
在节点配置中(提示词、回答等)使用 {{xxx}} 语法引用当前节点的输入参数,变量选择组件支持@唤起变量选择。
环境变量
- 环境变量配置:在设计器中配置环境变量
- 使用场景:API 密钥、数据库连接等敏感信息
- 版本隔离:不同版本可配置不同的环境变量
测试与调试
流程试运行(工作流)

- 输入参数:填写测试用的输入参数
- 执行流程:运行整个流程
- 执行日志:查看完整的执行日志
- 耗时统计:查看每个节点的执行耗时
流程试运行(对话流)


- 选择智能体:选择对话流被关联的对话流类型智能体
- 执行流程:运行整个流程
- 执行日志:查看完整的执行日志
- 耗时统计:查看每个节点的执行耗时
单节点测试

- 独立测试:选中单个节点单独测试
- 参数填写:直接输入测试参数
- 结果预览:查看该节点的执行结果
检查清单

发布前自动检查流程的完整性:
- 节点连接:检查节点是否都正确连接
- 必填参数:检查必填参数是否都已配置
- 变量引用:检查引用的变量是否存在
- 循环检测:检测流程是否存在循环
运行观测

运行历史选择
- 历史选择:查看试运行流程执行记录
- 状态筛选:按运行状态筛选(成功、失败)
- 时间筛选:按执行时间筛选
- 查看详情:下拉框选中查看某次执行的详细信息
执行详情

- 流程概览:展示流程执行的整体状态
- 节点状态:每个节点的执行状态(成功/失败/跳过)
- 节点输出:查看每个节点的输出数据
- 执行日志:查看完整的执行日志
- 耗时统计:每个节点的执行耗时
- 错误信息:失败时查看详细的错误信息
观测面板
- 可视化执行:在画布上实时显示执行进度(待实现)
- 高亮节点:高亮当前正在执行的节点(待实现)
- 状态标识:用不同颜色标识节点状态
- 链路追踪:关联链路追踪数据,查看详细调用链
数据库实体
AiFlow(AI流程主表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | Long | 主键ID |
| type | Integer | 类型:1-工作流Workflow,2-对话流Chatflow |
| name | String | 流程名称 |
| code | String | 流程唯一编码 |
| description | String | 流程描述 |
| icon | String | 图标地址 |
| status | Integer | 启用状态:0-禁用,1-启用 |
| publishStatus | Integer | 发布状态:0-未发布,1-已发布 |
| latestVersion | String | 当前最新版本号(v1.0.0格式) |
| onlineVersion | String | 线上发布版本号,空=未发布 |
| createBy | Long | 创建人ID |
| createTime | LocalDateTime | 创建时间 |
| updateBy | Long | 最后更新人ID |
| updateTime | LocalDateTime | 最后更新时间 |
| deleteFlag | Integer | 软删除:0-正常,1-删除 |
AiFlowVersion(AI流程版本画布表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | Long | 主键 |
| flowId | Long | 关联ai_flow主键 |
| versionNo | String | 语义化版本 v1.0.0 |
| versionName | String | 版本别名/标题 |
| remark | String | 修改备注 |
| flowJson | String | VueFlow画布完整数据JSON(nodes/edges/viewport) |
| configJson | String | 流程全局配置(入参、超时、重试、权限等) |
| publishingStatus | Integer | 发布状态:0-草稿,1-已发布,2-待审核 |
| publishingTime | LocalDateTime | 发布时间 |
| publishingBy | Long | 发布人ID |
| createBy | Long | 保存操作人 |
| createTime | LocalDateTime | 版本生成时间 |
| updateBy | Long | 更新人 |
| updateTime | LocalDateTime | 更新时间 |
| deleteFlag | Integer | 软删除 |
AiFlowRuntime(流程运行实例)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | Long | 执行实例ID |
| flowId | Long | 流程ID |
| flowName | String | 流程名称(冗余) |
| versionNo | String | 执行使用的语义化版本v1.0.0 |
| traceId | String | 全局追踪ID |
| runStatus | Integer | 运行状态:0-等待,1-运行中,2-成功,3-失败,4-终止 |
| trialFlag | Integer | 是否试运行:0-正式,1-流程试运行,2-节点试运行 |
| startTime | LocalDateTime | 开始时间 |
| endTime | LocalDateTime | 结束时间 |
| errorMsg | String | 错误信息 |
| costMs | Long | 耗时毫秒 |
| createBy | Long | 触发人 |
| createTime | LocalDateTime | 创建时间 |
| updateBy | Long | 更新操作人 |
| updateTime | LocalDateTime | 更新时间 |
| deleteFlag | Integer | 软删除标记 |
AiFlowRuntimeNode(运行节点明细)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | Long | 自增主键 |
| runtimeId | Long | 关联运行实例ID |
| nodeId | String | VueFlow节点唯一id |
| nodeName | String | 节点名称(冗余) |
| nodeType | String | 节点类型(Start/LLM/Knowledge/Condition/End) |
| runStatus | Integer | 运行状态:0-未执行,1-执行中,2-成功,3-失败,4-跳过 |
| errorStack | String | 异常堆栈信息 |
| startTime | LocalDateTime | 节点开始时间 |
| endTime | LocalDateTime | 节点结束时间 |
| costMs | Long | 节点耗时(毫秒) |
| createBy | Long | 创建人 |
| createTime | LocalDateTime | 创建时间 |
| updateBy | Long | 更新人 |
| updateTime | LocalDateTime | 更新时间 |
| deleteFlag | Integer | 软删除 |