✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Озвучка этой страницы готовится.

#Команды агентов

Продвинутый уровень · Факультатив · около 20 минут плюс время запуска · Нужно: Выбор паттерна оркестрации · Сверено с Claude Code v2.1.285 (stable) 09.10.2026

Примечание

«Команды агентов — экспериментальная функция, по умолчанию отключённая» (Orchestrate teams of Claude Code sessions).

#Цель

К концу этого факультатива вы сможете набрать команду агентов из собственных определений субагентов, показать, что команда сформировалась, и остановить её участников по имени.

#Что понадобится

#Идея

Команда агентов — это несколько сессий Claude Code, работающих вместе. Ваша сессия — ведущий: она создаёт участников, каждого в собственном окне контекста. Участники пишут друг другу напрямую, и вы можете написать любому из них, тогда как субагенты в основном возвращают результат вызвавшему (Compare with subagents).

Участник загружает ваш CLAUDE.md, MCP-серверы и скиллы плюс промпт создания от ведущего, но не разговор ведущего, поэтому задачу несёт промпт (Context and communication). Назовите в нём определение субагента — и участник будет работать с tools и инструкциями этого определения, а также с его model, если в промпте создания не указана другая; участник in-process вдобавок получает SendMessage, так что даже участник только для чтения может связаться с остальными (Use subagent definitions for teammates).

Команды «расходуют значительно больше токенов, чем одна сессия» (Token usage), а участники делят ваше рабочее дерево (Choose an approach). Используйте их там, где окупаются независимые точки зрения: ревью через разные призмы или спор конкурирующих гипотез.

#Разбор примера

  1. Скачайте в свой репозиторий двух ревьюеров только для чтения из примера команд агентов этого руководства. Прочитайте их, прежде чем использовать:
mkdir -p .claude/agents
for a in security-reviewer test-reviewer; do
  curl -fsSL "https://raw.githubusercontent.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know/main/examples/advanced/electives/agent-teams/dot-claude/agents/$a.md" -o ".claude/agents/$a.md"
done
grep -H '^tools:' .claude/agents/security-reviewer.md .claude/agents/test-reviewer.md

Каждая строка заканчивается на tools: Read, Grep, Glob: ревьюеры могут читать файлы, но не могут их править или запускать команды, включая git. Инструментов поиска Grep и Glob в macOS, Linux и WSL по умолчанию нет; субагент, который их перечисляет и не указывает Bash, получает их обратно (Glob tool behavior). Оба задают model: sonnet. Если здесь уже открыта сессия, а .claude/agents/ только что появилась, перезапустите её: Claude Code следит только за папками агентов, существовавшими на момент старта сессии (Write subagent files). 2. Возьмите изменение, над которым работаете, или сделайте одноразовое: измените один отслеживаемый исходный файл так, как сделало бы реальное изменение, — например функцию, которая читает пользовательский ввод, — без нового теста. Не коммитьте его. Ревьюеры не могут запустить git diff, поэтому сохраните изменение туда, где они смогут его прочитать:

git diff > .practice/a-teams.diff
  1. Сохраните это как .practice/a-teams.json:
{
  "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" },
  "teammateMode": "in-process",
  "hooks": {
    "TeammateIdle": [
      { "hooks": [ { "type": "command", "command": "jq -r '.teammate_name' >> \"$CLAUDE_PROJECT_DIR/.practice/a-teams-teammates.txt\"" } ] }
    ]
  }
}

Файл включает команды агентов только для сессий, запущенных с ним (Enable agent teams, Claude spawns teammates instead of subagents), а teammateMode держит участников в режиме отображения in-process, который описывают эти шаги (teammateMode). Его хук TeammateIdle записывает имя каждого участника в .practice/a-teams-teammates.txt, когда тот собирается перейти в простой. 4. Запустите ведущего с этим файлом:

CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude --settings .practice/a-teams.json

--settings применяет ключи файла поверх ваших настроек только для этой сессии (CLI reference). Переменная даёт сессии инструменты Task на любой модели; без неё Claude Code предоставляет их только на старых моделях, перечисленных в Task tool availability, и участники координируются сообщениями вместо общего списка задач. Выполните /context: среди пользовательских субагентов будут security-reviewer и test-reviewer (See what loaded into context). 5. Попросите команду. Дайте каждому участнику одну призму, как в параллельном ревью кода из документации, а также имя и тип агента:

Create an agent team to review the change saved in .practice/a-teams.diff and the files it touches.
Spawn two teammates: one named security, using the security-reviewer agent type, and one named
tests, using the test-reviewer agent type. When both have reported, write one combined report
to .practice/a-teams-review.md.

Claude Code запускает участников, не спрашивая подтверждения (How Claude starts agent teams). На панели агентов под промптом появляется строка для каждого. Субагенты показываются на той же панели, так что одна панель не доказывает, что сформировалась команда (Start your first agent team): это доказывает журнал из шага 7. Ctrl+T переключает список задач (Talk to teammates directly). Промпт не называет модель, поэтому каждый участник работает на model своего определения, если только вы не задали CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 (Specify teammates and models). Когда оба отчитаются, ведущий напишет объединённый отчёт (формулировки у вас будут другими); одобрите запись, если Claude Code спросит. 6. Остановите участников по имени:

Ask the security and tests teammates to shut down.

Каждый участник соглашается и выходит или отклоняет просьбу с объяснением (Shut down teammates); если кто-то отказался, прочитайте причину и попросите снова. Участник, чья строка исчезла с панели, скрыт, а не остановлен, так что назовите и его в просьбе (Start your first agent team). Затем выйдите из сессии. Claude Code удаляет конфигурацию команды при завершении сессии и сохраняет её список задач для возобновлённых сессий, так что отдельного шага очистки нет (Architecture). 7. Прочитайте журнал:

sort -u .practice/a-teams-teammates.txt

В нём security и tests — значит, команда сформировалась.

#Ваша очередь

Отладьте проблему с конкурирующими гипотезами, как в примере Investigate with competing hypotheses из документации. Выберите в своём репозитории реальный баг или странное поведение, причину которого вы не знаете и которое можно объяснить, читая код. Напишите определение исследователя только для чтения, например скопировав test-reviewer.md в .claude/agents/hypothesis-tester.md и переписав его. Запустите новую сессию тем же способом, чтобы ведущий начал с чистого листа, и попросите его создать из вашего определения трёх участников, каждый из которых отвечает за одну гипотезу и пишет остальным, оспаривая их теории. Экономный вариант: два участника.

Критерии приёмки:

#Проверка

Факультатив пройден, когда выполнено всё это:

for f in .claude/agents/security-reviewer.md .claude/agents/test-reviewer.md .claude/agents/hypothesis-tester.md; do
  grep -qxE 'tools: *(Read|Grep|Glob)( *, *(Read|Grep|Glob))* *' "$f" || echo "$f: tools: names more than Read, Grep and Glob, or is missing"
done

Если журнала участников нет, команда не сформировалась: запустите ведущего командой из шага 4 и явно попросите команду агентов. Если git diff отличается от сохранённого изменения, ведущий или участник отредактировал отслеживаемый файл: прочитайте разницу, отмените эту правку и проверьте строку tools: каждого определения. Закончив, оставьте изменение или откатите одноразовое через git restore <file>.

#Осторожно

#Что дальше


Источники: Orchestrate teams of Claude Code sessions · Run agents in parallel · Create custom subagents · Hooks reference · Tools reference · All settings · CLI reference · Debug your configuration · Manage costs effectively

Назад к оглавлению Продвинутого уровня · Тема: Субагенты и параллельная работа · Застряли на уроке?