Agent Teams в Claude Code: полная структура настройки
Agent Teams — это экспериментальная функция Claude Code, позволяющая оркестратору запускать специализированных субагентов внутри именованной команды, общаться с ними через SendMessage и разделять зоны ответственности. Вот полная структура, которую мы используем в production.
1. Включение фичи (env переменная)
# /etc/environment (системный уровень, для всех сессий)
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Без этой переменной TeamCreate и SendMessage недоступны.
Проверить: printenv | grep AGENT_TEAMS.
2. Файлы агентов: ~/.claude/agents/.md
Каждый агент — отдельный .md файл с YAML frontmatter. Frontmatter определяет имя, модель, цвет и доступные инструменты.
Структура файла:
---
name: researcher # ← subagent_type при вызове Agent tool
model: claude-sonnet-4-6 # ← ИГНОРИРУЕТСЯ в Agent Teams (баг Claude Code)
color: cyan # ← цвет в UI: cyan/green/yellow/red/blue/magenta
allowedTools:
- Read
- Grep
- Glob
- Bash
# MCP инструменты — перечислять явно, иначе агент зависнет на permission request
- mcp__tidewave__project_eval
disallowedTools:
- Edit
- Write
---
# [Имя] Agent
[Описание роли и инструкции...]
Критично:
model:в frontmatter не работает для Team агентов. Все агенты запускаются на модели текущей сессии (Opus). Это известный баг Claude Code.
3. Наши 4 агента
| Файл | Цвет | Роль | Write? | MCP |
|---|---|---|---|---|
researcher.md |
cyan | Исследование кодовой базы | ❌ | Tidewave + OpenMemory |
implementer.md |
green | Написание кода | ✅ | Tidewave + OpenMemory |
reviewer.md |
yellow | Spec + Quality review (два этапа в одном) | ❌ | Tidewave + OpenMemory |
elixir-debugger.md |
magenta | Диагностика в live app | ❌ | Tidewave + OpenMemory |
4. Инструкции в CLAUDE.local.md
Минимальный набор, который нужно добавить:
## Agent Teams (MANDATORY)
`CLAUDE_CODE_EXPERIMENTAL_AGENTS=1` включён. Агенты общаются через `SendMessage`.
**ПЕРЕД ЛЮБОЙ РАБОТОЙ:**
1. Прочитай `memory/agent-teams.md` (паттерны оркестрации)
2. Используй `TeamCreate` для создания команды
3. Запускай агентов через `Agent` с параметрами `team_name` + `name`
**НИКОГДА:**
- Не использовать plain `Agent` без `team_name` — создаёт анонимных субагентов
- Не изобретать имена агентов — только 4 предопределённых из `~/.claude/agents/`
- Не использовать `subagent_type: "general-purpose"`
**4 агента:**
- `researcher` (cyan) — исследование кода, read-only
- `implementer` (green) — реализация, full access
- `reviewer` (yellow) — проверка spec + качества, read-only
- `elixir-debugger` (magenta) — live диагностика, read-only
**Порядок review:** reviewer ВСЕГДА после implementer.
**Permission requests:** агенты шлют запросы ТЕБЕ (team lead). Одобряй в UI — иначе агент зависнет.
5. Как использовать (паттерн вызова)
# 1. Создать команду
TeamCreate(team_name: "feature-auth", description: "Implement auth feature")
# 2. Запустить researcher
Agent(
team_name: "feature-auth",
name: "researcher",
subagent_type: "researcher",
prompt: "Research auth patterns in codebase.
Teammates: implementer (will implement), reviewer (will review).
When done: SendMessage to team-lead with findings."
)
# 3. После research — запустить implementer
Agent(
team_name: "feature-auth",
name: "implementer",
subagent_type: "implementer",
prompt: "Implement X based on [findings].
When done: SendMessage to `reviewer` with report."
)
# 4. reviewer слушает SendMessage от implementer, делает review
Agent(
team_name: "feature-auth",
name: "reviewer",
subagent_type: "reviewer",
prompt: "Wait for implementer's report. Review spec + quality.
If FAIL: SendMessage to `implementer` with issues.
If PASS: SendMessage to team-lead with verdict."
)
6. Ключевые ограничения (известные баги)
| Проблема | Поведение | Обходной путь |
|---|---|---|
model: в frontmatter |
Игнорируется — все агенты на Opus |
Вручную /model sonnet в TMUX |
| Permission request от агента | Агент зависает, оркестратор не может одобрить программно |
Одобрять вручную в UI (кнопка y) |
| MCP не наследуется |
Каждый агент видит только инструменты из allowedTools |
Заранее добавить все MCP инструменты в allowedTools |
7. Чеклист для нового контейнера
-
[ ]
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1в/etc/environment -
[ ]
~/.claude/agents/— 4 файла агентов скопированы -
[ ]
CLAUDE.local.md— раздел “Agent Teams” добавлен -
[ ]
memory/agent-teams.md— файл с паттернами оркестрации -
[ ] MCP инструменты в
allowedToolsкаждого агента соответствуют доступным MCP серверам проекта