Субагенты и параллельный режим:
Factorio-подход к разработке
Одна сессия Claude Code — это медленно. Ray Amjad держит 3–5 сессий параллельно и никогда не ждёт пока агент закончит. Разбираем субагенты, MCPs, Skills и git worktrees.
1. Factorio-режим — никогда не жди
Ray Amjad объясняет свой подход через метафору игры Factorio: в хорошей фабрике что-то всегда двигается. Запустил конвейер — пока он работает, строишь следующий.
«Одна сессия, одна задача — слишком медленно. Обычно у меня три, четыре, пять экземпляров на проект параллельно. Преимущество: мне всегда есть чем заняться. Я не сижу и не жду, пока агент закончит задачу.»
— Ray Amjad, 1600+ часов с Claude Code
Как организовать параллельную работу
Несколько терминалов = несколько задач
Каждая сессия Claude Code — отдельная задача. Пока одна думает, в другой уже пишешь следующий промпт.
Разные инструменты параллельно
2 сессии Claude Code + 2 Codex CLI в разных проектах. Или Claude для сложной логики, Codex для рутины.
Git worktrees — для пересекающихся фич
Используй claude -w feature-1 только если две фичи меняют одни и те же файлы. Тогда каждая сессия видит изолированную копию кодовой базы.
bash — параллельные worktrees
claude -w feature-auth # worktree 1: авторизация claude -w feature-api # worktree 2: API endpoints claude # основная ветка: code review
Когда worktrees, а когда просто несколько терминалов? Ray Amjad: worktrees — только когда фичи пересекаются в коде. Если задачи независимые, достаточно нескольких терминалов без worktrees — merge будет проще.
2. Субагенты — специализированные AI-личности
Субагент — это Claude Code с отдельным системным промптом, отдельным контекстом и заданным набором инструментов. Главное преимущество: субагент не засоряет основной контекст.
Как создать субагент
-
1
В сессии Claude Code набери
/agents - 2 Выбери Create new agent → уровень (проект или глобальный)
- 3 Опиши назначение агента. Claude сгенерирует системный промпт и файл
- 4 Выбери инструменты: read-only / edit / execution / MCP
Файл сохраняется в .claude/agents/agent-name.md.
Как вызвать субагент
Явный вызов
@performance-analyzer, проверь этот код
Ты явно указываешь агента. Надёжно.
Автоматический вызов
проанализируй производительность
Claude сам выберет нужного агента по описанию.
Ключевые принципы субагентов от Ray Amjad
Контекст, а не роль
Не назначай роли (frontend-агент, backend-агент) — это не работает. Давай субагенту конкретный контекст и информацию для его задачи. Чем точнее контекст — тем лучше результат.
Всегда добавляй «почему»
Когда Claude запускает субагент, добавляй зачем. Без объяснения причины субагент даёт обобщённые результаты. С конкретным «почему» он находит именно то, что нужно.
Делегируй поиск субагентам
Любая поисковая задача (документация, анализ логов, сканирование кода) — отдавай субагенту. Если основная сессия сама ищет, она загружает результаты в свой контекст. Субагент держит это отдельно и возвращает только суть.
Возобновляй субагентов
Если субагент ответил, но нужно больше деталей: «возобнови этого субагента, поищи ещё и дай обновлённый результат». Claude Code поддерживает resumable sub-agents.
Встроенные субагенты Claude Code
| Агент | Модель | Назначение |
|---|---|---|
@general |
Основная | Универсальный агент |
@explore |
Haiku | Быстрый обход кодовой базы, экономия контекста |
@planning |
Основная | Планирование задач |
@bash |
Оптимизирован | Пакетные bash-команды |
Хук для субагентов: Субагенты могут иметь собственные hooks (pretool_use, posttool_use, stop). Это позволяет, например, логировать все действия субагента или автоматически нотифицировать тебя при завершении.
3. MCPs — суперспособности Claude Code
MCP (Model Context Protocol) — это плагины, которые дают Claude Code доступ к внешним инструментам: поиск в интернете, управление браузером, работа с базами данных, внешние API.
MCPs которые Ray Amjad использует постоянно
Поиск онлайн прямо из Claude Code. Ray держит его включённым для всех проектов — Claude автоматически ищет документацию и примеры кода без переключения в браузер.
Управление браузером. Ray использует для фоновых повторяющихся задач и отладки сетевых ошибок. Например: автоматически обновляет список тасков в Todoist на основе задач Claude Code.
MCP-серверы от сервисов, которые ты используешь (Supabase, trigger.dev, etc.). Дают Claude доступ к документации и API напрямую — меньше ошибок в незнакомых SDK.
Управление MCPs
/mcp # посмотреть все установленные MCP /mcp enable supabase # включить MCP /mcp disable supabase # отключить MCP (экономит контекст) # Несколько конфигов для одного проекта: claude --mcp-config mcp1.json --mcp-config mcp2.json
Совет по контексту: Каждый MCP занимает место в контексте. Когда MCP не нужен — отключай через /mcp disable. Это особенно важно при длинных сессиях.
Headless режим + MCPs = фоновый конвейер
Headless — это Claude Code без интерактивного интерфейса. Можно запускать сотни раз в фоне. С планом $200/мес ты получаешь ~$2000 API-кредитов. Ray запускает headless-инстансы для обработки данных в фоне, пока работает в основных сессиях.
claude --output-format json \
--print "обработай эти 50 записей" \
--schema '{"type": "object", "properties": {...}}'
# JSON schema позволяет получать структурированный вывод
4. Skills и Slash Commands — мышечная память агента
Skill — это именованный промпт с дополнительными настройками (модель, инструменты, контекст). Ray Amjad использует skills для всех повторяющихся задач — вместо того чтобы каждый раз писать одно и то же.
Анатомия skill-файла
.claude/skills/github-release-notes.md
--- model: haiku # быстрая модель для простых задач context: fork # изолированный контекст skills: # какие другие skills может вызывать - find-todo - diff-summary --- Сгенерируй release notes на основе git diff. Формат: ## What's new / ## Bug fixes / ## Breaking changes
Ключевые настройки skills
model: haiku
Для простых/шаблонных задач используй Haiku. Быстрее и дешевле. Opus только для сложного мышления.
context: fork
Skill запускается в изолированном контексте. Не мусорит в основную сессию.
disableInvocation: true
Claude не будет сам вызывать этот skill. Используй для skills где не нужно участие модели — просто набор шагов.
Горячая перезагрузка
Изменил skill — он сразу применится. Перезапускать Claude Code не нужно.
Как вызвать skill
/github-release-notes # по имени файла skill'а /spec-developer # Ray использует для написания specs /spec-developer-explorer # сначала изучить кодовую базу
Шаблон Ray Amjad: Два связанных skill'а — один исследует кодовую базу перед написанием спеки, второй пишет спеку. Результат сохраняется в папку tasks/. Потом каждый task-файл загружается в новую сессию как задание.
5. Agent Teams — координация нескольких субагентов
Agent Teams — более новая фича: несколько субагентов видят общий список задач и могут блокировать друг друга (A не начинает пока B не закончит). Split Pane Mode позволяет общаться со всеми членами команды одновременно.
Ключевые концепции Agent Teams
- → Shared task list — все субагенты видят одну очередь задач и обновляют её в реальном времени
- → Blockers — субагент A не начнёт задачу пока субагент B не пометил свою как выполненную
- → Split Pane — общаешься со всеми агентами одновременно в одном интерфейсе
Важно: Для Agent Teams нужна переменная окружения в .claude/settings.local.json. Проверь актуальную документацию Anthropic — фича активно развивается.
Главное из методички
Параллельность прежде всего. 3–5 сессий вместо одной. Никогда не жди агента — запускай следующий.
Контекст, не роли. Субагентам нужна конкретная информация, не «ты frontend-разработчик».
Поиск — субагентам. Любой поиск делегируй, чтобы не засорять основной контекст.
MCPs расширяют возможности. Exa для поиска, официальные MCPs для SDK, Chrome для браузерных задач.
Skills = мышечная память. Повторяющиеся задачи → skill с нужной моделью и изолированным контекстом.
Всегда добавляй «почему». Субагент с объяснением цели даёт в 2–3 раза более точный результат.
Практическое задание
-
1.
Создай своего первого субагента через
/agents. Например: code-reviewer или docs-writer. - 2. Запусти две параллельные сессии Claude Code на разных задачах. Засеки сколько ты сэкономил времени.
-
3.
Создай один skill для самой частой задачи в твоём проекте. Добавь
model: haikuесли задача простая. -
4.
Поставь Exa MCP (
@exa). Попроси Claude найти документацию для следующей фичи — не переключаясь в браузер.