Skip to content

调试工作流

日志面板是调试工作流的核心工具,提供详细的执行信息、节点状态、数据流和错误诊断。通过日志面板,你可以快速定位问题、分析数据流、优化工作流性能。

打开日志面板

通过底部标签

日志面板位于画布底部:

打开方法:

  1. 找到画布底部的标签栏
  2. 点击"日志"标签
  3. 日志面板展开显示

面板布局:

  • 左侧:执行的节点列表
  • 右侧:选中节点的详细信息
  • 可以调整面板高度

自动打开

某些情况下日志面板会自动打开:

自动打开时机:

  • 执行工作流时自动展开
  • 节点执行失败时自动打开
  • 方便实时查看执行状态

手动关闭:

  • 点击日志标签收起面板
  • 或点击面板顶部的关闭按钮

日志面板布局

日志面板分为多个区域显示不同信息。

对话历史区域

显示条件:

  • 仅在查看 Chat 触发器的执行历史时显示
  • 显示完整的对话上下文

显示内容:

  • 用户发送的消息
  • AI 的回复内容
  • 消息时间戳
  • 对话流程

使用场景:

  • 查看 Chat 工作流的完整对话
  • 理解 AI Agent 的响应逻辑
  • 调试对话上下文问题

节点列表区域

显示本次执行涉及的所有节点:

节点信息:

  • 节点名称: 节点的标识名称
  • 节点类型: 触发器、Action 或 Tool
  • 执行状态: 成功、失败、执行中
  • 执行时间: 节点运行耗时(毫秒)

状态指示:

  • 绿色勾: 执行成功
  • 红色叉: 执行失败
  • 蓝色动画: 正在执行
  • 灰色: 未执行或已跳过

交互操作:

  • 点击节点查看详细信息
  • 选中的节点高亮显示
  • 右侧面板显示该节点的数据

节点详情区域

显示选中节点的详细执行信息:

头部信息:

  • 节点名称和类型
  • 执行状态图标
  • 执行耗时

上下文(输入):

  • 显示节点接收的输入数据
  • 来自上游节点的输出
  • 系统变量($sys)

输出:

  • 显示节点产生的输出数据
  • 成功时显示结果数据
  • 失败时显示错误信息

视图切换:

  • Schema 视图:树形结构
  • JSON 视图:原始 JSON
  • 可复制数据用于调试

查看节点执行信息

选择节点

在节点列表中选择要查看的节点:

选择方法:

  1. 在节点列表中找到目标节点
  2. 点击节点项
  3. 右侧详情区域更新显示

快捷选择:

  • 从上到下按执行顺序排列
  • 快速定位失败节点(红色标记)
  • 查看执行时间较长的节点

查看输入数据

了解节点接收到的数据:

输入来源:

  • 上游节点的输出数据
  • 触发器的初始数据
  • 系统变量

查看方式:

  1. 选择节点后,输入面板自动显示
  2. 展开数据结构查看详情
  3. Schema 视图显示数据类型
  4. JSON 视图显示原始数据

使用场景:

  • 验证上游节点的输出是否正确
  • 检查数据格式是否符合预期
  • 调试数据转换问题

查看输出数据

了解节点产生的结果:

输出内容:

  • 节点处理后的数据
  • HTTP 请求的响应
  • 代码执行的返回值
  • AI Agent 的回复

查看方式:

  1. 选择节点后,输出面板自动显示
  2. 展开查看完整数据结构
  3. 切换视图格式

使用场景:

  • 验证节点输出是否正确
  • 检查数据是否传递给下游
  • 调试数据格式问题

查看执行时间

分析节点性能:

时间信息:

  • 显示在节点列表中每个节点旁
  • 单位为毫秒(ms)
  • 包含节点完整执行时间

性能优化:

  • 识别执行时间过长的节点
  • 优化慢节点的配置
  • 考虑使用缓存或固定数据

示例:

✓ Chat Trigger      15ms
✓ HTTP Request     1,234ms  ← 耗时较长
✓ Code             45ms
✓ Answer           23ms

查看执行历史

查看过去的执行记录。

执行历史列表

访问方式:

  • 目前执行历史集成在日志面板中
  • 当前会话的执行保留在日志中
  • 刷新页面后清空测试执行历史

历史信息:

  • 执行时间戳
  • 执行状态(成功/失败)
  • 执行的节点数量
  • 总执行时间

查看历史执行详情

查看方法:

  1. 在日志面板中选择历史执行
  2. 查看该次执行的所有节点
  3. 查看每个节点的输入输出
  4. 分析执行流程

使用场景:

  • 对比不同执行的结果
  • 查找间歇性问题
  • 分析数据变化趋势

调试技巧

1. 从失败节点开始

快速定位问题:

调试步骤:

  1. 在节点列表中找到红色失败节点
  2. 点击查看错误信息
  3. 检查输入数据是否正确
  4. 阅读错误消息理解问题
  5. 修改配置后重新测试

常见错误:

  • 必填参数未填写
  • 数据格式不匹配
  • API 调用失败
  • 表达式语法错误
  • 权限或认证问题

2. 逐节点验证数据

确保数据流正确:

验证流程:

  1. 从触发器开始
  2. 验证触发器输出数据
  3. 检查第一个 Action 节点的输入
  4. 验证每个节点的输入输出
  5. 确认数据按预期传递

检查要点:

  • 数据结构是否完整
  • 字段名称是否正确
  • 数据类型是否匹配
  • 空值处理是否合理

3. 对比预期和实际

发现数据差异:

对比方法:

  1. 记录预期的数据格式
  2. 查看实际输出数据
  3. 对比找出差异
  4. 分析差异原因
  5. 调整节点配置

示例:

预期输出:
{
  "userId": "123",
  "amount": 100
}

实际输出:
{
  "userId": 123,        ← 类型不匹配
  "total": 100          ← 字段名不同
}

4. 检查执行顺序

验证节点执行顺序:

检查方法:

  • 节点列表按执行顺序排列
  • 确认执行顺序符合预期
  • 检查是否有节点被跳过
  • 验证条件分支的执行路径

常见问题:

  • 条件分支选择错误
  • 并行节点执行顺序不确定
  • 某些节点意外跳过

5. 分析执行时间

优化性能瓶颈:

分析步骤:

  1. 查看每个节点的执行时间
  2. 识别耗时最长的节点
  3. 分析是否可以优化
  4. 考虑使用固定数据跳过
  5. 优化 HTTP 请求超时设置

优化方向:

  • 减少 API 调用次数
  • 优化代码执行效率
  • 使用缓存机制
  • 并行执行独立节点

6. 使用复制数据

方便外部调试:

复制操作:

  1. 在输入/输出面板中
  2. 选择要复制的数据
  3. 右键或使用复制按钮
  4. 粘贴到文本编辑器或测试工具

使用场景:

  • 在外部工具中测试表达式
  • 保存数据样本用于测试
  • 分享数据格式给团队
  • 比对不同执行的数据

日志面板设置

调整面板大小

自定义面板布局:

调整方法:

  • 拖动面板顶部边缘调整高度
  • 拖动中间分隔线调整左右区域宽度
  • 系统记住你的布局偏好

推荐设置:

  • 数据量大时增加面板高度
  • 需要查看长数据时扩大右侧区域
  • 只查看节点列表时缩小右侧

显示/隐藏区域

控制显示的内容:

输入/输出切换:

  • 点击详情区域头部的切换按钮
  • 显示或隐藏输入面板
  • 显示或隐藏输出面板
  • 专注于需要的数据

使用场景:

  • 只需要查看输出时隐藏输入
  • 对比输入输出时同时显示
  • 节省空间查看更多数据

常见调试场景

场景一:节点执行失败

问题: 某个节点显示红色错误

调试步骤:

  1. 点击失败的节点
  2. 查看输出面板的错误信息
  3. 根据错误类型排查:
    • 参数错误:检查必填参数
    • 数据错误:检查输入数据格式
    • 网络错误:检查 API 地址和网络
    • 权限错误:检查认证配置
  4. 修改配置后重新测试

场景二:数据传递错误

问题: 下游节点收到的数据不正确

调试步骤:

  1. 查看上游节点的输出数据
  2. 确认数据结构是否正确
  3. 查看下游节点的输入数据
  4. 对比两者找出差异
  5. 检查表达式引用是否正确
  6. 验证数据路径和字段名

场景三:执行时间过长

问题: 工作流执行很慢

调试步骤:

  1. 查看每个节点的执行时间
  2. 找出耗时最长的节点
  3. 分析原因:
    • HTTP 请求超时过长
    • 代码执行效率低
    • 数据处理量太大
    • API 响应慢
  4. 优化或使用固定数据

场景四:条件分支未按预期执行

问题: IF 节点选择了错误的分支

调试步骤:

  1. 查看 IF 节点的输入数据
  2. 检查条件表达式
  3. 验证表达式结果
  4. 在外部测试表达式逻辑
  5. 修改条件表达式
  6. 重新测试验证

场景五:数据格式不匹配

问题: 节点期望的数据格式与实际不符

调试步骤:

  1. 查看节点的输入数据
  2. 检查数据类型和结构
  3. 对比节点要求的格式
  4. 添加数据转换节点
  5. 或修改表达式进行格式化
  6. 验证转换后的数据

最佳实践

1. 执行前检查

测试前准备:

  • 确认所有必填参数已填写
  • 验证表达式语法正确
  • 检查节点连接关系
  • 准备测试数据

2. 分段测试

渐进式调试:

  • 不要一次性测试全部流程
  • 使用"执行到指定节点"逐步测试
  • 确认每个阶段都正确后再继续
  • 出问题时容易定位

3. 保存调试版本

版本管理:

  • 调试过程中定期创建版本
  • 标记问题版本便于回滚
  • 记录调试发现和解决方案
  • 测试通过创建"已测试"版本

4. 记录问题模式

经验积累:

  • 记录常见错误和解决方法
  • 整理数据格式要求
  • 文档化调试技巧
  • 分享给团队成员

5. 使用固定数据

提高效率:

  • 为稳定节点固定数据
  • 避免重复执行耗时操作
  • 快速迭代调试后续节点
  • 完成后记得取消固定

常见问题

Q: 日志面板不显示节点?

A: 可能原因:

  1. 工作流还未执行 → 点击测试运行
  2. 执行失败在触发器阶段 → 检查触发器配置
  3. 面板未打开 → 点击底部"日志"标签

Q: 如何查看之前的执行记录?

A: 执行历史保存策略:

  • 当前会话的执行保留在日志中
  • 刷新页面后测试历史清空
  • 生产环境的执行历史长期保存
  • 未来版本会增强历史查询功能

Q: 输入/输出数据太长如何查看?

A: 查看大数据的方法:

  1. 展开详情面板增加查看空间
  2. 使用 JSON 视图查看原始数据
  3. 复制数据到外部编辑器查看
  4. 使用搜索功能快速定位

Q: 如何调试表达式错误?

A: 表达式调试方法:

  1. 在日志面板查看节点输入数据
  2. 确认引用的字段是否存在
  3. 检查数据类型是否匹配
  4. 在外部 JavaScript 环境测试表达式
  5. 使用 console.log 调试复杂逻辑

Q: 执行时间包括什么?

A: 执行时间包含:

  • 节点内部处理时间
  • HTTP 请求的网络时间
  • 代码执行时间
  • 数据序列化和传输时间

不包括:

  • 等待上游节点的时间
  • 系统调度时间

Q: 日志数据可以导出吗?

A: 导出功能:

  • 当前可以复制数据手动保存
  • 未来版本会支持导出功能
  • 可以导出执行历史
  • 可以导出节点数据

Q: Chat 触发器的对话历史在哪里?

A: 对话历史位置:

  • 查看执行历史时,左侧显示对话历史区域
  • 显示完整的对话上下文
  • 包括用户消息和 AI 回复
  • 帮助理解 Chat 工作流的执行过程

Q: 如何查看系统变量?

A: 系统变量查看:

  • 在节点的输入面板中
  • 展开 $sys 对象
  • 查看所有可用的系统变量
  • 包括 app_id、execution_id 等

相关资源