跳转到内容
全部开发指南

Claude Code Agent Teams 与子 Agent 怎么选,协作方式、适用场景与 token 成本对比

AIGoCode发布于 更新于

Claude Code Agent Teams 与子 Agent 怎么选,协作方式、适用场景与 token 成本对比 封面

用 Claude Code 写代码,最常见的用法是开一个终端,一个会话从头做到尾。但有些任务这样做效率不高:同时改前端、后端和测试三层时,一个会话要来回切换上下文;排查一个有三种可能原因的 bug 时,只能一个假设一个假设地试。

Claude Code 为此提供了一个实验性功能:Agent Teams(官方文档叫 agent teams)。它让多个 Claude Code 实例组成一个团队,一个会话当 lead 负责拆任务和汇总,其他会话当 teammate 并行干活,teammate 之间还能直接发消息。

这篇适合已经在用 Claude Code、知道子 Agent(Subagents)但不确定什么时候该用 Agent Teams 的开发者。文章会讲两者的区别、怎么开启和操作 Agent Teams、三个最适合的场景,以及目前的限制。

Claude Code Agent Teams 原文配图 1

Claude Code Agent Teams 与子 Agent 的区别

Claude Code 已经有子 Agent,为什么还要 Agent Teams?关键在于协作方式。

子 Agent 是「上下级」关系:主 Agent 派一个子 Agent 去查代码,它查完把结果交回主 Agent,任务就结束了。主 Agent 负责管理全部工作,子 Agent 只负责交一份结果。子 Agent 在开发流程里的典型用法,可以参考 Simon Willison 的 Claude Code 子 Agent 与 TDD 用法。

Agent Teams 更像「同事」关系:每个 teammate 都是一个完整、独立的 Claude Code 会话,有自己的上下文窗口,可以读写文件、跑命令,还能按名字直接给其他 teammate 发消息。团队共用一个任务列表,teammate 做完手上的任务可以自己认领下一个。你也可以绕开 lead,直接跟任意一个 teammate 对话。

Claude Code Agent Teams 原文配图 2

对比项子 Agent(Subagents)Agent Teams
上下文独立上下文窗口,结果交回调用方独立上下文窗口,完全独立运行
沟通方式把结果交回调用方teammate 之间直接发消息
协调方式主 Agent 管理全部工作通过消息和共享任务列表自行协调
适合只关心结果的专注任务需要讨论、互相质疑、共同推进的复杂任务
token 成本较低,结果会被总结后回到主上下文较高,每个 teammate 都是单独的 Claude 实例

一个简单的判断标准:只需要结果,用子 Agent;teammate 之间需要交流、挑战彼此的方案、或者共同推进一个复杂任务,再考虑 Agent Teams。

怎么开启 Agent Teams

Agent Teams 默认关闭,需要把环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 设为 1,可以在 shell 环境里设,也可以写进 settings.json:

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

开启后,用自然语言描述任务和想要的 teammate 就行,例如让 Claude 派三个 teammate 分别从用户体验、技术架构和反方角度研究一个方案。Claude 会建任务列表、派出 teammate,最后汇总结果。

有两点要注意:

  • 开启后,Claude 自己给某个子 Agent 起名字时,这个子 Agent 也会以 teammate 的形式启动,所以即使你没要求组队,也可能出现团队。不想要这种行为,就把变量改回 0。
  • 只有交互式会话才会派出 teammate。用 -p 的非交互模式(包括 Agent SDK)时不会组队。

两种显示模式

In-process:都在一个终端里

这是默认模式,所有 teammate 都跑在主终端里。lead 的终端会在输入框下方列出 teammate,用上下方向键选中一个,按 Enter 查看它的记录并直接给它发消息,按 Esc 取消选择。不需要额外安装任何东西,任何终端都能用。

Split panes:每个 teammate 一个窗格

每个 teammate 占一个窗格,可以同时看到所有人的输出,点进某个窗格就能和它直接对话。这个模式需要 tmux,或者装了 it2 命令行工具的 iTerm2。VS Code 内置终端、Windows Terminal 和 Ghostty 不支持分屏模式。

显示模式在 ~/.claude/settings.json 里用 teammateMode 设置,默认是 in-process;设成 auto 时,在 tmux 会话里或装了 it2 的 iTerm2 里会自动分屏,否则退回 in-process:

{
  "teammateMode": "auto"
}

只想在某一次会话里切换,也可以用启动参数:

claude --teammate-mode in-process

Agent Teams 最适合的三个场景

场景一:调 bug 时同时验证多个假设

一个 bug 可能是数据库查询的问题,也可能是缓存过期,还可能是前端状态管理出错。以前要一个一个试,现在可以派几个 teammate 分头调查,并让它们互相反驳对方的理论。官方文档也提到,单个 Agent 容易找到一个说得通的解释就停下,多个调查者互相质疑,最后留下来的结论更可能是真正的根因。

场景二:前端、后端、测试三层同时改

加一个新功能需要同时改前端组件、后端 API 和测试用例时,可以让三个 teammate 各负责一层。它们能直接交流接口定义,比如后端 teammate 加了一个新字段,可以直接告诉前端 teammate,不用经过你转达。

场景三:多角度调研和评审

做技术方案或评审 PR 时,可以派一个 teammate 看安全,一个看性能,一个看测试覆盖;或者一个研究竞品方案、一个分析当前架构的约束、一个专门当反方找漏洞。lead 会在它们完成后汇总成一份报告。刚上手 Agent Teams 时,官方也建议先从这类不用写代码、边界清楚的调研和评审任务开始。

Claude Code Agent Teams 原文配图 3

使用建议

  • 团队规模:官方建议大多数情况先用 3 到 5 个 teammate,每个 teammate 分到 5 到 6 个任务比较合适。人数越多,协调成本越高,收益也会递减。
  • 避免文件冲突:两个 teammate 改同一个文件会互相覆盖,拆任务时让每个 teammate 负责不同的文件或模块。
  • 给足上下文:teammate 会自动加载 CLAUDE.md、MCP 服务和 Skill,但不会继承 lead 的对话历史,派任务时把具体信息写进提示里。
  • 盯着进度:lead 有时会自己动手干活而不是等 teammate,可以直接让它等 teammate 完成。

限制与注意事项

Agent Teams 目前仍是实验性功能,已知的限制主要有这些:

  • 会话恢复:/resume 和 /rewind 不会恢复 in-process 模式下的 teammate。恢复会话后 lead 可能还会给已经不存在的 teammate 发消息,这时让它重新派 teammate 即可。最好把 Agent Teams 用在一次能做完的任务上。
  • 任务状态可能滞后:teammate 有时没把任务标成完成,导致依赖它的任务卡住,需要手动检查或让 lead 去催。
  • 关闭可能较慢:teammate 要先做完当前请求或工具调用才会退出。团队的共享目录会在会话结束时自动清理。
  • 每个会话只有一个团队,teammate 不能再派自己的 teammate,lead 也不能转交。
  • token 消耗明显更高:每个 teammate 都是一个完整实例,token 用量随活跃 teammate 数量线性增长,订阅用户要特别留意配额。配额为什么会掉得快、怎么排查,可以看 Claude Code 配额为什么消耗这么快。

总结

Agent Teams 把 Claude Code 从「一个人干」变成了「带一个小团队干」。它最适合同时满足三个条件的任务:任务能拆开并行做、teammate 之间需要交流、愿意多花 token 换更快的进度。不满足这些条件时,单个会话或子 Agent 更合适,成本也更低。

建议先在不重要的项目上,用一次代码评审或 bug 排查试试,感受多个 Claude 同时干活的节奏,再决定要不要放进正式工作流。

想直接上手 Claude Code,可以在 AIGoCode 上使用 Claude Code 和 Codex。

参考链接

Claude Code Agent Teams 与子 Agent 怎么选,协作方式、适用场景与 token 成本对比