Skip to content

[bug] 子代理链式任务只返回第一步结果,未返回最终结果 #220

Description

@7oMB2006

What happened?

阻塞式 subagent 链式模式下,所有步骤都会执行,且每一步的完整记录都保存在 details.results 中;但工具实际返回给父模型的 content 只有第一步的输出。因此父模型看不到最后一步的产物,也无法得知链路最终如何结束。

后续步骤失败或中止时也有类似问题:返回的 content 仍可能只有第一步的成功结果,失败信息只存在于 details。由于发给父模型的工具正文不包含 details,父模型可能误以为链路已经成功完成。尚未启动的步骤也可能仍被标记为 running。

这是结果回传问题,与子任务指令或步骤间摘要导致的内容失真无关。{previous} 可以正常传给后续步骤。

Steps to reproduce

使用确定性 runner 执行一个阻塞式三步链,例如:

{
  "chain": [
    { "agent": "explore", "task": "返回 STEP_1_SOURCE" },
    { "agent": "explore", "task": "将 {previous} 总结为 STEP_2_SUMMARY" },
    { "agent": "general", "task": "基于 {previous} 返回 STEP_3_FINAL" }
  ]
}
  1. 让三步分别返回 STEP_1_SOURCE、STEP_2_SUMMARY 和 STEP_3_FINAL,并均以成功状态结束。
  2. 检查最终工具响应和 details.results。三条记录均为已完成,且 {previous} 正确传递;但工具 content 只有 STEP_1_SOURCE。
  3. 再次运行,将第二步设为非零退出状态,并返回一条明确的错误信息。
  4. 此时第三步不会启动,工具 content 仍不包含失败信息,步骤状态可能是 completed / failed / running。

可用 parallel 模式作为对照:其返回内容会包含所有任务的输出。

Expected behavior

  • 成功时返回最后一个已完成步骤的输出,并附上简洁的逐步状态摘要。不要把所有子代理的完整输出都拼进父模型上下文;链中每一步都可能产生很长的内容。
  • 失败或中止时,在工具 content 中包含失败或中止步骤及其错误,使父模型能明确知道链路未完成。
  • 尚未启动的步骤应标记为 skipped 等明确的非运行状态,而不是继续显示为 running。
  • 为成功链路、后续步骤失败或中止、未启动步骤,以及 single 和 parallel 模式行为不变添加回归测试。

Version

0.84.4

Activity

  1. 7oMB2006 commented on Oct 6, 2026

    @7oMB2006
    Author

    最初由下游桌面端测出 Related discussion: 7oMB2006/desktop-for-step-code#62

  2. added a commit that references this issue on Oct 10, 2026
    49e42af
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions