04 / 06 · Эксперт
🤖 Мульти-агентность
Несколько Claude Code сессий параллельно — мощный инструмент для сокращения времени разработки. При правильном использовании ускоряет работу в 2–4 раза. При неправильном — создаёт конфликты и головную боль.
🧠 Что такое мульти-агентность в CC
Мульти-агентность — это запуск нескольких независимых CC-сессий в разных терминалах, каждая из которых работает над своей частью задачи. Никакой магии: это просто несколько экземпляров claude, запущенных одновременно в одном репозитории.
💡
Ключевой принцип — Агенты не общаются напрямую. Они координируются через файловую систему (git, scratchpad.md, конфиги). Каждый агент — это самостоятельная сессия с собственным контекстом, историей и задачей.
Claude Code поддерживает до 10 параллельных сессий на тарифе Max. Но практический максимум — 4 агента: каждый требует внимания разработчика, и больше просто сложно контролировать качество одновременно.
⚖️ Когда использовать параллельные агенты
✅ Используйте параллельно
🔀
Задачи полностью независимы — backend и frontend разработка одной фичи
⏱️
Одна задача займёт больше 30 минут — можно делить на параллельные части
📁
Задачи работают в разных директориях — нет пересечений по файлам
🧪
Написание тестов и написание имплементации — идеальная пара для параллелизма
📝
Документация и рефакторинг в разных модулях одновременно
🚫 НЕ запускайте параллельно
🔗
Задачи зависят друг от друга — агент 2 нужен результат агента 1
📄
Оба агента работают с одним файлом — гарантированный конфликт
🔄
Последовательный рефакторинг — каждый шаг зависит от предыдущего
🏗️
Изменение общей архитектуры — один агент должен сделать это целиком
🔧
Отладка сложного бага — требует целостного понимания, делайте последовательно
⚠️
Тест на независимость — Перед запуском параллельных агентов задайте вопрос: «Если агент A закончит раньше и закоммитит — сломает ли это работу агента B?» Если ответ «да» — задачи зависимы и не подходят для параллелизма.
⚠️
Риск race condition при параллельных агентах: если два агента одновременно редактируют один файл — результат непредсказуем. Один перезапишет изменения другого. Правило железное:
один файл — один агент. Перед запуском нескольких агентов явно пропишите в промпте каждому какие именно файлы и директории ему принадлежат, и запретите трогать остальные. Используйте
race condition-защиту через git add с конкретными путями, никогда
git add ..
💡
Тонкий момент: параллельные агенты не общаются напрямую — они видят только файловую систему. Это означает: изменения агента A видны агенту B только после git commit + git pull. Нельзя передавать «живые» данные между агентами — только через файлы (scratchpad.md, git). Планируйте API-контракт заранее, до запуска агентов.
🖥️ Как запустить несколько CC-сессий
Несколько способов открыть параллельные сессии CC, от простого к удобному:
$ cd project/app
$ claude
▶ Agent 1 [backend]
$ cd project/resources
$ claude
▶ Agent 2 [frontend]
Создаю Vue компонент...
$ cd project/tests
$ claude
▶ Agent 3 [tests]
Пишу тест-кейсы...
Способы открыть несколько сессий
# Windows Terminal: Ctrl+Shift+T — новая вкладка
# Каждая вкладка = отдельный агент
# Вкладка 1: агент backend
cd E:\Projects\myapp\app
claude
# Вкладка 2: агент frontend
cd E:\Projects\myapp\resources\js
claude
# Вкладка 3: наблюдение за git
cd E:\Projects\myapp
git log --oneline --all -20
# VS Code: Terminal → New Terminal (Ctrl+Shift+`)
# Или: нажмите "+" в панели терминалов
# Разделите экран: кнопка "Split Terminal" справа вверху
# Рекомендованная раскладка:
# ┌─────────────────┬─────────────────┐
# │ Agent 1 │ Agent 2 │
# │ (backend) │ (frontend) │
# ├─────────────────┴─────────────────┤
# │ git log / наблюдение │
# └───────────────────────────────────┘
🚀 Пример: параллельная разработка фичи «Корзина»
Разработаем фичу корзины покупок параллельно. Задача разбита на три независимые части — каждый агент получает свои файлы и не трогает чужие.
Вы (координатор)
Разбивка задачи
- Пишете scratchpad.md
- Раздаёте задания агентам
- Мержите результаты
→
Агент 1 · Backend
API + Миграции
- CartController.php
- CartService.php
- create_carts_table.php
- Cart model + relations
+
Агент 2 · Frontend
Vue + Pinia
- CartWidget.vue
- CartPage.vue
- stores/cart.ts
- composables/useCart.ts
+
Агент 3 · Tests
Тестирование
- CartControllerTest.php
- CartServiceTest.php
- cart.spec.ts (Vitest)
- E2E: cart.cy.ts
Задание для Агента 1 (Backend)
Задача: создать backend для корзины покупок.
Стек: Laravel 11, PHP 8.3.
Создай в директории app/:
1. app/Models/Cart.php — модель с fillable ['user_id', 'product_id', 'qty', 'price']
2. app/Services/CartService.php — методы: add($userId, $productId, $qty), remove($userId, $cartItemId), clear($userId), getTotal($userId)
3. app/Http/Controllers/Api/CartController.php — CRUD через CartService (index, store, destroy)
4. database/migrations/xxxx_create_carts_table.php — таблица carts
5. routes/api.php — добавь маршруты /api/cart (auth:sanctum)
Ограничения:
- НЕ трогай resources/ и tests/ — там работают другие агенты
- НЕ создавай фронтенд-файлов
- После создания: запусти php artisan migrate и убедись что работает
- Закоммить с сообщением "feat(cart): backend API + migration"
- Обнови scratchpad.md: пометь свои задачи как DONE с именами созданных файлов
Задание для Агента 2 (Frontend)
Задача: создать frontend для корзины покупок.
Стек: Vue 3 Composition API, Pinia, TypeScript, Axios.
API endpoint который будет готов: /api/cart (GET, POST, DELETE)
Пока работаешь — API может быть не готов, мокай данные.
Создай в resources/js/:
1. stores/cart.ts — Pinia store: items[], total, loading, методы fetchCart(), addItem(), removeItem()
2. composables/useCart.ts — удобный composable для работы со store
3. components/CartWidget.vue — виджет в хедере: иконка + счётчик товаров
4. pages/CartPage.vue — страница корзины: список товаров, qty controls, итого
Ограничения:
- НЕ трогай app/ и tests/
- Типизируй через interface CartItem { id, product_id, name, qty, price }
- После создания: убедись что нет TypeScript ошибок (npx vue-tsc --noEmit)
- Закоммить: "feat(cart): Vue components + Pinia store"
- Обнови scratchpad.md: пометь свои задачи как DONE
Задание для Агента 3 (Tests)
Задача: написать тесты для корзины покупок.
Пиши тесты параллельно с реализацией — по описанию API, не по готовому коду.
Что создать в tests/:
1. tests/Unit/CartServiceTest.php
- test_can_add_item_to_cart()
- test_can_remove_item_from_cart()
- test_calculates_total_correctly()
- test_cannot_add_negative_qty()
2. tests/Feature/CartControllerTest.php
- test_unauthenticated_user_cannot_access_cart()
- test_user_can_get_cart()
- test_user_can_add_item()
- test_user_can_remove_item()
3. resources/js/__tests__/cart.spec.ts (Vitest)
- описание store actions: fetchCart, addItem, removeItem
- мокай axios через vi.mock('axios')
Ограничения:
- НЕ трогай app/ и resources/js/ (только tests/)
- Для PHP тестов используй Laravel Pest или PHPUnit (смотри на существующие тесты)
- Закоммить: "test(cart): unit and feature tests"
- Обнови scratchpad.md: DONE
🔀 Синхронизация агентов через git
Git — основной механизм координации между агентами. Правило простое: каждый агент работает в своей ветке или своих директориях, коммитит независимо.
1
Агент 1 завершает и коммитит
Backend API готов. Агент делает git add app/ database/ routes/ и коммит. Только свои файлы — никаких git add .
2
Агент 2 видит изменения через git pull
Фронтенд готов и нужно подключиться к реальному API. Агент 2 выполняет git pull — получает модели и роуты агента 1. Теперь можно убрать моки.
3
Агент 3 обновляет тесты по реальной реализации
После git pull агент 3 видит настоящий CartService и CartController — уточняет тесты под реальную имплементацию.
4
Вы (координатор) делаете финальный merge
Все три части закоммичены. Вы делаете git log --oneline -10, смотрите изменения через git diff, запускаете полный прогон тестов и делаете финальный merge-коммит или PR.
# Агент 1: только эти пути
git add app/Models/Cart.php
git add app/Services/CartService.php
git add app/Http/Controllers/Api/CartController.php
git add database/migrations/
git add routes/api.php
# Агент 2: только эти пути
git add resources/js/stores/cart.ts
git add resources/js/composables/useCart.ts
git add resources/js/components/CartWidget.vue
git add resources/js/pages/CartPage.vue
# Агент 3: только тесты
git add tests/Unit/CartServiceTest.php
git add tests/Feature/CartControllerTest.php
git add resources/js/__tests__/cart.spec.ts
# НИКОГДА не делайте git add . из параллельного агента!
⚠️ Практические ограничения и правила
🎯
Максимум 4 агента
На тарифе Max технически до 10, но практически — 4. Больше невозможно качественно контролировать. Каждый агент требует вашего внимания.
🚫
Один файл — один агент
Два агента не должны никогда редактировать один файл. Даже если они правят разные функции — это гарантированный merge-конфликт.
📁
Изоляция по директориям
Разделяйте агентов строго по директориям: app/, resources/, tests/. Пересечений быть не должно.
💰
Стоимость умножается
3 агента = примерно 3x расход
токенов. Считайте экономику: параллельность экономит время, но не деньги.
📋
Scratchpad как координатор
Файл scratchpad.md в корне проекта — общая «доска» всех агентов. Каждый читает и обновляет свой статус.
🔒
Конфиги — только вручную
Никогда не доверяйте агенту менять .env, config/, docker-compose.yml — только вы. Конфликт в конфигах трудно отловить.
Файл scratchpad.md — координация агентов
Создайте этот файл в корне проекта перед запуском агентов. Каждый агент обязан его читать и обновлять.
## Задачи
### Agent 1 (backend) — app/
- [x] Cart model
- [x] CartService
- [x] CartController API
- [x] Migration
STATUS: DONE | коммит: feat(cart): backend API
### Agent 2 (frontend) — resources/js/
- [x] Pinia cart store
- [ ] CartWidget.vue
- [ ] CartPage.vue
STATUS: IN PROGRESS
### Agent 3 (tests) — tests/
- [ ] CartServiceTest.php
- [ ] CartControllerTest
- [ ] cart.spec.ts
STATUS: WAITING | ждёт: git pull после Agent 1
## API контракт (согласован заранее)
GET /api/cart
POST /api/cart
DELETE /api/cart/{id}
## Запрещено трогать из агентов
🆕 Субагенты: новые возможности Новое · июнь 2026
Вложенность до 5 уровней
Начиная с v2.1.172 субагенты могут порождать собственных субагентов — вложенность до 5 уровней. Foreground-субагенты также соблюдают этот лимит (v2.1.178). Это позволяет строить настоящие иерархические пайплайны: оркестратор → менеджеры → воркеры → ревьюеры → финализаторы.
⚠️
Лимит 5 уровней жёсткий. Попытка создать 6-й уровень вложенности приведёт к ошибке. Планируйте иерархию заранее: для большинства задач достаточно 2–3 уровней.
Переменная CLAUDE_CODE_SUBAGENT_MODEL
Новая переменная окружения задаёт потолок модели для всех субагентов текущей сессии. Это позволяет жёстко контролировать стоимость при масштабировании.
# Все субагенты сессии не выше Sonnet
export CLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-5
# Запустить оркестратора (он может запускать субагентов,
# но они получат не выше Sonnet, даже если просят Opus)
claude
Стратегия выбора модели для субагентов Новое · июнь 2026
| Задача | Модель | Экономия |
| Документация, переименования, форматирование | Haiku | ~5x дешевле Opus |
| Review, рефакторинг, отладка | Sonnet | баланс цены и качества |
| Security audit, архитектура, сложная логика | Opus | только когда нужен нюанс |
Новые флаги claude agents (v2.1.142–v2.1.144) Новое · июнь 2026
claude agents run task.md \
--json # вывод в JSON (для парсинга)
--add-dir ./extra-src # дополнительные директории в контекст
--settings custom.json # кастомные настройки вместо глобальных
--mcp-config mcp.json # конфиг MCP-серверов для субагента
--plugin-dir ./plugins # директория плагинов
--permission-mode auto # режим разрешений (auto/manual/bypassPermissions)
--model claude-sonnet-5 # переопределение модели
--effort high # уровень усилий (low/medium/high)
⚡ Dynamic Workflows — до ~1000 субагентов Новое · июнь 2026
🔬
Research preview · 28 мая 2026. Dynamic Workflows — экспериментальная возможность JS-оркестрации, позволяющая запускать до ~1000 параллельных субагентов в одной сессии. Поддерживает codebase-scale миграции: сотни тысяч строк от старта до merge.
Скрипт описывает фазы и параллельные задачи. Каждый файл обрабатывается изолированным субагентом в своём worktree.
export const meta = {
name: 'migration-task',
description: 'Parallel codebase migration',
phases: [
{ title: 'Analyse' },
{ title: 'Migrate' },
{ title: 'Verify' }
]
}
// Фаза 1: один агент составляет список файлов
const files = await agent(
'List all PHP files needing migration',
{ schema: FILES_SCHEMA }
)
// Фаза 2: каждый файл — отдельный изолированный субагент
const results = await pipeline(files.items,
f => agent(`Migrate ${f.path}`, {
label: f.path,
phase: 'Migrate',
isolation: 'worktree' // каждый в своём worktree
})
)
// Фаза 3: один агент синтезирует результат
await agent(`Verify migration: ${results.length} files`, {
phase: 'Verify'
})
Паттерн fan-out → reduce → synthesize Новое · июнь 2026
1
Phase 1: Research (fan-out)
N агентов параллельно исследуют свою область → каждый возвращает JSON с находками. Все запускаются одновременно.
2
Phase 2: Curate (reduce)
Один агент-куратор объединяет JSON, дедуплицирует и ранжирует находки по релевантности.
3
Phase 3: Write (synthesize)
Один агент синтезирует финальный результат на основе куратора. Качество frontier-модели при снижении стоимости в 5×.
Advisor strategy (Code with Claude 2026) Новое · июнь 2026
✅
Топовая модель как «советчик» для быстрых. Opus 4.8 (или Fable 5) анализирует задачу и составляет детальный план, Sonnet или Haiku исполняют его. Такой паттерн даёт качество frontier-модели при кратном снижении стоимости по сравнению с прогоном всей задачи на топовой модели.
🎭 Паттерн Orchestrator + Workers
Продвинутый паттерн где один агент (Orchestrator) управляет остальными — разбивает задачу, раздаёт работу, интегрирует результаты. Вы общаетесь только с Orchestrator'ом.
🎭 Orchestrator Agent
Разбивает задачу · Проверяет результаты · Интегрирует
⚙️ Worker 1
app/Services/
Ты — Orchestrator. Твоя задача: разбить фичу на части и создать задания для worker-агентов.
Фича: система уведомлений по email для пользователей
Сделай следующее:
1. Проанализируй текущую архитектуру проекта (посмотри app/, resources/js/, tests/)
2. Составь список из 3-4 независимых задач, которые можно выполнить параллельно
3. Для каждой задачи напиши подробный промпт в scratchpad.md
4. Определи API контракт (интерфейсы между частями) и запиши его в scratchpad.md
5. Укажи порядок: какие задачи могут идти параллельно, какие последовательно
Формат scratchpad.md: как уже существующий формат в файле.
НЕ реализуй код сам — только планируй и координируй.
✅
Когда использовать Orchestrator паттерн — Когда задача большая и вы сами не уверены как её правильно разбить. Orchestrator проанализирует кодовую базу и предложит оптимальное разделение с учётом реальной архитектуры.
📌 Резюме: правила мульти-агентности
| Правило | Почему |
| Один файл — один агент | Избегаем merge-конфликтов которые трудно решать автоматически |
| Изолируйте по директориям | Чёткие границы = нет неожиданных пересечений |
| Scratchpad.md для координации | Агенты видят статус друг друга, не дублируют работу |
| git add по конкретным файлам | Не захватываете чужие изменения случайно |
| Согласуйте API контракт заранее | Frontend может работать с мок-данными пока backend не готов |
| Не более 4 агентов | Контроль качества — ваша ответственность, не автоматическая |
🔗
Более простые инструменты автоматизации — hooks и
MCP — описаны в
разделе Hooks и
MCP в Продвинутом уровне. Hooks позволяют автоматизировать действия без ручного запуска параллельных агентов.