运行工作流
运行工作流功能允许你在开发和测试阶段执行工作流,验证节点配置是否正确,检查数据流是否符合预期。通过测试运行,你可以在部署到生产环境前发现和解决问题。
测试执行方式
Atomemo 提供多种测试执行方式,适应不同的开发和调试需求。
执行整个工作流
运行完整的工作流,从触发器开始到最后一个节点:
执行方法:
- 找到画布顶部工具栏
- 点击"测试"按钮
- 如果有多个触发器,选择要使用的触发器
- 工作流开始执行
自动保存:
- 点击测试前,系统自动保存工作流
- 确保执行的是最新配置
- 无需手动保存
执行流程:
触发器节点 → Action 节点 1 → Action 节点 2 → ... → 最后节点执行到指定节点
运行工作流直到某个特定节点,用于测试部分流程:
使用场景:
- 只想测试前半部分流程
- 调试特定节点的输入数据
- 节省后续节点的执行时间
执行方法:
- 在节点编辑器左侧面板(上下文面板)
- 点击"执行前置节点"按钮
- 系统执行从触发器到当前节点的所有上游节点
- 当前节点的上下文面板显示执行结果
示例流程:
目标: 测试节点 C 的输入数据
执行: 触发器 → 节点 A → 节点 B → 节点 C
结果: 节点 C 的上下文面板显示来自 A 和 B 的数据执行单个触发器
直接运行某个触发器节点:
适用场景:
- 工作流有多个触发器
- 想测试特定触发器的配置
- 调试触发器节点本身
执行方法:
- 双击打开触发器节点编辑器
- 在节点配置面板中
- 查找节点特定的测试按钮(如有)
- 或使用画布顶部的测试按钮
触发器类型处理
不同类型的触发器有不同的执行方式。
Chat 触发器
Chat 触发器会打开聊天预览界面:
执行流程:
- 点击测试按钮
- 右侧聊天面板自动打开
- 在聊天输入框中输入消息
- 发送消息触发工作流执行
- 在聊天界面查看执行结果
特点:
- 模拟真实的对话场景
- 可以连续发送多条消息
- 支持上下文对话
- 实时查看 AI 回复
使用提示:
- 输入框支持多行文本(Shift + Enter 换行)
- 可以测试不同的用户输入
- 查看 AI Agent 的响应效果
Manual 触发器
Manual 触发器需要配置输入数据:
执行流程:
- 点击测试按钮
- 如果触发器配置了输入字段,显示输入对话框
- 填写测试数据
- 点击执行开始运行
- 在日志面板查看结果
配置输入:
- 触发器可以定义需要的输入字段
- 测试时手动填写这些字段
- 数据会传递给下游节点
Webhook 触发器
Webhook 触发器可以测试运行:
执行方式:
- 点击测试按钮
- 使用触发器配置的默认数据
- 或在触发器节点中配置测试数据
- 执行工作流
生产使用:
- 测试通过后,复制 Webhook URL
- 配置到外部系统
- 外部系统发送 HTTP 请求触发工作流
多触发器选择
当工作流包含多个触发器时的处理方式。
触发器选择对话框
有多个触发器时,系统会询问使用哪个:
选择界面:
- 点击测试按钮
- 弹出触发器选择对话框
- 显示所有可用的触发器列表
- 使用单选按钮选择一个触发器
- 点击确认执行
对话框内容:
选择触发器
请选择要执行的触发器节点:
○ Chat 触发器
○ Manual 触发器
○ Webhook 触发器
[取消] [确认]触发器信息:
- 显示触发器节点的名称
- 按节点创建顺序排列
- 清晰标识触发器类型
避免选择
如果不想每次都选择触发器:
建议做法:
- 开发阶段只保留一个触发器
- 其他触发器在测试通过后再添加
- 或使用"执行到指定节点"功能
多触发器场景:
- 生产环境需要多个入口
- 不同渠道使用不同触发器
- 开发时可以临时删除多余触发器
停止执行
终止正在运行的工作流。
手动停止
在工作流执行过程中停止:
操作方法:
- 找到画布顶部的"停止"按钮
- 点击停止按钮
- 系统终止当前执行
- 已执行的节点保留结果
- 未执行的节点标记为未运行
使用场景:
- 发现配置错误需要立即停止
- 执行时间过长
- 需要修改配置重新测试
- 节点陷入死循环
停止效果:
- 当前正在执行的节点会被中断
- 后续节点不会执行
- 执行历史保留部分结果
- 可以在日志面板查看已执行节点
执行状态
了解工作流的执行状态:
执行中:
- 测试按钮变为"停止"按钮
- 节点显示执行动画
- 画布上节点状态实时更新
执行完成:
- 停止按钮恢复为测试按钮
- 所有节点显示执行结果
- 成功节点显示绿色勾
- 失败节点显示红色错误图标
执行失败:
- 某个节点执行出错
- 后续节点不再执行
- 错误节点显示错误信息
- 点击节点查看详细错误
执行结果查看
执行后查看节点的运行情况和数据。
节点状态指示
执行过程中和执行后,节点显示不同状态:
等待执行(灰色):
- 节点还未开始执行
- 等待上游节点完成
执行中(蓝色动画):
- 节点正在执行
- 显示加载动画
执行成功(绿色):
- 节点执行完成
- 显示绿色勾图标
- 点击查看输出数据
执行失败(红色):
- 节点执行出错
- 显示红色错误图标
- 点击查看错误信息
在节点编辑器查看
打开节点编辑器查看详细结果:
查看方式:
- 双击执行过的节点
- 节点编辑器打开
- 右侧面板显示输出数据
- 左侧面板显示上下文数据
数据视图:
- Schema 视图:树形结构显示
- JSON 视图:原始 JSON 格式
- 可以复制数据用于调试
在日志面板查看
使用日志面板查看完整执行历史:
打开日志面板:
- 画布底部的"日志"标签
- 点击打开日志面板
- 查看所有已执行节点
- 点击节点查看详细信息
详细内容:
- 参见 调试工作流 文档
执行前检查
系统会自动检查工作流是否可以执行。
必需的触发器
工作流必须有至少一个触发器:
检查规则:
- 点击测试时自动检查
- 如果没有触发器节点
- 显示错误提示:"未找到触发器"
- 无法执行工作流
解决方法:
- 添加一个触发器节点到画布
- 配置触发器参数
- 连接触发器到 Action 节点
- 再次点击测试
自动保存
执行前自动保存当前配置:
保存时机:
- 每次点击测试按钮
- 系统自动保存工作流
- 保存所有节点配置和连接
保存内容:
- 节点配置变更
- 连接关系变更
- 画布布局变更
失败处理:
- 如果保存失败,不会执行
- 显示保存失败错误
- 需要解决保存问题后再试
测试数据
使用测试数据模拟真实执行。
固定数据(Pin Data)
为节点设置固定的测试数据:
使用方法:
- 打开节点编辑器
- 在右侧输出面板
- 点击"编辑输出"
- 输入测试 JSON 数据
- 点击"固定数据"
固定效果:
- 节点不会实际执行
- 直接使用固定数据作为输出
- 下游节点接收固定数据
- 加快测试速度
使用场景:
- HTTP 请求节点避免重复调用 API
- 模拟特定的响应数据
- 测试下游节点的数据处理
- 调试异常数据情况
触发器测试数据
为触发器配置测试输入:
Manual 触发器:
- 配置输入字段定义
- 测试时填写字段值
- 数据传递给工作流
Webhook 触发器:
- 配置示例请求 Body
- 测试时使用示例数据
- 模拟 Webhook 请求
Chat 触发器:
- 在聊天界面输入消息
- 消息作为触发数据
- 传递给 AI Agent 处理
最佳实践
1. 渐进式测试
推荐流程:
- 先测试单个节点配置
- 测试通过后连接下一个节点
- 测试两个节点的数据流
- 逐步添加和测试更多节点
- 最后测试完整工作流
好处:
- 快速定位问题
- 减少调试时间
- 确保每个节点正确
2. 使用固定数据
测试技巧:
- 为耗时节点固定数据
- 避免重复调用外部 API
- 模拟各种数据情况
- 测试异常数据处理
清理固定数据:
- 测试完成后取消固定
- 确保生产环境正常执行
- 固定数据仅用于测试
3. 检查每个节点
执行后检查:
- 查看每个节点的状态
- 确认都是绿色成功状态
- 打开节点查看输出数据
- 验证数据格式和内容
- 检查是否符合预期
4. 测试边界情况
测试覆盖:
- 正常数据流
- 空值和 null 数据
- 异常大或小的数值
- 特殊字符和格式
- 错误的数据类型
5. 保存测试版本
版本管理:
- 测试通过后创建版本
- 标记"测试通过"状态
- 记录测试场景和结果
- 方便后续对比和回滚
6. 测试不同触发器
多触发器测试:
- 分别测试每个触发器
- 确保所有入口都正常
- 验证不同触发器的数据格式
- 测试触发器特定配置
常见问题
Q: 点击测试没有反应?
A: 可能的原因:
- 工作流没有触发器节点 → 添加触发器
- 触发器配置不完整 → 检查必填参数
- 网络连接问题 → 检查网络状态
- 工作流保存失败 → 查看错误提示
Q: 执行时间很长怎么办?
A: 优化建议:
- 使用"执行到指定节点"测试部分流程
- 为耗时节点设置固定数据
- 检查是否有死循环或重复调用
- 优化 HTTP 请求的超时设置
- 必要时点击停止按钮终止执行
Q: 某个节点执行失败如何调试?
A: 调试步骤:
- 点击失败的节点查看错误信息
- 检查节点的必填参数是否填写
- 查看节点的输入数据是否正确
- 测试上游节点的输出数据
- 参考错误信息修改配置
- 修改后重新测试
Q: 如何测试工作流的一部分?
A: 两种方法:
- 使用"执行到指定节点"功能
- 为某些节点设置固定数据,跳过实际执行
Q: Chat 触发器如何测试?
A: 测试方法:
- 点击测试按钮打开聊天面板
- 在输入框输入测试消息
- 发送消息触发执行
- 查看 AI 的回复和工作流结果
- 可以继续对话测试上下文
Q: 测试会影响生产数据吗?
A: 取决于节点配置:
- HTTP 请求节点会实际调用 API
- 数据库操作会实际修改数据
- 建议测试环境使用测试 API 和数据库
- 生产 API 谨慎测试或使用固定数据
Q: 执行历史保存多久?
A: 执行历史保存策略:
- 测试执行保存在当前会话
- 刷新页面后测试历史清空
- 生产执行历史长期保存
- 可在日志面板查看历史执行
Q: 多个触发器如何选择默认的?
A: 选择建议:
- 系统没有默认触发器概念
- 每次都需要选择
- 开发阶段建议只保留一个触发器
- 或者使用最常用的触发器测试