第 10 章 · SubAgent 协作

05 · 实战:SubAgent 协作

把前面所有能力综合起来,让主 agent 通过 delegate_tasks 工具协调多个 subagent 完成复杂任务。

完整流程

用一个例子走完多 agent 协作的完整流程。

用户任务: "项目里有个测试失败了,帮我找到原因并修复"

主 agent 分析后决定 delegate,调用 delegate_tasks 工具:

{
  "tasks": [
    {
      "task": "找到失败的测试用例,读取测试文件和相关源文件,分析失败原因",
      "role": "explorer"
    },
    {
      "task": "根据失败原因修复源代码中的 bug",
      "role": "editor"
    },
    {
      "task": "运行修复后的测试,检查代码质量",
      "role": "reviewer"
    }
  ]
}

第一步:explorer subagent 执行

explorer 收到任务:"找到失败的测试用例..."。它搜索测试文件、读取源代码、运行测试命令,返回结构化的分析结果:

失败的测试:test/agent.test.ts > "达到最大迭代次数时返回兜底结果"
原因:测试期望 modelCalls 为 4,但实际为 5
相关文件:src/agent.ts(第 98-106 行)

第二步:editor subagent 执行

editor 收到任务 + explorer 的结果。它读取 src/agent.ts,理解问题,修改代码:

已修改 src/agent.ts:将初始 modelCalls 计数调整为在第一次调用前不递增

第三步:reviewer subagent 执行

reviewer 收到任务 + explorer 和 editor 的结果。它读取修改后的文件,运行测试:

Critical: 无
Warning: 无
OK: 修改正确,测试全部通过

主 agent 汇总所有结果,返回给用户。

和单 agent 的区别

同一个任务,单 agent 也能做。区别在于:

单 agent: 搜索 → 读文件 → 修改 → 跑测试 → 审查。所有信息在一个对话中,上下文越来越长。如果中间某步出了问题,需要在同一个长对话中调整。

多 agent: 搜索(explorer) → 修改(editor) → 审查(reviewer)。每个环节独立,上下文干净。如果 editor 改错了,reviewer 发现问题,可以再启动一轮 editor 修正。

多 agent 的优势在复杂度可靠性上体现。简单任务用单 agent 更快;复杂任务用多 agent 更稳。

成本对比

多 agent 的成本通常高于单 agent(多次模型调用),但每个 subagent 的上下文更短,单次调用的 token 消耗更少:

单 agent多 agent
模型调用次数5-8 次3 × 2-3 次 = 6-9 次
单次上下文长度逐渐增长每次都比较短
总 token 消耗可能更多(长上下文)可能更少(短上下文 × 多次)

具体哪个更省 token 取决于任务。但多 agent 的核心价值不是省钱——是可靠性

本章回顾

第 10 章实现了多 agent 协作:

新增文件作用
SubAgent 类型src/subagent/types.ts角色定义、系统提示词
SubAgent 类src/subagent/subagent.ts独立 agent 实例
Orchestratorsrc/subagent/orchestrator.ts串行编排、结果传递
delegate_taskssrc/tools/delegate.ts暴露给主 agent 的工具

加上之前章节的测试,整个项目现在有 179 个测试用例。还剩最后一章(第 11 章:CLI 产品化与毕业项目)。

登录以继续阅读

解锁完整文档、代码示例及更多高级功能。

立即登录

On this page