当你想在 Claude Code 中让多个 AI 分工协作时,存在两个相似却不同的机制——SubagentsAgent Teams。名称容易混淆,但它们的角色和协调方式有着根本性的不同。本文将基于官方文档,梳理两者各自的本质、决定性的差异、该用哪一个,以及如何使用。

先说最关键的三点。(1)Subagents 是内置功能——主智能体把一个专注的子任务委派给“拥有全新上下文的助手”,并只取回一份摘要(层级式、按任务启动)。(2)Agent Teams 是实验性的、需主动开启的功能,默认关闭。只有当你设置了 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 之后才能使用——多个独立会话通过共享任务列表“对等地”协作(点对点、持久化)。(3)只有 Subagents 可以嵌套(默认最多到主对话之下 3 层);Agent Teams 无法嵌套(它们是扁平的)——不要把两者混为一谈。

CLAUDE CODE · SUBAGENTS vs TEAMS

层级式,还是对等?

— 委派并取回摘要,还是作为同伴对等协作

Subagents(内置)
主智能体
↓ 委派 / ↑ 仅摘要
助手
助手
助手
层级式 · 按任务启动 · 主要向调用方回报
Agent Teams(实验性)
team lead
同伴
同伴
↔ 共享任务列表 + 消息传递 ↔
对等 · 持久 · 可分别操控(需标志)

Subagents:主智能体把任务交给助手并取回结果。Agent Teams:对等的同伴通过共享任务列表协作。
Teams 是默认关闭的实验性功能——必须设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

1. 什么是 Subagents

Subagents 是在单个会话内处理特定类型工作的专用智能体。根据官方文档,“每个 subagent 都运行在自己的上下文窗口中,拥有自定义系统提示词和特定的工具权限。”主智能体会基于每个 subagent 的 description 自动委派,subagent 独立完成工作,并只向主对话返回一份摘要。

关键在于“每个 subagent 都运行在全新的、独立的上下文中”——它看不到你的对话历史,也看不到你已经读过的文件。因此你可以让它在“外部”完成繁重的查找工作,只取回结论,而不会让日志或测试输出淹没你的主上下文。要创建或编辑它们,可以让 Claude 代劳,或直接编辑定义文件(自 v2.1.198 起,/agents 不再打开交互式创建向导)。在 .claude/agents/<name>.md 中以 YAML 前置元数据(name / description / tools / model)来定义它们。内置的有 Explore(只读;自 v2.1.198 起沿用主对话的模型,在 Claude API 上最高为 Opus)、Plan 和 general-purpose。Subagents 可以嵌套,默认最多到主对话之下 3 层(v2.1.219 及以上;到达深度上限时不会再传入 Agent tool,因此无法继续派生。上限可通过 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH 调整,设为 1 即关闭嵌套)。要了解更宏观的图景,请参阅什么是多智能体系统

2. 什么是 Agent Teams(实验性、需开启标志)

Agent Teams 让你把多个 Claude Code 会话作为一个“团队”来协作。其中一个是 team lead(负责协调、分配、汇总);其余的是 teammates(同伴)——每一个都是自己独立的会话和上下文——它们通过共享任务列表和一个 mailbox(信箱)彼此直接通信。与 subagents 不同,你可以直接和单个 teammate 对话。

重要:Agent Teams 是默认关闭的实验性功能

官方文档明确指出“Agent Teams 是实验性的,默认关闭。”要使用它,需设置环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1(或通过 settings.jsonenv)。否则,启动时不会创建任何团队,Claude 也不会提议或派生 teammates。

需要注意,v2.1.178 的变更只是“移除了 TeamCreate/TeamDelete 这一设置步骤,因此在设置了标志的情况下,每个会话都会隐式拥有一个团队”——它并没有“默认启用团队”。标志仍然是必需的。

3. 决定性的差异

并排来看,两者的协调方式完全不同。

SubagentsAgent Teams
协调方式层级式(主智能体委派、汇总结果)点对点(通过共享任务列表自主协调)
通信方式主要向调用方返回结果(有名称的 subagent 之间也可互发消息)teammates 通过 mailbox 彼此直接传消息
持久性按任务启动(返回一份摘要;可恢复)持久的独立会话(可直接操控)
上下文各自的全新上下文;摘要返回给主智能体完全独立(不会自动汇总回去)
Token 成本相对较低(每个 teammate 都是独立的 Claude 实例)
状态内置、始终可用实验性、需开启标志、默认关闭
嵌套默认最多向下 3 层(上限可调)不可嵌套(teammates 无法派生 teammates)

一句话概括:Subagents =“主智能体把一个专注的任务交给拥有全新上下文的助手,并取回结论(层级式、按任务启动、仅摘要)。” Agent Teams =“多个持久会话通过共享任务列表和消息传递协作,且你可以分别操控每一个(对等、独立)。”一个常见的误解:嵌套是 Subagents 的特性,而 Teams 是扁平的(不可嵌套)。

4. 你该用哪一个

按用途来挑,就不会纠结。大多数日常工作用 subagents(或单个会话)就足够了。

WHICH TO USE

按用途选择

适合用 Subagents 的场景
· 副任务会淹没你的主上下文(测试/日志/调研)
· 工作自成一体,只有结果重要
· 你想限制工具或用更便宜的模型
· 工作者之间无需交流
适合用 Agent Teams 的场景
· 工作者必须共享发现、相互质疑、自主协调
· 并行探索有回报(并行评审 / 对立假设调试 / 多模块)
· 你想分别操控每个工作者
(接受更高成本 + 需开启标志)
单个会话就够用的场景
· 任务是顺序进行的
· 你需要频繁来回沟通
· 它触及同一批文件
· 它是个快速的本地改动

默认遵循“拿不准时,就用单个会话或 subagents。”
只有当并行工作真正需要对等协调时,才动用 Agent Teams。

5. 使用速查表

命令与配置的快速参考。

# --- Subagents (built-in) ---
/agents                      # 自 v2.1.198 起无向导(让 Claude 代劳或编辑下方文件)
.claude/agents/<name>.md      # 项目定义(name/description/tools/model)
~/.claude/agents/<name>.md    # 用户定义(所有项目)
claude --agent code-reviewer # 将整个会话作为某个特定 subagent 运行
@agent-<name>                 # 用 @ 提及来显式调用

# --- Agent Teams (experimental, flag-gated) ---
# 通过 env(或 settings.json 的 env)启用;默认关闭
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
# 然后用自然语言描述,例如:「派出三个 teammates 来评审 PR #142:
#   一个看安全,一个看性能,一个看测试覆盖率。」
# 通过 teammateMode 显示(默认 in-process;分屏需要 tmux/iTerm2)

在 subagent 的定义文件中,你可以用 tools 限制工具,或用 model 把任务路由到像 haiku 这样更轻量的模型。模型的决定顺序以及换用其他模型的实测,见Claude Code 子智能体换用其他模型运行的方法。关于构建和设计智能体,请参阅如何构建多智能体系统如何构建 AI 智能体

6. Agent Teams 的注意事项

Agent Teams 很强大,但带有实验阶段的限制和成本。在采用它之前,先了解这些。

(1) 每个会话一个团队,不可嵌套——teammates 无法派生 teammates,且 lead 是固定的。(2) Token 用量高(每个 teammate 都是独立的 Claude 实例);推荐为 3-5 个 teammates。 (3) teammates 不会在 worktree 中隔离,所以如果它们触及同一批文件就会互相覆盖——需手动划分文件。 (4) 作为实验性功能,存在一些限制,比如 /resume/rewind 无法恢复 in-process 的 teammates。(5) 分屏显示需要 tmux 或 iTerm2(像 VS Code 自带的等部分终端不受支持)。简而言之,只在并行协调的收益大于其成本和精力时才使用它。

总结

Claude Code 的 subagentsAgent Teams 都是“在多个 AI 之间分工”,但它们的协调模型不同。Subagents 是内置的——主智能体把一个专注的任务委派给拥有全新上下文的助手,并只取回一份摘要(层级式、按任务启动、主要向调用方回报、默认最多向下嵌套 3 层)。Agent Teams 是实验性的、需主动开启,默认关闭(需要 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1)——多个独立会话通过共享任务列表和消息传递对等协作(持久、可分别操控、不可嵌套)。

如何选择:“只想要结果 / 不想污染上下文 → subagents”“工作者必须共享并协调的并行工作 → Agent Teams”“顺序进行 / 同一批文件 / 快速修复 → 单个会话”。一个常见的混淆:嵌套是 subagents 的特性;Teams 是扁平的。另外请注意,v2.1.178 精简了团队启动——它并没有“默认启用”。Teams 成本高且实验性,所以请把它限定在协调能带来回报的场景。另外,这里比较的两者都跑在你自己的机器上。至于合上机器之后仍然继续推进的云端选项,2026年9月又多了一个——由 Claude 自己开线程并一路跟踪的 Projects。相关阅读:什么是多智能体系统如何构建AI 可观测性

FAQ

Q. Subagents 和 Agent Teams 有何不同?
A. 它们的协调方式有着根本性的不同。Subagents 是层级式的——主智能体把一个专注的任务委派给拥有全新上下文的助手,并只取回一份摘要(助手主要向调用方回报,但有名称的助手之间也可互发消息;按任务启动,可恢复)。Agent Teams 是点对点的——多个独立会话通过共享任务列表和一个 mailbox 协作,且你可以分别操控每一个(持久)。Subagents 是内置的;Agent Teams 是实验性的,需要一个标志。

Q. 我能立刻使用 Agent Teams 吗?
A. 不能——它们默认关闭。你必须在 env(或 settings.jsonenv)中设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1v2.1.178 只是精简了启动流程(它“移除了 TeamCreate 这一设置步骤,因此在设置了标志的情况下,每个会话都会隐式拥有一个团队”)——它并没有“默认启用团队”。标志仍然是必需的。

Q. 哪一个可以嵌套?
A. Subagents。一个 subagent 可以派生出自己的 subagents,默认最多到主对话之下 3 层(v2.1.219 及以上;上限可通过 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH 调整,设为 1 即关闭嵌套)。Agent Teams 无法嵌套——teammates 无法派生 teammates,且只有 lead 管理团队。不要把两者混为一谈。

Q. 除了这两个之外,还有别的并行化手段吗?
A. 有。官方文档把并行化归成五种做法:除了本文讲的这两种,还有 agent view(调度)动态工作流,以及2026年9月加进来的 Projects。agent view 是用 claude agents 打开的那块屏幕,它的方式是由你把彼此独立的任务交出去,之后再来回收结果(研究预览)。Subagents 的意思是“Claude 在同一个会话里委派”,Agent Teams 的意思是“Claude 来主导”,而用 agent view 时,主导的人是你自己。它的隔离机制和需要留意的地方,在专文里讲。

Q. 我分不清该用哪一个。
A. 大多数情况下,单个会话或 subagents 就够了。如果你只想要结果,且不想让大量输出淹没你的主上下文,就用 subagents。如果在并行工作中工作者必须共享发现、交叉核对、自主协调(并行评审、对立假设调试、多模块开发),且你想分别操控,就用 Agent Teams。对于顺序进行的工作、频繁来回沟通、或触及同一批文件的情况,单个会话更合适。

Q. 使用 Agent Teams 时该注意什么?
A. Token 用量高(每个 teammate 都是独立实例;推荐 3-5 个)、每个会话一个团队且不可嵌套、teammates 不会在 worktree 中隔离所以在同一批文件上会冲突(需手动划分)、/resume/rewind 的实验性限制,以及分屏需要 tmux/iTerm2。只在协调的收益大于其成本的并行工作中使用它。