一文搞懂 Agent Teams:如何让多个 AI 组队协作完成任务?
一文搞懂 Agent Teams:如何让多个 AI 组队协作完成任务?
一、为什么需要 Agent Teams?
上一篇文章我们介绍了 SubAgent(子智能体)。
它的核心思路很简单:主 Agent 将任务交给子 Agent,子 Agent 在独立的上下文中完成工作,再把核心的结果返回给主 Agent。
这样既能完成任务,又能避免大量中间过程占用主 Agent 的上下文。
但是,如果遇到更加复杂的任务呢?
比如开发一个 Web 应用,需要同时完成:
- 前端页面开发
- 后端 API 开发
- 测试代码编写
这三个任务虽然可以并行,但并不是完全独立的。
例如,后端修改了 API 接口,前端需要及时调整调用方式;测试人员也需要知道最新的接口定义。
这时候,我们需要的不只是几个独立干活的 Agent,而是一支能够相互沟通、协调工作的 Agent 团队。
这就是 Agent Teams 要解决的问题。
二、什么是 Agent Teams?
Agent Teams 是 Claude Code 提供的一种多 Agent 协作机制,可以让多个独立的 Claude Code 实例组成团队,共同完成复杂任务。
你可以把它理解成一个软件开发项目组:
- Team Lead(队长):负责拆分任务、分配工作、协调进度。
- Teammates(队友):各自负责不同任务,可以相互沟通。
- Task List(任务列表):所有成员共享的任务看板。
- Mailbox(邮箱):Agent 之间传递消息的通信机制。
整个过程类似于一个真实的软件开发团队。
1. Team Lead:负责管理
Team Lead 就是你直接交互的主 Agent。
它会根据你的需求拆分任务、创建队友,并在工作完成后汇总结果。
2. Team mates:负责执行
每个队友都是独立的 Claude Code 实例,拥有自己的上下文窗口,可以调用工具、读取代码、修改文件。
队友不需要每完成一个步骤都向队长汇报,还可以直接与其他队友沟通。
3. Task List:共享任务看板
团队成员可以查看任务列表,了解每项任务的状态。
任务通常包括三种状态:
- Pending:待处理
- In Progress:进行中
- Completed:已完成
任务还可以设置依赖关系。
例如,任务 B 依赖任务 A,那么 A 完成之前,B 就不能被认领。
4. Mailbox:消息通信
这是 Agent Teams 的关键机制之一。
假设后端 Agent 修改了接口,可以直接给前端 Agent 发消息:
“用户接口已经更新,新增了 email 字段,请同步修改前端表单。”
前端 Agent 收到消息后,就可以及时调整代码。
这四个部分结合起来,就形成了一个能够并行执行、共享任务、相互协调的 Agent 团队。
三、Agent Teams 和 SubAgent 有什么区别?
两者都能利用多个 Agent 完成工作,但设计重点不同。
| 对比维度 | SubAgent | Agent Teams |
|---|---|---|
| 核心目标 | 独立执行任务 | 多 Agent 持续协作 |
| 上下文 | 独立上下文 | 每个队友也有独立上下文 |
| 任务管理 | 主要由主 Agent 管理 | 共享任务列表 |
| 通信方式 | 以任务委派和结果返回为主 | 支持队友直接通信与协调 |
| 生命周期 | 通常围绕单次委派任务 | 可以持续接收多个任务 |
| Token 消耗 | 相对较低 | 通常更高 |
| 典型场景 | 查询、调研、独立任务 | 多角色开发、联合调试 |
可以用一个生活中的例子理解:
SubAgent 像找外包。
你把几个独立任务交出去,等他们完成后,再收集结果。
Agent Teams 像组建项目组。
大家分工合作,过程中可以相互交流,遇到问题还能一起讨论。
需要注意,随着 Claude Code 功能发展,部分 SubAgent 也支持消息通信,因此二者并不是绝对的“能否通信”之分。
更本质的区别是:SubAgent 更侧重任务委派和上下文隔离,Agent Teams 更侧重团队级别的任务管理与持续协作。
四、Agent Teams 是如何工作的?
我们用一个实际案例理解。
假设你正在开发一个 Web 应用,需要新增“用户登录”功能。
你对 Claude Code 说:
创建一个 Agent Team,安排三个队友分别负责后端登录 API、前端登录页面和测试代码。要求大家共享接口信息,并在完成后进行集成验证。
接下来,Agent Teams 大致会按照以下流程工作。
第一步:创建团队
Team Lead 将任务分解为三个部分,并创建相应队友:
- Backend Agent:开发后端 API
- Frontend Agent:开发登录页面
- Test Agent:编写测试代码
第二步:并行执行
三个 Agent 分别开展工作,而不是一个 Agent 顺序完成所有内容。
第三步:相互通信
后端 Agent 确定接口格式后,可以直接通知前端和测试 Agent。
前端根据接口完成页面,测试 Agent 根据接口契约编写测试。
第四步:完成任务并汇总
每个 Agent 更新任务状态。
Team Lead 收集各成员的工作结果,检查集成情况,并向用户汇报。
整个过程不需要用户反复充当不同 Agent 之间的“传话筒”。
当然,并行不意味着所有工作都能同时完成。存在依赖关系的任务仍然需要等待,最终也需要进行测试和验证。
五、哪些场景适合使用 Agent Teams?
Agent Teams 并不是任务越多越好用,它更适合能够并行推进,同时又需要协调的复杂任务。
场景一:多角度代码审查
安排三个 Agent 分别检查:
- 安全漏洞
- 性能问题
- 测试覆盖情况
每个 Agent 从不同角度独立分析,可以减少彼此思路的干扰,最后由 Team Lead 汇总审查结果。
场景二:复杂 Bug 排查
当一个 Bug 存在多种可能原因时,可以安排不同 Agent 分别验证不同假设。
它们还能相互质疑结论,帮助缩小排查范围。
但最终仍然需要通过日志、实验或测试确认真正的原因。
场景三:多模块并行开发
例如前端、后端、测试分别由不同 Agent 负责。
各成员独立开发,同时通过消息同步接口和任务进度。
相反,如果任务很简单、必须严格按顺序执行,或者多个 Agent 需要频繁修改同一个文件,那么使用单 Agent 或 SubAgent 往往更合适。
六、如何在 Claude Code 中使用?
Agent Teams 目前仍属于实验性功能,需要手动启用。
1. 开启 Agent Teams
打开 Claude Code 配置文件:
~/.claude/settings.json
在配置文件中添加:
"env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" }
注意:这是需要合并到现有 JSON 配置中的字段,不要覆盖原有配置。
完成配置后,就可以在 Claude Code 的交互式会话中使用。
2. 创建团队
不需要自己编写复杂的多 Agent 调度代码,直接使用自然语言即可。
例如:
创建一个 Agent Team,让三个队友分别从安全性、性能和测试覆盖率三个角度审查当前项目。最后由 Team Lead 汇总结果。
Claude Code 会根据要求创建队友、安排工作并协调结果。
3. 查看队友与任务
Agent Teams 主要支持两种显示方式:
- In-process(进程内模式):所有队友显示在同一个终端界面中,可以通过方向键选择队友并按 Enter 查看。
- Split-pane(分屏模式):不同队友显示在独立终端面板中,通常需要 tmux 或 iTerm2。
此外,还可以使用 Ctrl+T 切换共享任务列表,查看任务进度。
七、使用 Agent Teams 需要注意什么?
虽然多个 Agent 可以并行工作,但也会带来新的管理问题。
1. 明确任务边界
最好让不同 Agent 负责不同文件或模块,避免多人同时修改同一个文件,导致代码冲突。
2. 提供足够的背景信息
队友不会自动继承 Team Lead 的完整对话历史。
创建队友时,应说明任务目标、涉及的文件、技术栈和预期结果。
3. 不要创建太多队友
可以先从 3~5 个队友开始。
队友数量增加后,协调成本和 Token 消耗也会增加,并不意味着效率一定成倍提高。
4. 定期检查工作进度
不要完全放任团队运行。发现某个 Agent 偏离目标时,及时调整任务。
5. 关注实验性限制
Agent Teams 目前仍存在一些限制,例如部分队友无法随会话恢复、任务状态可能延迟更新,以及分屏模式需要额外终端支持等。
因此,建议先从代码审查、项目调研等只读任务开始尝试,再逐步用于实际开发。
八、总结
Agent Teams 的核心思想,其实就是把单个 Agent 的工作方式升级为团队协作。
它主要依靠四个组件:
Team Lead + Teammates + Task List + Mailbox
让多个独立的 Agent 能够分工、并行执行、交换信息,并最终汇总成果。
与 SubAgent 相比,Agent Teams 的重点不只是让任务执行得更快,而是让多个 Agent 在复杂任务中能够像一个团队一样协作。
实际使用时,可以遵循一个简单原则:
独立任务优先考虑 SubAgent,需要多角色持续协调时再考虑 Agent Teams。
浙公网安备 33010602011771号