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, от простого к удобному:

Агент 1 — Backend
$ cd project/app
$ claude
▶ Agent 1 [backend]
Создаю API endpoint...
Агент 2 — Frontend
$ cd project/resources
$ claude
▶ Agent 2 [frontend]
Создаю Vue компонент...
Агент 3 — Tests
$ cd project/tests
$ claude
▶ Agent 3 [tests]
Пишу тест-кейсы...

Способы открыть несколько сессий

Windows Terminal
# 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
# 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)

Промпт агенту 1
Задача: создать 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)

Промпт агенту 2
Задача: создать 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)

Промпт агенту 3
Задача: написать тесты для корзины покупок. Пиши тесты параллельно с реализацией — по описанию 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 — координация агентов

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

📋 scratchpad.md — Фича: Корзина покупок · 2026-05-09
## Задачи ### Agent 1 (backend) — app/ - [x] Cart model → app/Models/Cart.php - [x] CartService → app/Services/CartService.php - [x] CartController API → app/Http/Controllers/Api/CartController.php - [x] Migration → 2026_05_09_create_carts_table.php STATUS: DONE | коммит: feat(cart): backend API ### Agent 2 (frontend) — resources/js/ - [x] Pinia cart store → stores/cart.ts - [ ] CartWidget.vue → IN PROGRESS - [ ] CartPage.vue STATUS: IN PROGRESS ### Agent 3 (tests) — tests/ - [ ] CartServiceTest.php → WAITING for Agent 1 commit - [ ] CartControllerTest - [ ] cart.spec.ts STATUS: WAITING | ждёт: git pull после Agent 1 ## API контракт (согласован заранее) GET /api/cart → CartItem[] POST /api/cart → { product_id, qty } DELETE /api/cart/{id} → 204 No Content ## Запрещено трогать из агентов - .env, config/, docker-compose.yml - routes/web.php (только routes/api.php) - database/seeders/ (не меняем)

🆕 Субагенты: новые возможности Новое · июнь 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
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.

Dynamic Workflow: миграция кодовой базы
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/
🎨 Worker 2
resources/js/
🧪 Worker 3
tests/
Промпт для Orchestrator-агента
Ты — 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 позволяют автоматизировать действия без ручного запуска параллельных агентов.