调试工作流
日志面板是调试工作流的核心工具,提供详细的执行信息、节点状态、数据流和错误诊断。通过日志面板,你可以快速定位问题、分析数据流、优化工作流性能。
打开日志面板
通过底部标签
日志面板位于画布底部:
打开方法:
- 找到画布底部的标签栏
- 点击"日志"标签
- 日志面板展开显示
面板布局:
- 左侧:执行的节点列表
- 右侧:选中节点的详细信息
- 可以调整面板高度
自动打开
某些情况下日志面板会自动打开:
自动打开时机:
- 执行工作流时自动展开
- 节点执行失败时自动打开
- 方便实时查看执行状态
手动关闭:
- 点击日志标签收起面板
- 或点击面板顶部的关闭按钮
日志面板布局
日志面板分为多个区域显示不同信息。
对话历史区域
显示条件:
- 仅在查看 Chat 触发器的执行历史时显示
- 显示完整的对话上下文
显示内容:
- 用户发送的消息
- AI 的回复内容
- 消息时间戳
- 对话流程
使用场景:
- 查看 Chat 工作流的完整对话
- 理解 AI Agent 的响应逻辑
- 调试对话上下文问题
节点列表区域
显示本次执行涉及的所有节点:
节点信息:
- 节点名称: 节点的标识名称
- 节点类型: 触发器、Action 或 Tool
- 执行状态: 成功、失败、执行中
- 执行时间: 节点运行耗时(毫秒)
状态指示:
- 绿色勾: 执行成功
- 红色叉: 执行失败
- 蓝色动画: 正在执行
- 灰色: 未执行或已跳过
交互操作:
- 点击节点查看详细信息
- 选中的节点高亮显示
- 右侧面板显示该节点的数据
节点详情区域
显示选中节点的详细执行信息:
头部信息:
- 节点名称和类型
- 执行状态图标
- 执行耗时
上下文(输入):
- 显示节点接收的输入数据
- 来自上游节点的输出
- 系统变量($sys)
输出:
- 显示节点产生的输出数据
- 成功时显示结果数据
- 失败时显示错误信息
视图切换:
- Schema 视图:树形结构
- JSON 视图:原始 JSON
- 可复制数据用于调试
查看节点执行信息
选择节点
在节点列表中选择要查看的节点:
选择方法:
- 在节点列表中找到目标节点
- 点击节点项
- 右侧详情区域更新显示
快捷选择:
- 从上到下按执行顺序排列
- 快速定位失败节点(红色标记)
- 查看执行时间较长的节点
查看输入数据
了解节点接收到的数据:
输入来源:
- 上游节点的输出数据
- 触发器的初始数据
- 系统变量
查看方式:
- 选择节点后,输入面板自动显示
- 展开数据结构查看详情
- Schema 视图显示数据类型
- JSON 视图显示原始数据
使用场景:
- 验证上游节点的输出是否正确
- 检查数据格式是否符合预期
- 调试数据转换问题
查看输出数据
了解节点产生的结果:
输出内容:
- 节点处理后的数据
- HTTP 请求的响应
- 代码执行的返回值
- AI Agent 的回复
查看方式:
- 选择节点后,输出面板自动显示
- 展开查看完整数据结构
- 切换视图格式
使用场景:
- 验证节点输出是否正确
- 检查数据是否传递给下游
- 调试数据格式问题
查看执行时间
分析节点性能:
时间信息:
- 显示在节点列表中每个节点旁
- 单位为毫秒(ms)
- 包含节点完整执行时间
性能优化:
- 识别执行时间过长的节点
- 优化慢节点的配置
- 考虑使用缓存或固定数据
示例:
✓ Chat Trigger 15ms
✓ HTTP Request 1,234ms ← 耗时较长
✓ Code 45ms
✓ Answer 23ms查看执行历史
查看过去的执行记录。
执行历史列表
访问方式:
- 目前执行历史集成在日志面板中
- 当前会话的执行保留在日志中
- 刷新页面后清空测试执行历史
历史信息:
- 执行时间戳
- 执行状态(成功/失败)
- 执行的节点数量
- 总执行时间
查看历史执行详情
查看方法:
- 在日志面板中选择历史执行
- 查看该次执行的所有节点
- 查看每个节点的输入输出
- 分析执行流程
使用场景:
- 对比不同执行的结果
- 查找间歇性问题
- 分析数据变化趋势
调试技巧
1. 从失败节点开始
快速定位问题:
调试步骤:
- 在节点列表中找到红色失败节点
- 点击查看错误信息
- 检查输入数据是否正确
- 阅读错误消息理解问题
- 修改配置后重新测试
常见错误:
- 必填参数未填写
- 数据格式不匹配
- API 调用失败
- 表达式语法错误
- 权限或认证问题
2. 逐节点验证数据
确保数据流正确:
验证流程:
- 从触发器开始
- 验证触发器输出数据
- 检查第一个 Action 节点的输入
- 验证每个节点的输入输出
- 确认数据按预期传递
检查要点:
- 数据结构是否完整
- 字段名称是否正确
- 数据类型是否匹配
- 空值处理是否合理
3. 对比预期和实际
发现数据差异:
对比方法:
- 记录预期的数据格式
- 查看实际输出数据
- 对比找出差异
- 分析差异原因
- 调整节点配置
示例:
预期输出:
{
"userId": "123",
"amount": 100
}
实际输出:
{
"userId": 123, ← 类型不匹配
"total": 100 ← 字段名不同
}4. 检查执行顺序
验证节点执行顺序:
检查方法:
- 节点列表按执行顺序排列
- 确认执行顺序符合预期
- 检查是否有节点被跳过
- 验证条件分支的执行路径
常见问题:
- 条件分支选择错误
- 并行节点执行顺序不确定
- 某些节点意外跳过
5. 分析执行时间
优化性能瓶颈:
分析步骤:
- 查看每个节点的执行时间
- 识别耗时最长的节点
- 分析是否可以优化
- 考虑使用固定数据跳过
- 优化 HTTP 请求超时设置
优化方向:
- 减少 API 调用次数
- 优化代码执行效率
- 使用缓存机制
- 并行执行独立节点
6. 使用复制数据
方便外部调试:
复制操作:
- 在输入/输出面板中
- 选择要复制的数据
- 右键或使用复制按钮
- 粘贴到文本编辑器或测试工具
使用场景:
- 在外部工具中测试表达式
- 保存数据样本用于测试
- 分享数据格式给团队
- 比对不同执行的数据
日志面板设置
调整面板大小
自定义面板布局:
调整方法:
- 拖动面板顶部边缘调整高度
- 拖动中间分隔线调整左右区域宽度
- 系统记住你的布局偏好
推荐设置:
- 数据量大时增加面板高度
- 需要查看长数据时扩大右侧区域
- 只查看节点列表时缩小右侧
显示/隐藏区域
控制显示的内容:
输入/输出切换:
- 点击详情区域头部的切换按钮
- 显示或隐藏输入面板
- 显示或隐藏输出面板
- 专注于需要的数据
使用场景:
- 只需要查看输出时隐藏输入
- 对比输入输出时同时显示
- 节省空间查看更多数据
常见调试场景
场景一:节点执行失败
问题: 某个节点显示红色错误
调试步骤:
- 点击失败的节点
- 查看输出面板的错误信息
- 根据错误类型排查:
- 参数错误:检查必填参数
- 数据错误:检查输入数据格式
- 网络错误:检查 API 地址和网络
- 权限错误:检查认证配置
- 修改配置后重新测试
场景二:数据传递错误
问题: 下游节点收到的数据不正确
调试步骤:
- 查看上游节点的输出数据
- 确认数据结构是否正确
- 查看下游节点的输入数据
- 对比两者找出差异
- 检查表达式引用是否正确
- 验证数据路径和字段名
场景三:执行时间过长
问题: 工作流执行很慢
调试步骤:
- 查看每个节点的执行时间
- 找出耗时最长的节点
- 分析原因:
- HTTP 请求超时过长
- 代码执行效率低
- 数据处理量太大
- API 响应慢
- 优化或使用固定数据
场景四:条件分支未按预期执行
问题: IF 节点选择了错误的分支
调试步骤:
- 查看 IF 节点的输入数据
- 检查条件表达式
- 验证表达式结果
- 在外部测试表达式逻辑
- 修改条件表达式
- 重新测试验证
场景五:数据格式不匹配
问题: 节点期望的数据格式与实际不符
调试步骤:
- 查看节点的输入数据
- 检查数据类型和结构
- 对比节点要求的格式
- 添加数据转换节点
- 或修改表达式进行格式化
- 验证转换后的数据
最佳实践
1. 执行前检查
测试前准备:
- 确认所有必填参数已填写
- 验证表达式语法正确
- 检查节点连接关系
- 准备测试数据
2. 分段测试
渐进式调试:
- 不要一次性测试全部流程
- 使用"执行到指定节点"逐步测试
- 确认每个阶段都正确后再继续
- 出问题时容易定位
3. 保存调试版本
版本管理:
- 调试过程中定期创建版本
- 标记问题版本便于回滚
- 记录调试发现和解决方案
- 测试通过创建"已测试"版本
4. 记录问题模式
经验积累:
- 记录常见错误和解决方法
- 整理数据格式要求
- 文档化调试技巧
- 分享给团队成员
5. 使用固定数据
提高效率:
- 为稳定节点固定数据
- 避免重复执行耗时操作
- 快速迭代调试后续节点
- 完成后记得取消固定
常见问题
Q: 日志面板不显示节点?
A: 可能原因:
- 工作流还未执行 → 点击测试运行
- 执行失败在触发器阶段 → 检查触发器配置
- 面板未打开 → 点击底部"日志"标签
Q: 如何查看之前的执行记录?
A: 执行历史保存策略:
- 当前会话的执行保留在日志中
- 刷新页面后测试历史清空
- 生产环境的执行历史长期保存
- 未来版本会增强历史查询功能
Q: 输入/输出数据太长如何查看?
A: 查看大数据的方法:
- 展开详情面板增加查看空间
- 使用 JSON 视图查看原始数据
- 复制数据到外部编辑器查看
- 使用搜索功能快速定位
Q: 如何调试表达式错误?
A: 表达式调试方法:
- 在日志面板查看节点输入数据
- 确认引用的字段是否存在
- 检查数据类型是否匹配
- 在外部 JavaScript 环境测试表达式
- 使用 console.log 调试复杂逻辑
Q: 执行时间包括什么?
A: 执行时间包含:
- 节点内部处理时间
- HTTP 请求的网络时间
- 代码执行时间
- 数据序列化和传输时间
不包括:
- 等待上游节点的时间
- 系统调度时间
Q: 日志数据可以导出吗?
A: 导出功能:
- 当前可以复制数据手动保存
- 未来版本会支持导出功能
- 可以导出执行历史
- 可以导出节点数据
Q: Chat 触发器的对话历史在哪里?
A: 对话历史位置:
- 查看执行历史时,左侧显示对话历史区域
- 显示完整的对话上下文
- 包括用户消息和 AI 回复
- 帮助理解 Chat 工作流的执行过程
Q: 如何查看系统变量?
A: 系统变量查看:
- 在节点的输入面板中
- 展开
$sys对象 - 查看所有可用的系统变量
- 包括 app_id、execution_id 等