📊 为什么需要多 Agent 协作?
89.3%
多 Agent 任务完成率 vs 单 Agent 35.65%
任务完成率提升
单 Agent 面对复杂任务容易迷失方向,多 Agent 分工协作可将任务完成率从 35.65% 提升到 89.3%
并行执行效率
Research 阶段多 Agent 并行研究不同方向,比单 Agent 串行研究快 3-5 倍
上下文管理
每个 Agent 专注特定子任务,上下文更精简,避免单 Agent 上下文溢出
专业分工
Research Agent 专注研究,Implementation Agent 专注实现,Verification Agent 专注验证
成本优化
多 Agent 协作人力成本降低 52%,Token 成本降低 40%(麦肯锡 2026)
错误隔离
单个 Agent 失败不影响整体,可以重启或替换,系统更健壮
🏗️ 三大架构模式
模式 1:中心化编排(Orchestrator Pattern)
┌─────────────────┐
│ 用户请求 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 主协调器 Agent │
│ (Orchestrator) │
└────────┬────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Research │ │ Implement │ │ Verify │
│ Agent 1 │ │ Agent 2 │ │ Agent 3 │
└─────────────┘ └─────────────┘ └─────────────┘
特点:
- 一个主 Agent 协调其他 Agent
- 任务分解、分配、结果汇总
- 适合复杂工作流
- Claude Code 协调器模式采用此架构
模式 2:去中心化协作(Decentralized Collaboration)
┌─────────┐ ┌─────────┐
│ Agent 1 │◄───────►│ Agent 2 │
└────┬────┘ └────┬────┘
│ │
│ ┌─────────┐ │
└───►│ Agent 3 │◄───┘
└────┬────┘
│
▼
┌─────────┐
│ Agent 4 │
└─────────┘
特点:
- Agent 自主协商、点对点通信
- 无中心节点,更灵活
- 适合开放式任务
- 需要标准化通信协议
模式 3:混合架构(Hybrid Architecture)
┌─────────────────┐
│ 主协调器 │
│ (高层协调) │
└────────┬────────┘
│
┌──────────────┴──────────────┐
│ │
┌──────┴──────┐ ┌──────┴──────┐
│ 子协调器 1 │ │ 子协调器 2 │
└──┬───────┬──┘ └──┬───────┬──┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│W1 │ │W2 │ │W3 │ │W4 │
└─────┘ └─────┘ └─────┘ └─────┘
特点:
- 结合两者优势
- 主协调器负责战略决策
- 子协调器负责战术执行
- 适合企业级应用
💻 Claude Code 多 Agent 实现
📋 核心工具
| 工具 | 用途 | 关键参数 |
|---|---|---|
| AgentTool | 创建新 Worker | description, prompt, subagent_type |
| SendMessageTool | 继续现有 Worker | to (agent_id), message |
| TaskStopTool | 停止 Worker | task_id, reason |
| TaskListTool | 列出所有任务 | status (pending/running/completed) |
| TaskOutputTool | 获取任务输出 | task_id, follow (实时跟踪) |
🔄 完整工作流示例
阶段 1:Research(并行启动 2 个 Worker)
协调器决策:这是一个复杂任务,需要多步完成。先启动 2 个 Worker 并行研究。
// 启动 Worker 1:分析代码结构
{
"tool": "AgentTool",
"parameters": {
"description": "分析代码结构",
"subagent_type": "worker",
"prompt": "分析 src/目录结构,找出认证相关文件。
使用 GlobTool 列出所有.ts 文件,然后用 FileReadTool 读取关键文件。
将分析结果写入 research-notes.md。"
}
}
// 启动 Worker 2:查找认证代码
{
"tool": "AgentTool",
"parameters": {
"description": "查找认证代码",
"subagent_type": "worker",
"prompt": "搜索所有与认证相关的代码。
使用 GrepTool 搜索 (auth|login|session) 模式。
将搜索结果和分析写入 auth-analysis.md。"
}
}
阶段 2:Worker 执行与通知
Worker 1 执行流程:
- 调用 GlobTool("**/*.ts") 列出所有 TypeScript 文件
- 调用 FileReadTool 读取 src/auth/login.ts, src/auth/middleware.ts
- 分析代码结构和依赖关系
- 写入 research-notes.md
- 完成任务,发送<task-notification>
// Worker 完成通知
<task-notification>
<task-id>agent-a1b</task-id>
<status>completed</status>
<summary>Agent "分析代码结构" completed</summary>
<result>Found 5 auth-related files:
- src/auth/login.ts
- src/auth/middleware.ts
- src/utils/session.ts
See research-notes.md for details.</result>
</task-notification>
阶段 3:协调器综合与继续 Worker
协调器读取研究结果:
// 读取 Worker 输出
const researchNotes = await readFile('research-notes.md');
const authAnalysis = await readFile('auth-analysis.md');
// 综合理解
const spec = synthesizeSpec(researchNotes, authAnalysis);
// 继续 Worker 1 进行实现
{
"tool": "SendMessageTool",
"parameters": {
"to": "agent-a1b",
"message": "基于你的研究,现在实现登录功能:
1. 在 src/auth/login.ts 添加 password strength 验证
2. 实现 JWT token 生成
3. 添加错误处理
4. 运行测试确保通过"
}
}
💡 关键设计原则
并行是超能力:Research 阶段多 Worker 并行,Implementation 阶段单 Worker 写文件
Worker 看不到协调器对话:每个提示必须自包含所有上下文
Continue vs Spawn:高上下文重叠→SendMessageTool 继续,低重叠→AgentTool 新建
文件系统协作:通过文件传递上下文,避免单 Agent 上下文溢出
任务通知:Worker 完成通过<task-notification>消息通知协调器
Worker 看不到协调器对话:每个提示必须自包含所有上下文
Continue vs Spawn:高上下文重叠→SendMessageTool 继续,低重叠→AgentTool 新建
文件系统协作:通过文件传递上下文,避免单 Agent 上下文溢出
任务通知:Worker 完成通过<task-notification>消息通知协调器
🎯 Continue vs Spawn 决策
何时继续现有 Worker,何时创建新 Worker?
| 场景 | 决策 | 工具 | 原因 |
|---|---|---|---|
| Research 完成,需要实现 | Continue | SendMessageTool | Worker 已经理解代码结构,上下文高度重叠 |
| 实现完成,需要验证 | Spawn | AgentTool | 验证者应该以 fresh eyes 审查代码,避免实现假设 |
| Worker 报告失败,需要修正 | Continue | SendMessageTool | Worker 已经知道尝试过什么,避免重复错误 |
| Worker 方向错误,需要重新来 | Spawn | AgentTool + TaskStopTool | 错误方向的上下文会污染新尝试,需要 clean slate |
| 完全不相关的新任务 | Spawn | AgentTool | 无上下文重叠,新建更清晰 |
| 大规模重构(涉及多文件) | Spawn | AgentTool | 重构需要全局视角,现有 Worker 可能过于聚焦局部 |
💡 决策流程图
1. 上下文重叠度高吗?
是 → Continue(SendMessageTool)
否 → 看下一步
2. 是验证/审查任务吗?
是 → Spawn(fresh eyes 更客观)
否 → 看下一步
3. Worker 方向错误吗?
是 → Stop + Spawn(clean slate)
否 → Continue(修正指令)
是 → Continue(SendMessageTool)
否 → 看下一步
2. 是验证/审查任务吗?
是 → Spawn(fresh eyes 更客观)
否 → 看下一步
3. Worker 方向错误吗?
是 → Stop + Spawn(clean slate)
否 → Continue(修正指令)