Claude Code - субагенты и кастомные агенты
Субагенты в 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
Субагенты в 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