第8章 多 Agent 协调算法
“任何足够复杂的 AI 系统,最终都会重新发明操作系统。” 当一个 Agent 面对庞大的代码库需要同时研究架构、修改代码、运行测试时,单一上下文窗口的局限性就会暴露无遗。Claude Code 的回答不是让单个 Agent 变得更强,而是让多个 Agent 协作——如同一个工程团队,各司其职,并行推进。 本章深入分析 Claude Code 的多 Agent 协调架构,从最基础的父子 Agent 派生,到 Coordinator 中心调度模式,再到 Swarm 去中心化协作,揭示这些算法背后的核心设计思想。 8.1 问题引入:为什么需要多 Agent? 考虑一个典型场景:用户要求"修复认证模块中的空指针异常"。一个优秀的 Agent 需要: 研究阶段:搜索代码库找到相关文件,理解类型定义,分析调用链 实现阶段:修改代码,添加空值检查 验证阶段:运行测试,检查类型,确保不引入新问题 单个 Agent 执行这些步骤意味着上下文窗口中充斥着大量搜索结果和中间产物,导致两个核心问题: 上下文污染:研究阶段产生的探索性信息会干扰实现阶段的决策精度 串行瓶颈:研究代码结构和研究测试覆盖本可以并行进行,却只能排队执行 Claude Code 的解决方案是任务分解与并行执行——将复杂任务拆分为独立的子任务,由专门的子 Agent 并行完成,最终汇总结果。这种设计需要回答三个核心问题: 如何派生子 Agent 并传递恰当的上下文? 如何在多个 Agent 之间协调任务、同步状态? 如何保证资源隔离,避免 Agent 之间互相干扰? 8.2 Agent 派生算法 8.2.1 AgentTool:派生的入口 在 Claude Code 中,一切 Agent 派生都始于 AgentTool。当主 Agent(父 Agent)决定需要子 Agent 协助时,它会调用 AgentTool 工具,指定子 Agent 的类型、任务描述和所需的 prompt。 ...