Live tracing panel shows only one round of an Iteration or Loop during a test run

在 Dify 中执行工作流测试运行时,如果实时 Tracing 面板显示“3 Iterations”或“4 Loops”却只能展开出一条记录,说明前端实时追踪按 node_id 覆盖了同一节点的多轮执行记录,需要优先排查 use-workflow-node-started.ts 与 debug-an

快速结论:在 Dify 中执行工作流测试运行时,如果实时 Tracing 面板显示“3 Iterations”或“4 Loops”却只能展开出一条记录,说明前端实时追踪按 node_id 覆盖了同一节点的多轮执行记录,需要优先排查 use-workflow-node-started.ts 与 debug-and-preview/hooks.ts 中的匹配逻辑。

适用环境:Dify 1.17.1(Issue 指出当前 main 分支代码相同);自托管部署方式为 Docker。

最快修复方案:暂无确认的一步修复方案。Issue 虽给出修改方向(按执行 id 匹配,不再按 node_id 覆盖),但该 Issue 最终以重复问题关闭,并未确认修复已合入。

注意事项:该 Issue 被关闭只是因为与 #44060 重复,不代表 bug 已修复;后端保存的数据本身正常,Run History 中可看到全部轮次,问题只影响实时 Tracing 面板,因此不要误判为执行结果丢失。

问题场景

在 Dify 自托管环境(Docker)中,导入工作流测试样例(如 api/tests/fixtures/workflow/iteration_flatten_output_enabled_workflow.yml,对 [1, 2, 3] 进行迭代),点击 Test Run 后打开 Tracing 并展开 Iteration 节点,点击“3 Iterations”。平行迭代、Loop 节点(如 increment_loop_with_break_condition_workflow.yml 显示“4 Loops”)以及 Chatflow 调试预览中也会出现同样现象。

报错原文

Live tracing panel shows only one round of an Iteration or Loop during a test run

原因分析

根据 Issue 作者分析,节点启动时,use-workflow-node-started.ts(以及 Chatflow 对应的 debug-and-preview/hooks.ts 中 onNodeStarted 处理器)通过 node_id 查找已有的 trace 记录并替换。迭代或循环的每一轮都会以新的执行 id 再次启动同一个节点,于是后一轮覆盖前一轮,最终只保留最后一轮。改为按 id 匹配可修复,且恢复执行的 Human Input 运行仍能正常工作,因为它会再次发送相同的 id。以上为 Issue 中的明确分析。

环境排查

  • 确认 Dify 版本是否为 1.17.1,或是否基于包含相同代码的 main 分支构建。
  • 确认部署方式为 Docker 自托管,与 Issue 环境一致。
  • 确认问题是否只出现在实时 Tracing 面板,同时对比 Run History 中同一运行是否显示完整轮次。
  • Issue 未提供 Python、CUDA、显卡等依赖信息,无需据此排查。

解决步骤

  1. 先复现并确认现象:在 Test Run 后展开 Iteration 节点,统计面板显示的轮次数与列表实际条目数是否不一致。
  2. 打开 Run History 查看同一次运行。如果 Run History 中能看到 Iteration 1、2、3,可确认后端记录完整,问题在前端实时追踪逻辑。
  3. 检查所使用的 Dify 版本或分支中,use-workflow-node-started.ts 与 debug-and-preview/hooks.ts 是否仍按 node_id 查找并替换 trace 条目。
  4. 可优先尝试:若自行维护代码,可将匹配条件改为执行 id,使每一轮启动的节点各自保留 trace 记录;此方案来自 Issue 作者描述,未经官方合并验证。
  5. 如不自行改代码,可关注 #44060 与本 Issue 的后续修复状态,等待官方版本合并后再升级。

验证方法

重新执行测试运行并展开 Iteration 节点,列表应显示 Iteration 1、2、3,且每条携带对应输入(arg1 分别为 1、2、3);Loop 场景应显示每一轮记录;Chatflow 调试预览中也应一致。同时确认 Human Input 恢复运行的追踪仍正常。

参考来源

langgenius/dify #44173

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 29428

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注