Skip to content
GitCode

工作流

概述

工作流模块提供可视化的 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流程主表)

字段类型说明
idLong主键ID
typeInteger类型:1-工作流Workflow,2-对话流Chatflow
nameString流程名称
codeString流程唯一编码
descriptionString流程描述
iconString图标地址
statusInteger启用状态:0-禁用,1-启用
publishStatusInteger发布状态:0-未发布,1-已发布
latestVersionString当前最新版本号(v1.0.0格式)
onlineVersionString线上发布版本号,空=未发布
createByLong创建人ID
createTimeLocalDateTime创建时间
updateByLong最后更新人ID
updateTimeLocalDateTime最后更新时间
deleteFlagInteger软删除:0-正常,1-删除

AiFlowVersion(AI流程版本画布表)

字段类型说明
idLong主键
flowIdLong关联ai_flow主键
versionNoString语义化版本 v1.0.0
versionNameString版本别名/标题
remarkString修改备注
flowJsonStringVueFlow画布完整数据JSON(nodes/edges/viewport)
configJsonString流程全局配置(入参、超时、重试、权限等)
publishingStatusInteger发布状态:0-草稿,1-已发布,2-待审核
publishingTimeLocalDateTime发布时间
publishingByLong发布人ID
createByLong保存操作人
createTimeLocalDateTime版本生成时间
updateByLong更新人
updateTimeLocalDateTime更新时间
deleteFlagInteger软删除

AiFlowRuntime(流程运行实例)

字段类型说明
idLong执行实例ID
flowIdLong流程ID
flowNameString流程名称(冗余)
versionNoString执行使用的语义化版本v1.0.0
traceIdString全局追踪ID
runStatusInteger运行状态:0-等待,1-运行中,2-成功,3-失败,4-终止
trialFlagInteger是否试运行:0-正式,1-流程试运行,2-节点试运行
startTimeLocalDateTime开始时间
endTimeLocalDateTime结束时间
errorMsgString错误信息
costMsLong耗时毫秒
createByLong触发人
createTimeLocalDateTime创建时间
updateByLong更新操作人
updateTimeLocalDateTime更新时间
deleteFlagInteger软删除标记

AiFlowRuntimeNode(运行节点明细)

字段类型说明
idLong自增主键
runtimeIdLong关联运行实例ID
nodeIdStringVueFlow节点唯一id
nodeNameString节点名称(冗余)
nodeTypeString节点类型(Start/LLM/Knowledge/Condition/End)
runStatusInteger运行状态:0-未执行,1-执行中,2-成功,3-失败,4-跳过
errorStackString异常堆栈信息
startTimeLocalDateTime节点开始时间
endTimeLocalDateTime节点结束时间
costMsLong节点耗时(毫秒)
createByLong创建人
createTimeLocalDateTime创建时间
updateByLong更新人
updateTimeLocalDateTime更新时间
deleteFlagInteger软删除