第24章:多智能体——AI 的团队协作
从单兵作战到团队协作
在第 16 章,我们介绍了 Agent 工具——让 AI 创建子智能体来处理子任务。那是"一对多"的模式:一个主智能体指挥多个子智能体。
但 Claude Code 还支持更高级的模式:多个智能体之间互相协作,就像一个真正的开发团队。
协调者模式(Coordinator Mode)
在协调者模式中,有一个特殊的"协调者"智能体负责分配任务和汇总结果:
┌──────────────┐
│ 协调者 │
│ (Coordinator) │
└───────┬──────┘
╱ │ ╲
╱ │ ╲
┌────────┐ ┌────────┐ ┌────────┐
│ 工人 A │ │ 工人 B │ │ 工人 C │
│(前端) │ │(后端) │ │(测试) │
└────────┘ └────────┘ └────────┘
协调者负责:
- - 理解整体任务
- - 拆分成子任务
- - 分配给工人智能体
- - 监控进度
- - 汇总结果
工人负责:
- - 执行具体的子任务
- - 报告进度和结果
- - 遇到问题时请求协调者帮助
协调者的工作流
1. 用户请求:"重构整个项目的错误处理"
2. 协调者分析:
- 项目有 3 个服务:API、Worker、Scheduler
- 每个服务需要独立重构
- 最后需要集成测试
3. 协调者分配任务:
工人 A → 重构 API 服务的错误处理
工人 B → 重构 Worker 服务的错误处理
工人 C → 重构 Scheduler 服务的错误处理
4. 工人并行工作(各自在自己的上下文中)
5. 工人完成后报告结果
6. 协调者汇总并安排集成测试
7. 协调者向用户报告最终结果
团队智能体(Team Agents)
团队智能体是"正式的"多智能体协作——你可以创建一个由多个专业智能体组成的团队:
// 创建团队
{
name: "TeamCreate",
input: {
team_name: "重构团队",
members: [
{
role: "架构师",
prompt: "你负责设计新的错误处理架构...",
tools: ["FileRead", "Grep", "Glob"]
},
{
role: "前端开发",
prompt: "你负责修改所有前端组件的错误处理...",
tools: ["FileRead", "FileEdit", "Bash"]
},
{
role: "测试工程师",
prompt: "你负责编写和运行错误处理的测试...",
tools: ["FileRead", "FileWrite", "Bash"]
}
]
}
}
团队成员的通信
团队成员不能直接对话,但可以通过以下方式"通信":
1. 共享文件系统
架构师写了一份设计文档 → design.md
前端开发读取设计文档,按照设计修改代码
测试工程师读取修改后的代码,编写测试
2. 任务系统
协调者创建任务列表:
Task 1: [架构师] 设计错误处理规范 → 完成
Task 2: [前端] 修改 Button 组件 → 进行中
Task 3: [测试] 编写单元测试 → 等待 Task 2
后台智能体
有些任务不需要实时交互,可以在后台运行:
{
name: "Agent",
input: {
prompt: "请对整个项目进行安全审计...",
run_in_background: true // 后台运行
}
}
后台智能体的特点:
- - 不阻塞主对话——你可以继续和主 AI 交流
- - 完成后通知你结果
- - 可以运行很长时间
多智能体的挑战
挑战一:冲突
如果两个智能体同时修改同一个文件怎么办?
解决方案:Git Worktree 隔离
主分支: main
工人 A: worktree-a (独立分支)
工人 B: worktree-b (独立分支)
完成后: 合并回 main
每个工人在自己的分支上工作,不会互相干扰。
挑战二:上下文不一致
工人 A 修改了一个公共函数的签名,工人 B 不知道,还在用旧的签名。
解决方案:协调者的职责
协调者需要识别这种依赖关系,安排有依赖的任务串行执行,或者在工人完成后检查一致性。
挑战三:资源消耗
每个智能体都是一个独立的 API 会话,每个都消耗 token。多个智能体并行工作可能导致费用飙升。
解决方案:智能调度
如果任务简单 → 不需要多个智能体,一个就够
如果任务可以串行 → 一个智能体顺序处理
如果任务必须并行 → 创建最少数量的智能体
适用场景
什么时候应该使用多智能体?
适合的场景:
- - 大规模重构(涉及很多文件)
- - 需要不同专业知识的任务(前端 + 后端 + 测试)
- - 可以明确拆分的独立子任务
不适合的场景:
- - 简单的单文件修改
- - 需要深度上下文的任务(子智能体没有主对话的历史)
- - 紧密耦合的工作(频繁需要协调)
本章小结
- - 协调者模式:一个协调者分配任务给多个工人智能体
- - 团队智能体:创建有不同专长的智能体团队
- - 后台智能体:不阻塞主对话,完成后通知
- - 冲突解决:Git worktree 隔离
- - 多智能体适合大规模、可拆分、需要多种专长的任务
从多智能体到 AI 的未来
多智能体系统不只是一个技术概念——它可能代表了 AI 应用的未来方向。
想想今天的互联网:不是一台超级计算机解决所有问题,而是数十亿台计算机互相连接、协作、分工。
AI 的未来可能也是这样:不是一个超级 AI 解决所有问题,而是多个专业 AI 互相协作。
未来的 AI 团队:
规划 AI → 分析任务,制定策略
搜索 AI → 找到相关的代码和文档
编码 AI → 写出高质量的代码
测试 AI → 编写和运行测试
审查 AI → 检查代码质量和安全
部署 AI → 发布到生产环境
Claude Code 的多智能体系统就是这个方向的早期探索。理解了它的设计,你就对 AI 的未来有了一份前瞻性的认识。
下一章,我们将探讨性能优化的艺术。
本书由 everettjf 使用 Claude Code 分析泄露源码编写 | 保留出处即可自由转载