Библиотека · Хуки и помощники-агенты

Команды агентов — параллельная работа

Инженер75 минОбновлено: октябрь 2026
38 из 105 в библиотеке

Модуль: 8. Армия агентов | Время: ~30 мин теории + 45 мин практики


Суть урока

Суб-агент — это фрилансер: получил задание, выполнил, сдал, ушёл. Команда агентов — это отдел: все работают одновременно, общаются между собой, видят общую задачу, могут поручить работу коллеге. Это не просто быстрее — это другой уровень сложности задач которые можно решать.


Ключевые концепции

  • Ключевое отличие команды от суб-агентов: участники общаются друг с другом напрямую (инструмент SendMessage)
  • Статус: agent teams — экспериментальная функция, по умолчанию выключена, включается переменной CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
  • Пример команды для разработки лендинга: Frontend + Backend + QA параллельно
  • Наследование прав: команда получает права основной сессии
  • 4 ловушки командной работы и как их избежать
  • Когда команды и когда суб-агенты

Теория

Суб-агенты vs Команды — ключевое отличие

🎨 Образ: Суб-агент — фрилансер: взял задание, сделал, сдал, ушёл. Команда агентов — строительная бригада на объекте: электрик, сантехник и отделочник работают одновременно, переговариваются между собой, не ждут очереди.

Суб-агенты (урок Суб-агенты):

  • Работают независимо друг от друга
  • Обычно не знают о других суб-агентах (суб-агенты с именами могут писать друг другу, но это скорее исключение)
  • Общаются в основном с основным агентом (вверх/вниз)
  • Получили задание → выполнили → вернули результат → всё

Команды:

  • Знают кто их товарищи по команде
  • Могут отправлять сообщения друг другу (инструмент SendMessage)
  • Видят общий список задач
  • Могут делегировать задачи внутри команды
  • Работают параллельно, координируются самостоятельно
Код
Суб-агенты:
Основной агент
    ↕           ↕           ↕
Агент A      Агент B     Агент C
(изолированы друг от друга)

Команда:
Основной агент
    ↕
Агент A ←→ Агент B ←→ Агент C
(общаются напрямую)

Живой пример: команда для разработки лендинга

🎨 Образ: Команда агентов — как параллельная кухня в ресторане. Шеф готовит соус, гриль-повар жарит мясо, кондитер делает десерт — всё одновременно. Одиночный повар делал бы это последовательно — в три раза дольше.

Задача: создать лендинг для нового продукта за один день.

Без команды (последовательно):

Код
1. Frontend Dev делает UI → 4 часа
2. Backend Dev делает API → 3 часа
3. QA тестирует → 2 часа
Total: 9 часов

С командой (параллельно):

Код
Параллельно:
├── Frontend Dev: верстает UI компоненты → 4 часа
├── Backend Dev: пишет API endpoints → 3 часа
└── QA: готовит тест-кейсы, параллельно тестирует готовые части → 2 часа

QA находит баг → отправляет сообщение Frontend Dev → тот исправляет
не ждя завершения всего процесса

Total: ~4.5 часа (с учётом коммуникации)

Почти вдвое быстрее — при том же качестве.


Как создать команду

Сначала включи функцию. Agent teams экспериментальные и по умолчанию выключены. Добавь в settings.json:

json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Без этой переменной Claude не создаёт и не предлагает команд. Работает только в интерактивной сессии (не в режиме -p). Функция экспериментальная, поведение и ограничения могут меняться: смотри документацию.

Простая команда создаётся одним промптом:

Напиши в чат
Создай команду из 3 агентов для разработки лендинга:
- Агент 1 (Frontend Dev): верстает React компоненты, работает с CSS/Tailwind
- Агент 2 (Backend Dev): пишет FastAPI endpoints, работает с PostgreSQL
- Агент 3 (QA): тестирует функционал, использует Playwright для автотестов

Для каждого участника используй Sonnet.
Агенты могут общаться друг с другом напрямую.

Модель участника берётся в таком порядке: сначала та, что названа в твоём промпте, затем модель из определения суб-агента, затем CLAUDE_CODE_SUBAGENT_MODEL, затем модель лидера. Модель и fast mode фиксируются в момент создания участника.

Claude Code создаст команду и раздаст каждому участнику:

Что каждый агент получает:

Напиши в чат
1. Описание своей роли и задачи
2. Список товарищей по команде (имена + что делают)
3. Общий список задач проекта
4. Пошаговые инструкции для своей части
5. Доступ к SendMessage для коммуникации

История разговора лидера к участникам не переходит: они загружают CLAUDE.md, MCP-серверы и скиллы проекта и получают только задание от лидера. Поэтому всё нужное пиши в задании.


Как агенты общаются: SendMessage

Пример диалога внутри команды:

Код
QA Agent → Frontend Dev:
"Обнаружил баг: кнопка Submit на форме заказа кликается дважды при быстром нажатии.
Это создаёт дублирующиеся заказы в базе. Приоритет: высокий.
Тест-кейс: test_double_click_submit.py в папке tests/"

Frontend Dev → QA Agent:
"Принято. Добавляю debounce на кнопку Submit. Исправление будет готово через 15 минут.
Можешь перезапустить тест-кейс после коммита #a3f2c."

QA Agent → Backend Dev:
"Нужна помощь с тестированием endpoint POST /orders.
Как воспроизвести идемпотентность при дублирующихся запросах?"

Основной агент не управляет каждым сообщением — команда координируется самостоятельно. Он видит общую картину и вмешивается только если нужно.


Наследование прав

🎨 Образ: Права команды — как бейдж доступа в офисе. Если у тебя есть пропуск на все этажи, твои сотрудники тоже проходят везде пока работают с тобой. Будь осторожен: неправильные инструкции + полный доступ = можно что-то сломать.

Участники команды стартуют с режимом разрешений лидера (кроме режима dontAsk, его они не наследуют). Запросы разрешений от участников всплывают в сессии лидера, одобряешь их там:

  • MCP-серверы и скиллы участники берут из настроек проекта и пользователя, как обычная сессия
  • Если разрешены bash команды → участники могут выполнять bash
  • Если разрешено редактирование файлов → участники могут редактировать
  • Если лидер запущен с --dangerously-skip-permissions, так работают и все участники

Это удобно — не нужно настраивать каждого агента отдельно. Но нужно понимать: если агент получил неверные инструкции, у него есть полные права что-то сломать.

Важно: перед запуском команды убедись что права настроены правильно. Не давай команде прав которые ей не нужны.


4 ловушки командной работы

Ловушка 1: Агенты просят разрешений

Ситуация: команда создана, начала работать, каждые 2 минуты агент спрашивает "Можно ли мне выполнить bash команду?"

Решение: пре-авторизуй нужные операции до запуска команды: добавь их в разрешённые через /permissions или в settings.json (см. урок Разрешения и безопасность).

Одним лишь промптом разрешения не выдаются: фраза «не спрашивай подтверждения» не отменяет запросов разрешений. Промптом можно описать границы работы («работайте только в папке /src, коммиты делайте в свою ветку»), а сами разрешения задаются в настройках.

Ловушка 2: Конфликты при записи файлов

🎨 Образ: Два строителя в одной комнате с одной банкой краски — покрасят одно и то же место дважды и смешают цвета. Решение: разные зоны ответственности, разные файлы.

Ситуация: Frontend Dev и Backend Dev одновременно редактируют config.json → один перезаписывает изменения другого.

Решение: использовать временные файлы с уникальными именами:

Напиши в чат
Frontend Dev пишет в: frontend-config-temp.json
Backend Dev пишет в:  backend-config-temp.json
Основной агент объединяет в: config.json

Или явно распределить зоны ответственности в промпте: "Frontend работает только в /src/components/, Backend только в /api/, не трогают файлы друг друга без явного разрешения."

Ловушка 3: Путаница с правами доступа

Ситуация: QA Agent пытается использовать инструмент который не был разрешён → ошибка → агент "застрял".

Решение: на этапе обучения дать полные права и наблюдать что используется. Затем ограничить по факту использования. Не угадывать права заранее — это непродуктивно.

Ловушка 4: Команда для последовательных задач

Ситуация: создал команду из 3 агентов для задач которые должны выполняться строго одна за другой (агент B не может начать пока агент A не закончил).

Результат: агенты B и C сидят и ждут, никакой параллельности нет. Команда потратила вдвое больше ресурсов без выигрыша в скорости.

Решение: для последовательных задач используй суб-агентов, не команду. Команда эффективна только когда задачи параллельны.


Практический пример: команда для market research

Задача: исследовать рынок онлайн-обучения для запуска нового курса

Напиши в чат
Создай команду из 3 агентов для market research:

Агент 1 (Industry Analyst):
- Анализирует размер рынка онлайн-образования на русском языке
- Изучает тренды за последние 2 года
- Находит растущие ниши

Агент 2 (Competitor Researcher):
- Исследует топ-10 курсов в выбранной нише
- Анализирует цены, форматы, отзывы
- Находит незакрытые потребности

Агент 3 (Audience Researcher):
- Изучает целевую аудиторию (форумы, Reddit, Telegram)
- Определяет боли и желания
- Находит где аудитория проводит время

Для каждого участника используй Sonnet.
После завершения каждый агент делится результатами с остальными.
Агент 1 координирует финальный отчёт на основе всех данных.

Пока Industry Analyst изучает тренды, Competitor Researcher уже исследует конкурентов, а Audience Researcher читает форумы. Всё параллельно, поэтому исследование выполняется заметно быстрее последовательного (ценой большего расхода токенов: каждый участник — отдельная сессия Claude).


🎨 Образ: Orchestrator-Worker — как прораб на стройке. Прораб не кладёт кирпичи сам — он раздаёт задачи, следит за прогрессом, собирает результаты. Рабочие не знают друг о друге, только о своих секторах.

Паттерны коммуникации агентов

Паттерн Как работает Когда использовать Пример
Orchestrator-Worker Один координатор раздаёт задачи остальным Чёткое разделение ролей, нужен контроль Лендинг: координатор + Frontend + Backend + QA
Pipeline Результат агента A идёт на вход агенту B Последовательные шаги с трансформацией данных Сбор данных → Анализ → Отчёт → PDF
Parallel (Fan-out / Fan-in) Все агенты работают одновременно, результаты собираются Независимые задачи, нужна скорость Market research: 3 аналитика параллельно
Peer-to-peer Агенты общаются напрямую через SendMessage Нужна координация без центрального управления Frontend + QA: нашёл баг → исправь

Самый частый паттерн для начала: Orchestrator-Worker. Один агент-координатор управляет 3-5 рабочими агентами (документация советует начинать с 3-5 участников и не раздувать команду: три сфокусированных участника часто работают лучше пяти разрозненных). Простой, предсказуемый, эффективный.


Когда использовать команды vs суб-агентов

Используй команду когда:

  • Задачи параллельны и независимы друг от друга
  • Нужна коммуникация между агентами в процессе работы
  • Задача достаточно большая чтобы оправдать overhead на координацию и расход токенов (команда стоит значительно дороже одной сессии)
  • Разные части задачи требуют разной специализации

Используй суб-агентов когда:

  • Задачи последовательны (одна зависит от другой)
  • Нужна простая делегация без коммуникации
  • Задачи короткие (менее 10 минут каждая)
  • Нужно просто изолировать контекст

Не используй ни то ни другое когда:

  • Задача занимает менее 5 минут
  • Не нужна специализация
  • Задача требует полного контекста текущей сессии

Практика

Задание: Создать команду из 3 агентов для исследования рынка

  1. Выбери нишу которую хочешь исследовать (например: SaaS для малого бизнеса, онлайн-курсы по инвестициям, фитнес-приложения)
  2. Создай команду из 3 агентов:
    • Industry Analyst: общие тренды рынка
    • Competitor Researcher: топ-5 конкурентов с ценами и отзывами
    • Audience Researcher: боли и желания целевой аудитории
  3. Дай команде задачу: провести исследование выбранной ниши
  4. Наблюдай за агентами в панели под полем ввода: стрелки вверх и вниз выбирают участника, Enter открывает его переписку, Ctrl+T показывает список задач
  5. Оцени результат: чем отличается от последовательного подхода (по качеству и времени)?
  6. Бонус: добавь четвёртого агента "Report Writer" который собирает финальный отчёт на основе данных от остальных трёх

Инструменты и ресурсы

  • SendMessage — встроенный инструмент для коммуникации внутри команды
  • Режимы показа: in-process (по умолчанию, работает в любом терминале) и split panes (каждый участник в своей панели, нужен tmux или iTerm2); переключается настройкой teammateMode
  • Хуки для команд: TeammateIdle, TaskCreated, TaskCompleted (код выхода 2 возвращает обратную связь)
  • Документация по agent teams — официальное руководство и список ограничений
  • Документация по суб-агентам
  • /permissions — управление правами до запуска команды
  • Git branches / worktrees — для параллельной работы над кодом без конфликтов

Ключевые выводы

Ключевое отличие команды от суб-агентов: агенты команды ГОВОРЯТ друг с другом. QA находит баг → сообщает Frontend Dev напрямую, без посредника.

Команда для параллельных задач может заметно ускорить работу. Команда для последовательных задач = двойные расходы без выгоды. Знай когда применять.

Пре-авторизуй инструменты до запуска — иначе агенты будут постоянно спрашивать разрешения и ломать рабочий ритм.


Связанные уроки

  • ← Суб-агенты: суб-агенты работают изолированно, команды добавляют коммуникацию
  • → Git и worktrees: worktrees для параллельной работы агентов над кодом без конфликтов
  • ← MCP глубже: участники команды загружают MCP-серверы из настроек проекта и пользователя

Что дальше

→ Автоматизация браузера: Playwright и QA

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс