Гайд

Субагенты в Claude Code: создание и настройка

Перевод и практическая адаптация официальной документации Anthropic: когда нужен отдельный агент, где хранить его файл, как ограничить инструменты, выбрать модель, подключить память, hooks и MCP.

Содержание16 глав
  1. 01Что такое субагент
  2. 02Что дают субагенты
  3. 03Быстрый старт
  4. 04Где хранить агентов
  5. 05Формат файла
  6. 06Как выбрать модель
  7. 07Инструменты и разрешения
  8. 08MCP только внутри агента
  9. 09Skills и постоянная память
  10. 10Как запускать субагента
  11. 11Автоматическое делегирование
  12. 12Когда использовать основной диалог
  13. 13Параллельность и вложенность
  14. 14Обычный субагент и fork
  15. 15Практический шаблон ревьюера
  16. 16Чек-лист хорошего субагента

Что такое субагент

Субагент — отдельный AI-помощник для конкретного типа работы. Он запускается в собственном контекстном окне, получает свой системный промпт, набор инструментов, модель и правила доступа, а в основной диалог возвращает результат или краткую сводку.

Субагенты полезны, когда побочная задача создает большой объем поиска, логов или содержимого файлов, который не понадобится в основном диалоге. Если один и тот же тип исполнителя запускается регулярно, его стоит оформить в отдельный Markdown-файл.

Что дают субагенты

  • изолируют объемный поиск и вывод инструментов;
  • ограничивают доступ к инструментам и операциям;
  • переиспользуют одну настройку в разных проектах;
  • задают узкую специализацию через системный промпт;
  • позволяют отправлять простые задачи на более быструю и дешевую модель.

Claude выбирает субагента по полю description. Описание должно быть коротким и однозначным. Подробные правила лучше переносить в тело файла: они загрузятся только после запуска агента.

Быстрый старт

Попроси Claude Code создать личного read-only агента:

Промт 11 строка · 295 знаков
Создай личного субагента code-improver в ~/.claude/agents/. Он должен проверять файлы и предлагать улучшения читаемости, производительности и практик разработки. Для каждой проблемы объясняй причину, показывай текущий код и улучшенную версию. Агент работает только на чтение и использует Sonnet.

Проверь файл ~/.claude/agents/code-improver.md:

Промт 212 строк · 356 знаков
---
name: code-improver
description: Проверяет код после изменений и предлагает улучшения читаемости, производительности и практик разработки.
tools: Read, Grep, Glob
model: sonnet
---

Ты специалист по улучшению кода. Для каждой найденной проблемы:
1. Объясни причину.
2. Покажи текущий фрагмент.
3. Предложи улучшенную версию.
4. Укажи влияние изменения.

Запуск:

Промт 31 строка · 70 знаков
Используй агента code-improver и предложи улучшения для этого проекта.

Если каталог ~/.claude/agents/ появился уже после старта текущей сессии и агент не найден, перезапусти Claude Code.

Где хранить агентов

РасположениеОбласть действияПриоритет
Управляемые настройки организацииВся организацияСамый высокий
Флаг --agentsТекущая сессия2
.claude/agents/Текущий проект3
~/.claude/agents/Все проекты пользователя4
Каталог agents/ плагинаПроекты, где включен плагинСамый низкий

Проектные агенты можно хранить в Git вместе с кодом. Claude Code рекурсивно сканирует каталоги агентов, поэтому определения разрешено группировать по подпапкам. Идентификатор берется из поля name, а не из имени файла.

Имена должны быть уникальными. Если одно имя определено в нескольких областях, побеждает файл с более высоким приоритетом. Для поиска конфликтов используй /doctor.

Формат файла

Файл состоит из YAML-frontmatter и системного промпта в Markdown. Обязательны только name и description.

ПолеНазначение
nameУникальное имя в нижнем регистре с дефисами.
descriptionУсловие, при котором Claude должен выбрать этого агента.
toolsРазрешенные инструменты. Если поле пропущено, агент наследует доступный набор.
disallowedToolsИнструменты, которые нужно исключить из унаследованного или заданного списка.
modelhaiku, sonnet, opus, fable, полный ID модели или inherit.
permissionModeРежим подтверждений: default, acceptEdits, auto, dontAsk, bypassPermissions, plan.
maxTurnsМаксимальное число агентных ходов до остановки.
skillsSkills, которые полностью загружаются в контекст при старте.
mcpServersMCP-серверы по имени или встроенная конфигурация сервера только для этого агента.
hooksLifecycle-хуки, действующие внутри агента.
memoryПостоянная память: user, project или local.
backgroundПри значении true агент остается фоновым.
isolationПри worktree агент работает в отдельном Git worktree.

Как выбрать модель

  • Haiku — извлечение данных, простые проверки, классификация, форматирование.
  • Sonnet — основная разработка, ревью, диагностика и большинство аналитических задач.
  • Opus — архитектура, сложные неоднозначные решения и многошаговое рассуждение.
  • inherit — агент использует модель основной сессии.

Сильная модель для простой проверки увеличивает расход без гарантии полезного результата. Для каждого агента зафиксируй класс задачи и назначай минимальную модель, которая стабильно дает нужное качество.

Промпт для аудита моделей1 строка · 263 знака
Проверь .claude/agents и ~/.claude/agents. Для каждого агента укажи его задачу, заданную модель и оценку: простая или сложная работа. Найди простых агентов, которым можно поставить model: haiku без заметной потери качества. Ничего не меняй — выдай готовые правки.

Инструменты и разрешения

Выдавай только те инструменты, которые нужны для результата. Read-only ревьюеру достаточно Read, Grep и Glob. Отладчику может понадобиться Edit и Bash. Агент без Agent в списке tools не сможет делегировать работу другим субагентам.

---
name: code-reviewer
description: Проверяет измененный код после реализации.
tools: Read, Grep, Glob, Bash
disallowedTools: Write, Edit, Agent
model: sonnet
permissionMode: plan
maxTurns: 12
---

Для выборочного контроля команд используй PreToolUse-хук. Например, агент для базы данных может получать доступ к Bash, а хук будет блокировать INSERT, UPDATE, DELETE и другие операции записи.

MCP только внутри агента

Поле mcpServers позволяет подключить сервер только на время работы конкретного агента. Это полезно, если инструменты Playwright, GitHub или базы данных не должны попадать в основной контекст.

---
name: browser-tester
description: Проверяет готовую функцию в реальном браузере.
mcpServers:
  - playwright:
      type: stdio
      command: npx
      args: ["-y", "@playwright/mcp@latest"]
tools: Read, Bash
model: sonnet
---

Открой локальное приложение, выполни заданный сценарий и верни краткий отчет с найденными ошибками.

Встроенный сервер подключается при старте агента и отключается после завершения. Основной диалог не получает его описания инструментов.

Skills и постоянная память

Поле skills загружает выбранные навыки в контекст агента при старте. Используй его только для знаний, которые нужны почти в каждом запуске этого агента.

Поле memory дает отдельный каталог, который сохраняется между диалогами:

ЗначениеПутьКогда использовать
user~/.claude/agent-memory/ /Знания полезны во всех проектах.
project.claude/agent-memory/ /Знания относятся к проекту и могут храниться в Git.
local.claude/agent-memory-local/ /Знания относятся к проекту, но не должны попадать в репозиторий.

В системный промпт попадают первые 200 строк или 25 КБ файла MEMORY.md. Память нужно регулярно очищать от повторов и устаревших деталей.

Как запускать субагента

  • Естественным языком: «Попроси code-reviewer проверить последние изменения».
  • Через @-упоминание: выбери агента в подсказке после символа @, чтобы гарантировать запуск конкретного определения.
  • На всю сессию: claude --agent code-reviewer.

При запуске всей сессии с флагом --agent системный промпт агента заменяет стандартный системный промпт Claude Code. Ограничения инструментов и модель сохраняются при возобновлении сессии.

Автоматическое делегирование

Claude сопоставляет запрос, текущий контекст и поле description. Если агент должен использоваться проактивно, это можно прямо указать в описании. При этом длинные описания увеличивают стартовый контекст. Если их суммарный объем превышает 15 000 токенов, Claude Code показывает предупреждение.

Когда использовать основной диалог

Основной диалогСубагент
Нужны частые уточнения и итерации.Работа самодостаточна и возвращает итоговую сводку.
Планирование, реализация и тестирование используют общий контекст.Будет много логов, результатов поиска или файлов.
Нужно быстро внести одно небольшое изменение.Нужны отдельные ограничения инструментов и разрешений.
Задержка важнее изоляции.Задачу можно выполнить параллельно или на другой модели.

Для переиспользуемой инструкции, которая должна работать внутри основного контекста, лучше подходит skill. Для короткого вопроса по текущей беседе без инструментов можно использовать /btw.

Параллельность и вложенность

Субагенты могут запускать других субагентов до установленной глубины. В текущей документации стандартный предел — три слоя ниже основного диалога. Переменная CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH меняет глубину; значение 1 отключает дальнейшее вложенное делегирование.

По умолчанию одновременно может работать до 20 субагентов в одной сессии. Предел меняется через CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS. Большое число допустимых запусков не означает, что их нужно использовать: каждый агент держит собственный контекст и увеличивает расход.

Обычный субагент и fork

Обычный субагент начинает с чистого контекста и своего определения. Fork получает полную историю текущего диалога, тот же системный промпт, инструменты и модель. Его кэш связан с родительской сессией, поэтому fork может быть выгоднее, когда новой ветке нужен почти весь текущий контекст.

ПараметрForkОбычный субагент
КонтекстПолная история основной сессииНовый контекст и переданный промпт
Системный промпт и toolsКак у основной сессииИз файла агента
МодельКак у основной сессииИз поля model
КэшОбщий с основной сессиейОтдельный

Для ручного ответвления используй /subtask с описанием задачи. Fork полезен для параллельной проверки нескольких подходов от одной точки.

Практический шаблон ревьюера

Промт 526 строк · 723 знака
---
name: code-reviewer
description: Проверяет измененный код после реализации на качество, безопасность и поддерживаемость.
tools: Read, Grep, Glob, Bash
disallowedTools: Write, Edit, Agent
model: sonnet
permissionMode: plan
maxTurns: 15
---

Ты проводишь read-only ревью изменений.

Порядок работы:
1. Посмотри git diff.
2. Работай только с измененными файлами и их прямыми зависимостями.
3. Найди ошибки поведения, риски безопасности, слабую обработку ошибок и отсутствие тестов.
4. Не редактируй файлы.

Формат ответа:
- критичные проблемы;
- важные замечания;
- предложения;
- конкретный способ исправления;
- проверка, которая подтвердит исправление.

Не перечисляй стилистические замечания без практического влияния.

Чек-лист хорошего субагента

  • Одна понятная специализация.
  • Короткое и однозначное description.
  • Минимально достаточная модель.
  • Только необходимые инструменты.
  • Явный формат результата.
  • Ограничение числа ходов для предсказуемой задачи.
  • Память включена только там, где накопленный опыт действительно нужен.
  • MCP подключен локально к агенту, если основной диалог им не пользуется.
  • Проектные определения хранятся в Git и проходят ревью.
  • Периодически проверяется фактический расход через /usage.

Главный принцип: субагент оправдан, когда изоляция контекста, ограничения или специализация дают измеримую пользу. Для короткой задачи с общим контекстом дополнительный агент может добавить лишний стартовый расход и задержку.