Claude Code的Agent设计理念
核心设计:主Agent + 有限子Agent + 丰富工具生态
Claude Code采用有意简化的Agent架构,主要通过单一主Agent处理所有编码任务,配合有限的子Agent来处理特定类型的独立任务,有效避免了复杂多Agent系统的协调问题。
可以参考Cognition AI的研究结果进行理解:Don’t Build Multi-Agents
传统多Agent vs Claude Code 架构设计对比
为什么需要多Agent?
LLM的上下文长度受限是根本动机
传统多Agent解决方案的思路
将用户需求分解成子任务,多个子Agent分别处理子任务,然后由核心Agent将这些贡献综合成连贯的最终输出。
比较常见的多Agent解决思路举例
用户请求
↓
┌─────────────────────────────────────────────────────────┐
│ 协调Agent (Coordinator) │
│ • 任务分解 │
│ • Agent调度 │
│ • 结果汇总 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────┼─────────────────────┐
↓ ↓ ↓
┌─────────────┐ ┌─────────────────┐ ┌──────────────┐
│ 文件选择Agent │ │ 代码生成Agent │ │结果验证Agent │
│ FileSelector │ │ CodeGenerator │ │ Validator │
└─────────────┘ └─────────────────┘ └──────────────┘
其中的每个子Agent所执行的任务,都是基于用户需求进行思考所做出的决策。
多Agent架构的实际问题
形象理解:现实生活中多Agent架构的工作场景
一个项目需求,产品-后端-前端-测试 合作完成。
1. 信息丢失,上下文传递断层
子Agent中间也可能有层层输入输出,这其中可能对后续推理有价值,只输出结果可能造成效果不理想或者后续重复推理
形象理解
合作完成需求时,需求层层传达,信息传递总是递减的。
2. 并行工作时错误定位困难
合并执行结果后,当主Agent发现执行结果不符合预期时,这个问题是哪个子Agent执行出现问题导致的?
形象理解
三个研发共同合作完成开发后交付QA进行测试。三个研发各自需求的单测都没有问题,但是合并起来有问题,那么应该是谁的问题,应该谁改?