Appearance
Agent Teams 是 Claude Code 的实验性功能,允许生成多个完全独立的 Claude Code session——每个 session 拥有自己的完整上下文窗口、CLAUDE.md、MCP 服务器和 skills。与普通 subagents(上下文 fork)不同,Agent Teams 通过共享任务列表协调,可以在 tmux 的分屏中可视化运行。
Claude Code Agent Teams:多 Agent 并行开发的启用与工作原理
Agent Teams vs Subagents:核心区别
两者都是"让多个 agent 并行工作",但实现机制完全不同:
| Agent Teams | Subagents | |
|---|---|---|
| 实现方式 | 生成多个独立的 Claude Code session | 在当前 session 内 fork 上下文 |
| 上下文窗口 | 每个 teammate 拥有独立完整的上下文 | 共享主 session 的上下文容量 |
| CLAUDE.md | 每个 teammate 独立加载 | 继承主 session |
| MCP 服务器 | 每个 teammate 独立连接 | 继承主 session |
| Skills | 每个 teammate 独立启动时加载 | 继承主 session |
| 可视化 | tmux 分屏可见 | 主 session 中看到结果 |
| 当前状态 | 实验性功能 | 正式功能 |
启用 Agent Teams
Agent Teams 目前是实验性功能,需要手动开启:
bash
# 方式 1:设置环境变量(推荐)
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude
# 方式 2:在 settings.json 的 env 键中配置
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}tmux 分屏显示
Agent Teams 支持在 tmux 中显示每个 teammate 的独立窗格:
bash
# 安装 tmux(macOS)
brew install tmux
# 启动 tmux 会话
tmux new -s dev
# 在 tmux 中启动 Claude Code(自动进入分屏模式)
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude通过 --teammate-mode 控制显示模式:
auto(默认):在 tmux 或 iTerm2 中自动使用分屏,否则 in-processin-process:所有 teammate 在同一终端中交织输出tmux:强制使用 tmux 分屏
Agent Teams 的协调机制
Agent Teams 通过共享任务列表协调工作,而不是通过直接消息传递:
Lead(主会话)
│
│ 创建团队
├──────────────────────────────────┐
▼ ▼ ▼
Command Architect Agent Engineer Skill Designer
(负责命令文件) (负责 agent 文件) (负责 skill 文件)
│ │ │
└────────────────┼─────────────────┘
▼
共享任务列表
☐ 商定数据契约: {time, tz, formatted}
☐ Command 使用 Agent tool(而非 bash)
☐ Agent 预加载 time-fetcher skill
☐ Skill 从上下文读取时间(不重复获取)
☐ 所有文件放在 agent-teams/.claude/ 下time-orchestrator 实战案例
用 Agent Teams 构建 time-orchestrator(与 weather-orchestrator 同类,获取迪拜时间并生成 SVG 时间卡片):
1. 启动 tmux + Claude:
bash
tmux new -s dev
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude2. 给主 Lead 一个编排提示词:
创建一个 agent 团队,分工构建 time-orchestrator 工作流:
- Command Architect:创建 time-orchestrator command 文件
- Agent Engineer:创建 time-agent(预加载 time-fetcher skill)
- Skill Designer:创建 time-svg-creator skill
所有文件放在 agent-teams/.claude/ 目录下。
团队需要先商定数据契约格式,再开始分工。3. 团队协调后生成的结构:
agent-teams/
└── .claude/
├── commands/
│ └── time-orchestrator.md
├── agents/
│ └── time-agent.md
└── skills/
├── time-fetcher/SKILL.md
└── time-svg-creator/SKILL.md4. 运行结果:
bash
cd agent-teams
claude
/time-orchestrator什么时候用 Agent Teams vs Subagents
用 Agent Teams 当:
- 任务可以分解为真正独立的并行子任务(不需要频繁传递数据)
- 每个子任务足够复杂,需要独立的完整上下文(如构建完整的功能模块)
- 希望通过 tmux 可视化监控每个 teammate 的进度
- 团队成员之间只需要通过任务列表松耦合协调
用 Subagents 当:
- 子任务需要访问主会话的对话历史
- 子任务相对独立,用 Agent 工具的隔离上下文就够了
- 不想依赖实验性功能
FAQ
Q: Agent Teams 是稳定功能吗? A: 目前是实验性功能,通过 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 环境变量启用。功能本身可用,但 API 和行为可能在后续版本中变化。生产环境建议先用 Subagents,等功能稳定后再迁移。
Q: Agent Teams 的每个 teammate 会计入我的用量限制吗? A: 是的,每个 teammate 是独立的 Claude Code session,各自调用 API,各自计费。N 个并行 teammate 意味着 N 倍的 token 消耗,但对应的是 N 倍的并行处理能力。
Q: 主 session(Lead)能查看每个 teammate 的进度吗? A: 在 tmux 模式下,每个 teammate 在独立的分屏窗格中运行,你可以直接切换窗格查看各自的输出。共享任务列表也是一种协调状态的方式。
Q: Agent Teams 和多开几个 claude 窗口手动协调有什么区别? A: Agent Teams 由 Lead 自动创建和管理 teammates,teammates 共享同一个任务列表作为协调机制,并能通过清晰的数据契约交换结果。手动多窗口需要你来充当协调者,工作量更大。