Субагенты в Claude Code (CC) существуют уже давно, но были мало кому известны, да и в документации про них была всего пара упоминаний.
И вот на днях Anthropic официально анонсировали поддержку кастомных агентов, которые реализованы поверх субагентов.
Разберемся и в том, и в другом.
1️⃣ Субагенты
Их можно воспринимать как потоки исполнения внутри CC, каждый со своим изолированным контекстом, инструментами и специализированным системным промптом.
Для делегации задачи основной агент использует инструмент Task для запуска субагента и передаёт ему промпт и нужный для задачи контекст.
Что это даёт?
🟢 Экономия контекста
К примеру, поиск по большому количеству файлов в основном диалоге забьёт контекст содержимым всех этих файлов.
В случае же запуска субагента в основной контекст попадёт только суммаризированный результат его работы
🟢 Ускорение за счёт параллелизма
Если нужно провести рефакторинг вширь по проекту - говорим CC использовать субагентов для этой задачи и получаем существенное ускорение
🟢 Более долгие задачи
Когда подзадачи делаются субагентами, основной агент может "вести" задачи с бОльшим количеством шагов, экономя собственный контекст - а именно его ограниченность сильно влияет на размер задачи, с которой может справиться агент
Для чего использовать?
● "суммаризация":
* сбор сведений для документации
* ответы на вопросы по проекту
● параллелизуемые "широкие" задачи:
* несложный рефакторинг
* code review / security review
● там, где важно иметь в общем контексте результат, а не процесс работы:
* запуск тестов
* анализ логов
Как запустить?
Да прям словами сказать:
use subagents for this task, можно это даже в CLAUDE.md добавить.Стоит помнить, что, т.к. это промптинг, да и не все задачи хорошо ложатся на субагентов, CC не всегда их запускает.
Бороться с его планировщиком, тем не менее, не очень продуктивно.
2️⃣ Кастомные агенты
Это новая фича - по сути, поддержка специализации для субагентов:
1. пишем
/agents - запускается визард2. создаём себе техлида, ревьювера, безопасника,
3. работаем с ними как с командой :)
Конфигурация
Каждый из кастомных агентов определяется md-файлом с YAML frontmatter с такими полями:
* name - идентификатор агента
* description - подсказка Claude, когда использовать этого агента
* tools - опциональный список доступных инструментов
А в теле файла - инструкции для этого агента и его "личность".
Эти файлы живут либо в
~/.claude/agents/ для пользовательских агентов, либо в .claude/agents/ проекта для проектно-специфичных.Как запустить?
● Автоматическое делегирование - СС сам делегирует работу, когда думает, что задача подходит под описание кастомного агента
● Явный вызов - к примеру,
Use the test-runner subagent to run all tests and report failures● Цепочки агентов - можно их чейнить:
First use the code-analyzer subagent to find performance issues, then use the optimizer subagent to fix themОграничения
❌ Нет встроенного механизма для прямого общения между субагентами - всё идет через основного агента, но народ активно городит костыли в виде общих файлов / MCP
❌ Нельзя выбрать модель для кастомного агента - это было бы весьма логично, но пока нельзя, и народ активно просит :)
Хорошие практики
● Чёткие роли - лучше создавать агентов с чёткой ответственностью вместо универсальных
● Учитывайте ограничения подписки - субагенты могут жечь много токенов, особенно при работе в параллель, так что можно быстрее упереться в лимиты
● Проверки в длинных цепочках - если вы чейните кастомных агентов, то старайтесь проверять результаты их работы после каждого шага, иногда даже прям своими глазами 😱
● Ограничивайте инструменты - давайте кастомному агенту только те инструменты, которые ему нужны - это и безопаснее, и удерживает агента от лишних действий
● Экспериментируйте - фича новая, так что сообщество сейчас активно осваивает и изобретает сценарии использования, и это отличное время для экспериментов и обмена интересными практиками :)
#ai #development #cc