---
created: "2026-05-16"
type: resource
tags: [resource, claude-code, agent-teams, orchestration, multi-agent, tmux, subagents, official, workflow]
source: "https://code.claude.com/docs/en/agent-teams"
---

# Claude Code Agent Teams 官方多 Agent 编排

Anthropic 官方嘅多 Claude Code instance 编排方案。同 ECC 嘅 `/orchestrate` 第三方实现唔同，呢个系 **Claude Code v2.1.32+ 内置嘅实验功能**，允许多个完整 session 通过共享 task list + 直接消息传递协同工作。

> 相关笔记：[[Everything Claude Code 多服务编排详解]]、[[ECC 编排实战手册]]、[[dmux 多Agent并行编排]]、[[Autonomous Agent Harness 自主代理框架]]

---

## 0. 三层编排能力速查

Claude Code 嘅并行编排有三层，由轻到重：

| 层次 | 工具 | 适用 | 通信方式 |
|------|------|------|---------|
| **Subagents** | `Agent` tool（单消息多 call） | 任务独立、只要结果、低成本 | 仅向主 agent 报告 |
| **Worktrees** | `git worktree` + 多 terminal | 长任务、build/test 隔离 | 无（人工协调） |
| **Agent Teams** | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` | 需讨论、互相 challenge、跨层协调 | Teammates 之间直接 `SendMessage` |

**判断口诀**：
- 任务可切干净、只要结果 → Subagents
- 长 horizon、独立分支 → Worktrees
- 需要互相对话、对抗审查、你想中途介入某个 worker → **Agent Teams**

---

## 1. Subagents vs Agent Teams 关键对比

| 维度 | Subagents | Agent Teams |
|------|-----------|------------|
| Context | 独立窗口，结果汇报返主 agent | 独立窗口，**完全独立 session** |
| 通信 | 只能向主 agent 报告 | **Teammates 之间直接 message** |
| 协调 | 主 agent 集中调度 | **共享 task list，self-coordination** |
| Token 成本 | 较低（结果会被压缩回主 context） | **显著更高**（每个 teammate 都系完整 Claude 实例） |
| 你能否同 worker 直接对话 | ❌ | ✅ Shift+Down 切换 |
| 嵌套 | 主 agent 可派 subagent | ❌ Teammate 不能再开 team |

---

## 2. 启用方法

`~/.claude/settings.json`：
```json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  },
  "teammateMode": "auto"
}
```

`teammateMode` 三种值：
- `in-process`：所有 teammate 喺主 terminal，**Shift+Down** 切换，**Ctrl+T** 切 task list
- `tmux`：split-pane 模式，需要 tmux 或 iTerm2 + it2 CLI
- `auto`（默认）：喺 tmux 内就 split，否则 in-process

要求版本：`claude --version` ≥ v2.1.32。

---

## 3. tmux 集成操作要点

### 3.1 启动 / 重接

```bash
# 首次创建（iTerm2 集成）
tmux -CC new -s billo_team

# 重新接入（推荐用普通 attach，最稳）
tmux attach -t billo_team

# iTerm2 ControlMode 重接（要 iTerm2 + 已开 tmux integration）
tmux -CC attach -t billo_team

# 列出所有 session
tmux ls

# 杀掉旧 session
tmux kill-session -t billo_team
```

### 3.2 常见坑

- **`-CC` 看到 raw `%begin %end %output` 输出 = 集成未生效**
  原因：用紧 Terminal.app 而唔系 iTerm2，或 iTerm2 集成被关。
  解决：改用 `tmux attach -t <name>` 普通模式。

- **duplicate session 错误**
  Session 已存在，用 attach 而唔系 new。

- **Claude Code 喺边度起？**
  喺 tmux session 入面用 `claude` 启动主 session，呢个就系 team lead。Teammate 由 lead 自动 spawn 入新 pane。

### 3.3 tmux 常用快捷键（attach 后）

| 快捷键 | 作用 |
|--------|------|
| `Ctrl+b d` | detach 离开但保留 session |
| `Ctrl+b s` | 列出 session 切换 |
| `Ctrl+b c` | 开新 window |
| `Ctrl+b %` / `"` | 垂直 / 水平 split pane |

---

## 4. 架构

| 组件 | 角色 |
|------|------|
| **Team lead** | 创建团队嘅主 session，spawn teammate + 协调 |
| **Teammates** | 独立 Claude Code 实例，各有 context window |
| **Task list** | 共享任务清单（pending / in_progress / completed，支持依赖） |
| **Mailbox** | Teammates 之间嘅消息系统，自动投递 |

**状态文件**（**唔好手编辑**，每次状态变更覆盖）：
- `~/.claude/teams/{team-name}/config.json`
- `~/.claude/tasks/{team-name}/`

> ⚠️ **冇 project 级 teams 配置**。`.claude/teams/teams.json` 系普通文件，唔识别。

---

## 5. Subagent 定义作为可复用 Teammate 角色

呢个系 Agent Teams 嘅核心可复用性机制。

### 5.1 写法

`.claude/agents/dotnet-backend-implementer.md`（project 级，可 commit）：
```markdown
---
name: dotnet-backend-implementer
description: Implements .NET backend modules following DDD patterns
tools: [Read, Write, Edit, Bash, Grep, Glob]
model: claude-sonnet-4-6
---

You implement .NET 8 backend modules in the Billo.Platform codebase.

Conventions you MUST follow:
- DDD layering: Domain / Application / Infrastructure / API
- Use Result<T> pattern for error returns, no exceptions for control flow
- Async methods end in Async, ConfigureAwait(false) on library code
- Repository interfaces in Domain, implementations in Infrastructure

Before implementing:
1. Read PLAN.md sections relevant to your assigned files
2. Check existing patterns in adjacent modules
3. Write xUnit tests first (TDD)

When done: report files changed + test coverage % to the lead.
```

### 5.2 喺 Agent Teams 入面引用

```text
Spawn a teammate using the dotnet-backend-implementer agent type
to handle Subtask 2.1.
```

### 5.3 注意事项

- Teammate 跟 subagent 定义嘅 `tools` allowlist 同 `model`
- 定义嘅 body **append** 到 teammate 嘅 system prompt（**唔系替换**）
- `SendMessage` 同 task 管理工具**永远可用**，即使 `tools` 限制咗其他
- ⚠️ 定义入面嘅 `skills`、`mcpServers` 喺 team 模式**唔生效**，teammate 从 project / user settings 加载

---

## 6. 大型项目完整工作流

### 6.1 One-time Setup

1. **写好可复用嘅 subagent 定义**（`.claude/agents/*.md`）
   建议角色：`backend-implementer`、`frontend-implementer`、`domain-modeler`、`test-writer`、`integration-reviewer`、`db-migration-author`
   既有嘅可直接用：`code-reviewer`、`security-reviewer`、`tdd-guide`、`architect`

2. **写 PLAN.md**（放 repo 根目录）
   关键：**每个 subtask 列明 owned files glob**，呢个系防冲突嘅唯一可靠方法。
   ```markdown
   # Project Plan

   ## Phase 2: Customer Context
   - 2.1 Customer aggregate
     - Owner files: src/Customer.Domain/**
   - 2.2 Customer application layer
     - Owner files: src/Customer.Application/**
     - Depends on: 2.1
   - 2.3 Customer API + integration tests
     - Owner files: src/Customer.Api/**, tests/Customer.IntegrationTests/**
     - Depends on: 2.2

   ## Cross-cutting Rules
   - File ownership is exclusive per subtask
   - Coverage ≥ 80% per module
   ```

3. **配置 hooks 作为质量门**（详见第 7 节）

### 6.2 每个阶段嘅 Spawn Prompt 模板

```text
We're starting Phase {N}. Read PLAN.md for context.

Create an agent team with {3-5} teammates:

[Teammate A]
  - Name: "customer-domain"
  - Subagent type: dotnet-backend-implementer
  - Task: Subtask 2.1
  - Owned files: src/Customer.Domain/**
  - Require plan approval before implementation.

[Teammate B]
  - Name: "customer-app"
  - Subagent type: dotnet-backend-implementer
  - Task: Subtask 2.2
  - Owned files: src/Customer.Application/**
  - Depends on: customer-domain finishing aggregate signatures
  - Require plan approval.

[Teammate C]
  - Name: "customer-api"
  - Subagent type: dotnet-backend-implementer
  - Task: Subtask 2.3
  - Owned files: src/Customer.Api/**, tests/Customer.IntegrationTests/**
  - Depends on: customer-app

COORDINATION RULES:
1. Create shared task list with dependencies.
2. Each teammate reads PLAN.md + cross-cutting rules.
3. When customer-domain finishes the aggregate API, message
   customer-app and customer-api with signatures.
4. No teammate edits files outside their owned glob.
5. Wait for all to finish before synthesis.

PLAN APPROVAL CRITERIA (for the lead):
- Reject plans that skip writing tests first.
- Reject plans touching files outside ownership.
- Approve plans with explicit coverage ≥ 80%.

AFTER ALL FINISH:
Spawn code-reviewer teammate for cross-module review.
Then security-reviewer for the API surface only.
Report: files changed, coverage %, findings.
```

### 6.3 阶段过渡

**唔好一次 spawn 所有阶段**。原因：
- 一次只能开一个 team，必须 cleanup 先开新
- 下一阶段 spec 可能因为上一阶段发现要调整
- Token 成本

过渡 prompt：
```text
Phase 2 is complete. Summarize:
- What was delivered vs plan
- Open issues / deferred items
- Any architectural changes
Then clean up the team.
```

---

## 7. Hooks 质量门

| Hook | 触发时机 | exit code 2 作用 |
|------|---------|------------------|
| `TeammateIdle` | Teammate 准备 idle 之前 | 推回反馈，迫继续做 |
| `TaskCreated` | 任务创建时 | 阻止创建，反馈意见 |
| `TaskCompleted` | 任务标记完成时 | 阻止完成，反馈意见 |

例子（`~/.claude/settings.json`）：
```json
{
  "hooks": {
    "TaskCompleted": [
      {
        "matcher": ".*test.*",
        "command": "dotnet test --collect:\"XPlat Code Coverage\" | grep -q 'Line coverage.*[8-9][0-9]%\\|100%' || exit 2"
      }
    ],
    "TeammateIdle": [
      {
        "command": "git status --short | grep -v '^??' | wc -l | awk '$1==0 {exit 0} {print \"Uncommitted work\"; exit 2}'"
      }
    ]
  }
}
```

---

## 8. 控制操作

### 8.1 模型选择

Teammate **唔继承** lead 嘅 `/model`。要喺 `/config` 设置 **Default teammate model**，或选 "Default (leader's model)" 跟随 lead。Spawn prompt 入面也可显式：
```text
Use Sonnet for each teammate.
```

### 8.2 Plan Approval（高风险任务必用）

```text
Spawn an architect teammate to refactor authentication.
Require plan approval before any changes.
```
Teammate 留喺 read-only plan mode，lead 审核批准或反馈拒绝。

### 8.3 直接对话 Teammate

- **in-process**：`Shift+Down` 循环切 → 打字发消息 → `Enter` 进入睇 session → `Esc` 中断
- **split-pane**：直接 click 入嗰个 pane

### 8.4 关闭 Teammate / 清场

```text
Ask the researcher teammate to shut down
```

**清场必须由 lead 执行**：
```text
Clean up the team
```
（Teammate cleanup 会留下 inconsistent state）

---

## 9. 官方使用场景

### 9.1 并行 Code Review
```text
Create an agent team to review PR #142. Spawn three reviewers:
- One focused on security implications
- One checking performance impact
- One validating test coverage
Have them each review and report findings.
```

### 9.2 竞争性假设调查（debug 神技）
```text
Users report the app exits after one message. Spawn 5 teammates
to investigate different hypotheses. Have them talk to each other
to disprove each other's theories, like a scientific debate.
Update findings doc with consensus.
```
精髓：互相 challenge 打破单 agent 嘅 anchoring bias。

---

## 10. Best Practices

| 项 | 建议 |
|----|------|
| Team 大小 | **3-5 个 teammate 最稳**，超过协调成本 > 收益 |
| 任务大小 | 每个 teammate 5-6 个 task 最高产 |
| 文件 ownership | **必须明确分割**，每个 teammate 独占 glob |
| Plan approval | 高风险（migration、API contract、auth）一定 require |
| 新手入门 | 由 review / research 开始，唔写代码嘅任务先体验 |
| Lead 偷跑 | 见 lead 自己动手就提佢 "Wait for your teammates to complete" |
| Permission | 预先批准常用操作，减少 prompt 打断 |

---

## 11. 实验性限制（实操要小心）

| 限制 | 影响 |
|------|------|
| `/resume` `/rewind` 唔恢复 in-process teammate | 恢复后 lead 可能发消息俾已死 teammate → 叫佢 spawn new |
| Task status 可能滞后 | Teammate 偶尔忘记 mark complete，阻塞下游 |
| Shutdown 慢 | Teammate 完成当前 tool call 先关 |
| **一次只能开一个 team** | 创建新 team 必须先 cleanup 旧 |
| **唔支持嵌套 team** | Teammate 不能 spawn 自己嘅 team |
| **Lead 唔可转让** | 创建 team 嗰个 session 永远系 lead |
| Permission 只喺 spawn 时跟 lead | Spawn 完先可单独改个别 teammate |
| Split-pane 限制 | VS Code 内置 terminal、Windows Terminal、Ghostty **唔支持** |

---

## 12. 思维模型

把多 Agent 编排映射到人类团队：

```
开发计划 (Plan)
  └── 阶段 (Phase)
        ├── 独立子任务 → 并行
        │     ├── 任务可切干净 → Subagents (廉价 fan-out)
        │     ├── 任务需独立 build/test → Worktrees (隔离)
        │     └── 任务需互相讨论 → Agent Teams (协同)
        └── 阶段尾审查
              └── 并行 reviewer teammates
                    (security / performance / test coverage 各一个)
```

启发：**如果你会同时分配呢两个任务俾两个唔同嘅工程师，并且佢哋唔需要事先沟通，咁就适合并行**。

---

## 13. 同既有笔记嘅区别

| 笔记 | 重点 |
|------|------|
| 本笔记 | **官方 Agent Teams**（v2.1.32+ 实验功能、tmux 集成、大型项目编排模板） |
| [[Everything Claude Code 多服务编排详解]] | **ECC 第三方** `/orchestrate` 命令（feature/bugfix/refactor/security 流水线） |
| [[ECC 编排实战手册]] | ECC 6 种正交编排模式总览 |
| [[dmux 多Agent并行编排]] | dmux 工具嘅并行 worktree 编排 |
| [[Ralphinho RFC-DAG 编排模式]] | RFC-DAG 风格强制隔离编排 |
| [[Autonomous Agent Harness 自主代理框架]] | 长时间自主运行嘅 harness 设计 |
