Добавить в корзинуПозвонить
Найти в Дзене
Павлин Шарит

Skills vs Commands vs Sub-agents - что выбрать

В Claude Code есть три способа упаковать переиспользуемый воркфлоу, и они начинают конкурировать друг с другом, как только проект вырастает за пределы пары файлов. Разбираем чем они реально отличаются и когда что брать Skills (.claude/skills/SKILL.md) Метаинформация загружается в контекст при старте сессии (см. прошлый пост про контекст) Тело SKILL.md грузится только когда Claude решит, что скилл релевантен задаче Может тащить с собой связанные файлы - доку, шаблоны, примеры Один и тот же скилл работает в Claude.ai, Claude Code и Claude Desktop Подходит для правил, которые должны всплывать сами в нужный момент - типа «когда пишешь миграцию - используй apps.get_model и не импортируй текущую модель» Commands (.claude/commands/*.md) Запускаются явно через /command - это команда от пользователя, не от агента Детерминированный сценарий, ты сам решаешь когда дернуть Обычно один файл без бандла Подходит для воркфлоу по запросу - /review, /seo, /pr-check Sub-agents (.claude/agents/*.md) Раб

Skills vs Commands vs Sub-agents - что выбрать

В Claude Code есть три способа упаковать переиспользуемый воркфлоу, и они начинают конкурировать друг с другом, как только проект вырастает за пределы пары файлов. Разбираем чем они реально отличаются и когда что брать

Skills (.claude/skills/SKILL.md)

Метаинформация загружается в контекст при старте сессии (см. прошлый пост про контекст)

Тело SKILL.md грузится только когда Claude решит, что скилл релевантен задаче

Может тащить с собой связанные файлы - доку, шаблоны, примеры

Один и тот же скилл работает в Claude.ai, Claude Code и Claude Desktop

Подходит для правил, которые должны всплывать сами в нужный момент - типа «когда пишешь миграцию - используй apps.get_model и не импортируй текущую модель»

Commands (.claude/commands/*.md)

Запускаются явно через /command - это команда от пользователя, не от агента

Детерминированный сценарий, ты сам решаешь когда дернуть

Обычно один файл без бандла

Подходит для воркфлоу по запросу - /review, /seo, /pr-check

Sub-agents (.claude/agents/*.md)

Работают в отдельном окне контекста, в основное возвращается только сжатый результат работы

Со своим набором инструментов, моделью, системным промптом

Запускаются основным агентом, когда тот решит делегировать

Подходит для тяжелых задач, которые засирают контекст - security review модуля, ресерч по большому документу, рефакторинг между фреймворками

Матрица выбора получается простая:

Кто инициирует - юзер или агент? Юзер - command. Агент сам решит - skill или subagent

Важно сохранить основной контекст чистым? Да - subagent. Нет - skill

Нужна вспомогательная дока, шаблоны, примеры? Да - skill. Нет - command

Ошибка - все пихать в скиллы. У них есть бюджет (5k токенов на одно тело скилла и 25k всего на сессию после /compact), и метаинфа всех скиллов сидит в контексте всегда. Если что-то требуется раз в месяц при конкретном действии - это команда, а не скилл

Самое мощное сочетание - команда/скилл, которая внутри вызывает сабагента. /security-review запускает изолированного агента, тот читает 20 файлов, выдает отчет на 200 строк, в основной контекст возвращается только summary. И контекст экономишь, и копнуть глубоко можешь

Поддержать на Boosty

Посмотреть на Youtube