Claude Code Agent Team 架构分析:Multi-Agent 协作的范式跃迁
本文梳理 Claude Code 新增的 Agent Team 功能的核心机制,并与既有 Sub-Agent 体系做结构性对比。目标读者:对 AI 工程架构感兴趣但不一定有编程背景的人。
背景
Claude Code 的 Sub-Agent 能力已经相对成熟——给它一个任务,它会在独立进程中并行处理多个子任务,完成后把结果汇回主对话。这套机制在大多数场景下够用。
但有一类任务它处理得不好:子任务之间存在强依赖关系,或需要实时协商。比如你想让 AI 同时负责写文档和写测试,而测试必须基于最新的接口定义——这时候两个 Sub-Agent 的孤立执行就会出问题。它们各自为政,没有任何横向沟通通道。
Agent Team 就是针对这个问题设计的。
架构设计
Agent Team 的核心抽象由四个组件构成:
Main Agent(队长):解析用户意图,拆解任务,创建并分配队友,最终汇总交付。
Team Members(队友):每个队友在独立的上下文窗口中运行,持有自己的”大脑”。这意味着队友 A 写了什么,队友 B 不会自动感知——这是刻意的设计,目的是防止上下文污染。
Mailbox 系统:队友之间显式通信的唯一渠道。需要共享信息时,必须主动发消息;系统不会自动广播状态。
共享任务看板:所有队友可见的任务列表。任务状态在这里更新,队长和队友都可以认领或查看。
协作流程:
1 | 用户描述需求 |
这套设计的一个值得关注的细节是用户可达性:用户可以直接和任意队友对话,而不是只能通过队长中转。这在 Sub-Agent 体系里是做不到的——Sub-Agent 对用户完全不可见。
与 Sub-Agent 的结构性差异
拓扑结构是最根本的区别。
Sub-Agent 是星型拓扑:主 Agent 是唯一的调度中心和信息枢纽,所有 Sub-Agent 只跟它通信,彼此之间没有连接。这意味着主 Agent 的上下文会成为瓶颈——所有的进展汇报最终都要流回来。
Agent Team 是网状拓扑:成员之间可以直接通信,任务可以自行认领,不需要每个决策都经过队长。队长负责战略层面的协调,不参与每一次细节对齐。
其他几个关键差异:
| 维度 | Sub-Agent | Agent Team |
|---|---|---|
| 生命周期 | 一次性,任务结束即销毁 | 持久运行,可接收新指令 |
| 通信机制 | 无横向通信 | Mailbox 显式通信 |
| 上下文管理 | 结果摘要仍会流回主对话 | 各队友上下文独立,不污染主对话 |
| 任务依赖处理 | 需要用户手动排序 | 系统自动阻塞依赖任务 |
一个工程级验证案例
最能说明问题的是 Anthropic 安全研究员 Nicholas Carlini 在 2026 年 2 月发表的工程博客。他用 Agent Team 指挥了 16 个 Claude 实例并行工作,从零构建了一个 C 编译器:超过 10 万行代码,通过数百个测试用例。
做法是把编译器拆成词法分析器、语法解析器、类型检查器、代码生成器等模块,分配给不同的队友。各模块的接口定义通过 Mailbox 流转——词法分析器定好 Token 格式后,语法解析器立即收到通知并开始对接。这种协作方式在 Sub-Agent 体系下需要人工介入,在 Agent Team 里自动发生。
这个案例的意义不在于”16 个 AI 一起工作”这个数字,而在于:AI 之间的接口协商和冲突解决,已经可以在没有人工干预的情况下完成。
选择标准
判断用 Sub-Agent 还是 Agent Team,问两个问题就够了:
- 子任务之间需要互相沟通吗?
- 子任务数量超过 3 个且存在依赖关系吗?
两个都是否定答案,用 Sub-Agent——更快、更省 token。有一个肯定答案,用 Agent Team。
现有局限
这个功能目前是实验性的,默认关闭。已知限制:不支持会话恢复、不支持嵌套团队、费用比 Sub-Agent 高。
开启方式:在 ~/.claude/settings.json 里添加对应配置项,或在启动前临时设置环境变量。
结语
从 Sub-Agent 到 Agent Team,变化的不只是功能。Sub-Agent 体系下,你仍然是调度中心;Agent Team 体系下,你是目标的定义者,执行层完全交给团队自治。
这个转变对用户意味着什么?你需要更清晰地定义任务边界,而不是更清晰地描述执行步骤。一个写得好的目标描述,比一份详细的操作流程更有价值。这可能是使用 Agent Team 最需要适应的地方。