
当开发团队把单个 Claude 实例的上下文窗口撑到 100 万 token 时,往往会发现模型开始遗忘早期指令,推理延迟成倍攀升。表面上看这是长上下文检索精度衰减的算力瓶颈,本质上是任务架构把"线性对话"与"分布式执行"混为一谈导致的工程失真。
随着 2026 年多智能体协作框架在终端工具中的原生化,Claude Code 演进出了 subagents(单向委派子代理)与 Agent Teams(点对点协作团队)两套异构拓扑。要把重复性研发或跨系统运营流程彻底托管给 AI,开发者需要掌握从底层通信、模型路由到文件并发隔离的完整控制链。
架构选型:subagents 与 Agent Teams 的能力边界
subagents 采用星型拓扑,由一个主代理(Team Lead)负责任务分解与最终汇总,派生出的子代理只把执行结果单向回传给主代理,彼此之间完全隔离。这种结构专为"输入明确、输出独立、无需上下文共享"的场景设计,Token 消耗主要集中在任务分发与结果收敛两端。
Agent Teams 则是完全分布式的对等网状拓扑。主代理初始化团队后,每个 Teammate 都拥有独立的 Claude 实例与全额上下文窗口,通过共享的任务列表(Shared Task List)与内部信箱(Mailbox)直接进行点对点通信。Teammate 之间不仅能互相派单、催办,还支持显式的文件锁和任务依赖跟踪。
| 阶段 | 核心问题 | 留下的硬伤 |
|---|---|---|
| 单会话线性堆叠 | 超长上下文导致指令稀释与推理变慢 | 跨任务代码污染,无法实现并发检索与编写 |
| subagents 集中式分发 | 多个子任务间无法共享中间状态与依赖 | 复杂排错链路过长,主代理承担全部汇总开销 |
| Agent Teams 点对点协作 | 多实例全量交互导致 Token 账单与通信爆炸 | 需严密的文件锁与分支隔离,否则易现并发写冲突 |
在实际工程决策中,若并行工作流少于 3 条,或者仅需要快速聚合跨源信息,强行启用 Agent Teams 只会徒增通信开销与推理成本。
### 快速决策基准
- **选用 subagents**:任务自成一体、只需最终摘要、需针对性降低某环节模型成本(如切至便宜模型)、只读型代码审查。
- **选用 Agent Teams**:Teammate 必须双向通信互通有无、任务有强依赖链(A 依赖 B 的输出成果)、单会话容量彻底无法容纳多模块全量代码。
环境配置与团队编排:从终端指令到 Git 隔离
启用 Agent Teams 需要激活实验性环境变量,开发者可以通过三种方式完成注入。为了直观观察多代理的实时交互,建议配合 tmux 或 iTerm2 开启多窗格渲染模式。
# 方式 1:终端内联直接拉起
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude
# 方式 2:写入全局配置 ~/.bashrc
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
# 方式 3:写入项目级配置 .claude/settings.json
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
},
"teammateMode": "tmux"
}
Teammate 实例启动时默认不继承主代理的底层模型配置,必须在自然语言提示词或角色 Frontmatter 中进行显式约束。当多个代理需要对本地仓库执行写操作时,必须启用 Git worktrees(工作树,即同一仓库绑定多个独立工作目录)机制隔离分支,杜绝同目录并发写入导致的文件损坏。
### 多代理并行拉起 Prompt 模板
请创建一个包含 3 个角色的 Agent Team 协同重构 /billing 目录下的 6 个服务文件:
- 一个 teammate 负责依赖关系梳理,另一个负责接口层重构,第三个做性能与兼容性复核。
- 每个 teammate 使用独立 Git worktree,互不覆盖对方在途改动。
- 只读阶段先输出一份重构计划,由我批准后再开始动手。
若只做轻量委派而不需要团队协同,可在 .claude/agents/ 下放一个带 frontmatter 的 Markdown 文件定义子代理(name/description/tools/model),描述字段写清"何时触发"能让主代理更精准地自动路由。
动态工作流落地:把重复跨系统运营沉淀为自动化 Harness
多智能体真正的价值不在技术演示,而在把重复的人工流程变成可重复执行的自动化。Anthropic 一位非技术背景的市场专员,把每周销售周报自动化,周一自动向每位销售代表推送个性化更新。
他把流程拆成三层:先用自然语言告诉 Claude"每周要给每个销售发一份跟营销动态相关的个性化简报",再写一份假周报当模板;随后通过 MCP 连接营销团队的 BigQuery 数据源(合并 HubSpot、Clay、Salesforce 数据);最后用自然语言 prompt 让 Claude 从 CRM 拉取每位销售的地区与账户、从 Slack 拉取更新,合并成个性化内容。
### 周报自动化 Harness 的 Prompt 骨架
1. 每次启动先读取源表的表头行,确认哪一列是"活动链接"而不是硬编码"第 C 列"。
2. 绝不编造 URL:链接只能逐字符来自源表原文,来源缺失的活动整条丢弃。
3. 把每位销售的地区、账户列表、最近 Slate 动态合并进同一份简报。
4. 活动面向行业与联系人职级不匹配时,静默降级处理、不报错。
运行几天后,他把销售反馈的每一条修正都写进提示词成为一条硬规则(如"绝不编造 URL"、"面向对象与受众不匹配就丢弃"),prompt 最终累积了九条内容规则。整个过程周一自动触发、无需人工审批,把原来周日晚上花数小时的整理工作完全交给 AI。
避坑指南:规避并发冲突与死锁的防护清单
多代理并行不是越多越好,以下几个坑几乎每个上手团队都会踩到。
| 坑 | 现象 | 规避 |
|---|---|---|
| 描述字段重叠 | lead 路由不稳定,任务被派给错的专业子代理 | 描述写清唯一触发条件,不要含糊 |
| 并发写文件 | 两个 teammate 同时改同一文件产生静默覆盖 | 启用 Git worktrees 或依赖文件锁 |
| 全跑贵模型 | triage 子代理也跑 Opus,成本失控 | 显式 pin 便宜模型(如 haiku)做粗筛 |
| 任务卡死 | teammate 长时间不动 | 每 10-15 分钟查看共享任务列表并人工介入 |
子代理在 SDK 场景下再拉子代理会失败,深层链路应改用顺序调用或 Dynamic Workflow。Agent Teams 的 in-process teammate 不支持 /resume、/rewind 恢复,会话重启后需重新拉取 teammate。
综合判断与技术局限
subagents 与 Agent Teams 并非取代关系。subagents 适合快速、成体系、只要最终结果的轻量委派;Agent Teams 适合需要双向通信、共享状态与依赖跟踪的复杂并行工作。两者都以独立上下文窗口对抗"长上下文推理衰减",区别在于通信成本与协调复杂度。
仍需注意的技术局限包括:多代理的 Token 成本随 Teammate 数量线性增长,四名 teammate 意味着四个并行上下文初始化;团队任务状态更新可能滞后,卡住的依赖需手动推进。若找不到至少三条真正独立的并行工作流,坚持使用单会话或 subagents 反而更省、更快。
引用来源
- Anthropic 官方博客:How a non-technical marketer at Anthropic uses Claude Code to send personalized weekly updates to every sales rep(2026-08-24)
https://claude.com/blog/how-an-anthropic-field-marketer-uses-claude-code-to-send-weekly-personalized-updates-to-every-sales-rep - Claude Code 官方文档:Agent Teams in Claude Code(更新于 2026-09)
https://code.claude.com/docs/en/agent-teams - Claude Code 官方文档:Create custom subagents(更新于 2026-09)
https://code.claude.com/docs/en/sub-agents - Kimi AI 资源中心:Claude Code Agent Teams 完整指南(更新于 2026-09-11)
https://kimi.ai/resources/agent-teams-in-claude-code - tech-insider:Claude Agent SDK:Run 3+ Subagents in Parallel(2026-08-25,Claude Code 官方文档 agent-sdk/subagents 亦见)
https://code.claude.com/docs/en/agent-sdk/subagents