Claude Code 团队模式入门:多子代理并行开发怎么跑稳

内容管家 编程开发评论33字数 3616阅读12分3秒阅读模式
摘要Claude Code 现在确实有更接近“团队模式”的官方能力:Agent teams。但真正决定多子代理并行开发能不能跑稳的,不是把代理数量拉满,而是先把 worktree、权限...

很多人第一次接触 Claude Code 的并行开发,都会先被几个词绕晕:subagents、agent teams、worktree、Claude for Teams,看起来都像“团队模式”,但其实不是一回事。

这也是为什么不少人明明已经会让 Claude 写代码了,一到多代理并行就开始翻车:有人抢同一个文件,有人改到一半停住,有人任务做完却没法合并,最后不是效率翻倍,而是把混乱翻倍。

所以这篇文章不准备把重点放在“怎么一键开很多代理”上,而是想先把一个更重要的判断说清楚:

稳定的多子代理并行开发,核心从来不是多开几个 Claude,而是把隔离、分工、验证和回收机制先搭好。

只要这四件事没弄明白,代理越多,现场越乱。

一、先把几个最容易混淆的概念拆开

1. Subagents:单会话里的“分身”

Claude Code 官方把 subagents 定义成一种专门化代理。它们运行在你的主会话体系里,各自有独立上下文窗口,但最终是把结果回传给主会话。官方还内置了 Explore、Plan 之类的子代理,你也可以通过 /agents 自定义。

它更适合这类场景:

  • 让我先去搜代码、梳理结构、列计划
  • 做一次安全审核&查验、测试补全、证据核查
  • 把某个专门问题交给特定角色快速处理

一句话:subagents 更像是“助手团”,不是“独立小队”。

2. Agent teams:官方现在真正接近“团队模式”的东西

如果你听说 Claude Code 有 team 模式,你大概率听到的其实就是官方现在的 Agent teams

它和 subagents 最大的区别,不是数量,而是结构。

官方文档写得很直白:agent team 由 lead、teammates、shared task list 和 mailbox 组成。也就是说,它不是主会话临时分派几个“打工人”回来汇报,而是多个独立 Claude Code 会话组成一支能互相通信、共享任务列表、自己协调的团队。

这就是为什么官方在对比页里会说:

  • subagents 适合“只要结果回传给我”的任务
  • agent teams 适合“彼此需要讨论、质疑、协作”的任务

这里非常值得注意:Agent teams 现在是实验性能力,而且默认关闭。 官方要求 Claude Code 版本至少到 v2.1.32,并通过环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 开启。也就是说,它不是“开箱即用的正式默认模式”,而是一个已经很有潜力、但仍处在实验阶段的并行协作机制。

3. Git worktree:真正解决“互相踩文件”的硬手段

很多人一提多代理,就先想着“怎么让它们多说话”。但在真实项目里,最先爆炸的往往不是沟通,而是文件冲突。

Claude Code 官方在 Common workflowsIDE Integrations 里都把 Git worktree 当成并行开发的重要基础设施。因为 worktree 的意义非常简单:

让每个 Claude 会话有自己独立的一份代码工作副本和分支。

这件事听起来普通,实际非常关键。没有 worktree,多代理并行开发很容易退化成“同仓库内多人抢同一块地盘”,最后越并行越互相污染。用了 worktree,至少从物理层面先把冲突面压下去了。

这也是我最想强调的一点:稳定并行的第一步,不是 TeamCreate,而是隔离工作副本。

4. Claude for Teams:是账号与管理方案,不是并行开发能力本身

这也是很多新手最容易搞混的地方。

Claude for Teams 是团队订阅和管理方案,解决的是计费、成员管理、组织配置这些问题。它确实更适合团队使用 Claude Code,但它本身不等于“Agent teams”这个并行代理能力。

换句话说:

  • Claude for Teams 是组织层面的套餐和管理
  • Agent teams 是 Claude Code 里的实验性多代理协作机制

别把这两个词混在一起,不然后面看教程会越看越乱。

二、想跑得稳,先学会选路线,而不是先追求最复杂

我很不建议一上来就把多子代理并行开发理解成“直接开 team 模式”。对新手来说,更稳妥的做法通常是分三档。

第一档:单会话 + subagents

这是最适合入门的一档。

主会话负责推进,遇到需要专门处理的事情,就交给 Explore、Plan 或自定义子代理。它的优点是便宜、可控、心智简单,不容易把现场搞得太散。

如果你的任务是:

  • 先调研,再动手
  • 先读代码,再改一处
  • 先让它做安全审核&查验、测试建议、架构梳理

那这一档通常就够了。

第二档:多会话 + Git worktree

当你开始想同时推进两个以上相对独立的任务,比如一个人改登录流程,一个人补测试,一个人梳理文档,这时最稳的升级方式通常不是直接上 agent teams,而是先用 worktree 跑多会话。

官方明确支持用 claude --worktree 创建隔离工作树,而且子代理也可以配置 isolation: worktree。如果项目里还有 .env 这类 gitignored 文件,官方也给了 .worktreeinclude 机制,避免每次 worktree 一开就缺环境文件。

这套方式的优点是:结构简单,稳定性高,出问题也容易回收。

很多所谓“多代理协作”,其实做到这一步已经足够实用。

第三档:Agent teams

只有当你的任务真的需要“多个代理彼此交流、共享任务列表、互相挑战结论”时,agent teams 才开始体现价值。

官方给出的适用场景很典型:

  • 并行代码审核&查验:安全、性能、测试覆盖分头看
  • 复杂问题调研:多个假设互相辩论
  • 跨层协作:前端、后端、测试各自推进一块
  • 新模块开发:不同 teammate 分别拥有不同部分

如果你的任务本质上还是线性的、同文件密集改动的、依赖很多前置步骤的,那 agent teams 往往不是最优解。官方也明确提醒:对顺序任务、同文件修改、依赖关系很重的工作,单会话或 subagents 反而更有效。

三、怎样才能“稳定”地多子代理并行开发

这里我想把“稳定”拆成五件事。只要这五件事没做,所谓并行开发大概率只是看起来热闹。

1. 先做边界隔离,再谈分工

这是第一原则。

谁负责哪个模块、在哪个 worktree 里改、什么情况下才能动公共文件,这些边界一定要先讲清楚。官方文档推荐用 worktree 跑并行任务,本质就是为了先避免文件状态互相干扰。

我的经验是:一个 teammate 最好先有明确的“地盘”再开工。 例如:

  • A 只负责 src/auth
  • B 只负责 tests/auth
  • C 只做 review 和验证,不直接改业务代码

没有边界的“自由协作”听起来高级,实际最容易把仓库弄成事故现场。

2. 团队别太大,三到四个通常最顺手

官方文档对这一点其实很诚实:没有硬上限,但团队越大,协调成本越高,token 成本也会线性上涨,而且收益会递减。官方甚至专门在成本页提醒,队伍要尽量小,teammate 的 prompt 要尽量聚焦。

这和真实团队管理没什么区别。三四个人的小组,通常比八九个人的松散大会战更容易出结果。

所以新手入门最推荐的,不是“五子登科”,而是:

  • 1 个 lead
  • 2 到 3 个 teammate

够用了。

3. 先批计划,再放执行

这是第二个特别关键的稳定器。

官方在 agent teams 文档里直接给了“Require plan approval for teammates”的做法:对复杂或高风险任务,可以要求 teammate 先在只读 plan mode 里给方案,lead 审过之后再放它改代码。

这是我认为最值得新手照抄的机制之一。

因为很多并行开发翻车,不是代理不会写,而是它们在没对齐方向前就都开始写。等三个人各自往前冲了一小时,才发现路根本不一样,这时回头成本就很高。

所以真正稳的方式不是:

开三个代理,直接干。

而是:

先让它们各自给计划,再由 lead 按标准放行。

尤其当任务涉及数据库、公共接口、共享 schema 或大范围重构时,这一步几乎必做。

4. 用 hooks 做“硬质量门”,不要只靠代理自觉

这也是稳定性的分水岭。

Claude Code 的 hooks 不是装饰品,而是让团队协作真正工程化的关键。官方文档里专门提到,agent teams 可以配合:

  • TeammateIdle:teammate 要空闲时做检查,不通过就继续干
  • TaskCreated:创建任务时先过规则
  • TaskCompleted:任务完成时做质量门验证

这意味着你完全可以把一些规则写死:

  • 没跑测试,不准标记完成
  • 改了公共接口,必须更新文档
  • lint 没过,不准收工
  • 没有给出风险说明,不准进入 review 阶段

只要规则能自动化,就别只指望 prompt 说服。

5. 结束时一定做回收,而不是放着不管

很多人会认真研究怎么启动,却不重视怎么收尾。其实多代理现场最容易烂掉的,就是回收。

官方文档里反复提到两件事:

  • team 用完要 clean up
  • worktree 用完要及时清理

而且官方还提醒:清理团队一定要让 lead 来做,不要让 teammate 自己跑 cleanup。因为团队上下文和资源状态都挂在 lead 那边,乱清理容易留下不一致状态。

一句话:并行开发不是只看“怎么开”,更看“怎么收”。

四、给新手的一套最稳起步方案

如果现在就想开始,而且想尽量少踩坑,我会建议按这个顺序来。

第一步:先不用 agent teams,先练 worktree + subagents

先把下面这几件事跑顺:

  • 会用 claude --worktree 开隔离会话
  • 知道什么时候让子代理做调研、计划、审核&查验
  • CLAUDE.md 写清楚,让所有会话遵守同一套项目规则
  • 把团队共享配置放进 .claude/settings.json

这一步的意义,不是保守,而是先把最基本的并行卫生习惯建立起来。

第二步:把项目规则沉淀成共享配置

官方 settings 文档专门把 project scope 描述成“team-shared settings”,适合共享 permissions、hooks、MCP servers。也就是说,如果你真想做稳定的多代理协作,不要每次都在 prompt 里口头交代。

真正该沉淀的东西包括:

  • 权限策略
  • hooks
  • MCP 服务器
  • 技能和命令规范
  • worktree 相关设置

靠配置共享,比靠记忆共享可靠得多。

第三步:再启用 agent teams

确认 Claude Code 版本满足要求后,再启用:

export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
claude --teammate-mode in-process

新手第一轮我建议先用 in-process,别急着上 tmux 分屏。因为官方自己都提醒过,split-pane 模式依赖 tmux 或 iTerm2,而且在一些终端里并不支持。先把逻辑跑顺,再去追求“看起来很酷”的显示方式。

第四步:第一次就用最经典的三角分工

不要第一次就搞五六个奇怪角色。最稳的入门分工其实就是:

  • Writer / Builder:负责实现
  • Reviewer:负责代码审核&查验
  • Tester / Verifier:负责测试、验证、边界检查

Claude Code 官方 best practices 里也专门提到 fresh context 对 review 有价值,因为 reviewer 不会天然偏袒自己刚写的代码。这一点很接近真实团队里“自己写自己审”为什么总不稳。

第五步:任务描述一定要写“边界 + 验收标准”

这是我最想额外补的一条。

很多人给代理下任务时,只有目标,没有边界;只有方向,没有验收标准。比如:

把认证模块重构一下。

这种话对单代理都不够,更别说多代理。

真正适合并行开发的任务描述,至少应该有:

  • 负责范围
  • 不能碰的东西
  • 输出形式
  • 验收标准
  • 依赖关系

例如:

你负责 auth 模块里的 token 刷新逻辑,只修改 src/auth 和对应测试,不要改数据库 schema。先给计划,计划必须包含回归测试方案;批准后再实现。完成前必须通过 lint 和 auth 相关测试。

这类描述,才是稳定并行开发真正需要的语言。

五、什么时候不该开 team

这点也必须说。

并不是所有任务都值得拉一个团队。官方文档已经提醒得很清楚:如果任务是顺序性的、同文件密集改动的、依赖关系很重的,单会话或 subagents 往往更有效。

我自己的判断标准更简单:

如果一个任务拆不开“相对独立、可并行、彼此少抢文件”的小块,那就先别开 team。

因为 team 模式真正擅长的是:

  • 并行探索
  • 并行审核&查验
  • 跨角色协同
  • 不同假设互相挑战

而不是在一段高度耦合、线性依赖很重的代码里同时硬挤三个人。

六、最后一句最重要

如果只想记住一句话,我希望是这句:

稳定的多子代理并行开发,本质上不是“把 AI 变成团队”,而是“把团队开发里那些本来就该有的约束,提前替 AI 搭好”。

Claude Code 现在确实已经有了更接近“团队模式”的官方能力——Agent teams。但真正让它跑得稳的,不是开关本身,而是你有没有把 worktree、权限、计划审批、hooks、共享规则、任务边界和回收流程配齐。

会开 team,只是入场券。

能让 team 跑得稳,才是真正开始理解多代理并行开发。

延伸阅读

 
内容管家

发表评论