Суть урока
Суб-агент — это фрилансер: получил задание, выполнил, сдал, ушёл. Команда агентов — это отдел: все работают одновременно, общаются между собой, видят общую задачу, могут поручить работу коллеге. Это не просто быстрее — это другой уровень сложности задач которые можно решать.
Ключевые концепции
- Ключевое отличие команды от суб-агентов: участники общаются друг с другом напрямую (инструмент
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:
{
"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 | Один координатор раздаёт задачи остальным | Чёткое разделение ролей, нужен контроль | Лендинг: координатор + 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 агентов для исследования рынка
- Выбери нишу которую хочешь исследовать (например: SaaS для малого бизнеса, онлайн-курсы по инвестициям, фитнес-приложения)
- Создай команду из 3 агентов:
- Industry Analyst: общие тренды рынка
- Competitor Researcher: топ-5 конкурентов с ценами и отзывами
- Audience Researcher: боли и желания целевой аудитории
- Дай команде задачу: провести исследование выбранной ниши
- Наблюдай за агентами в панели под полем ввода: стрелки вверх и вниз выбирают участника, Enter открывает его переписку, Ctrl+T показывает список задач
- Оцени результат: чем отличается от последовательного подхода (по качеству и времени)?
- Бонус: добавь четвёртого агента "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-серверы из настроек проекта и пользователя
Что дальше
Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс