Навык и субагент - в чём разница
Сравним ещё две сущности Claude Code, отличия между которыми важно понимать, - навыки и субагенты. На первый взгляд кажется, что это одно и то же, но разница есть.
Навыки стоит воспринимать как плагины или дополнения основного Claude. Есть большая языковая модель, она что-то умеет, а мы учим её выполнять узкий набор действий по определённым алгоритмам. Это не дообучение модели, а инструкции, которые ведут её по нужному алгоритму - подсказки, помогающие пройти рабочий процесс.
Субагент - это отдельный экземпляр ИИ в изолированном контексте. Агенты не дополняют основной Claude, а позволяют ему обратиться к ним за узкой задачей, для которой основной контекст не нужен. Например, сходить к API какого-то сервиса: мы описываем в субагенте, к какому API обратиться и в каком формате вернуть ответ - это и есть его задача.
Контекст, параллельность и запуск
Главное отличие - навыки работают в текущем контексте разговора. Всё, что вы обсуждали с Claude до этого, навыку видно. Субагент же не видит предыдущего общения: он запустился со своим изолированным контекстом, сходил в API, выдал результат - и этот результат используется в основном контексте.
За счёт этого экономятся токены: для обращения к API полный контекст беседы не нужен. Но если субагенту всё-таки нужен контекст, его придётся передавать явно.
Навыки нельзя выполнить параллельно - они идут последовательно, один за другим. Субагентов можно запустить параллельно: нужно получить данные из нескольких источников - эти маленькие задачи выполняются одновременно, раз они не зависят от основного контекста. Параллельность нужно учитывать: при большом количестве запущенных субагентов модель может не дождаться выполнения всех и отработать не совсем правильно.
По расположению навыки лежат в skills, агенты - в agents. По способу вызова навыки запускаются автоматически либо через слеш-команду. Субагентов можно вызвать командой, либо их автоматически запускает основная модель, когда подходит контекст. Навыки не поддерживают фоновую работу, субагенты могут выполняться в фоне.
Что и когда применять
Итого, по каким критериям выбирать:
- нужна экспертиза, стиль, правила - навык;
- параллельный поиск из нескольких источников - субагент;
- важен контекст основного разговора - навык;
- сложная многошаговая автономная задача - здесь советуют субагента, но, по-моему, это ошибка: такая задача решается навыком;
- хочется сэкономить токены и деньги - вопрос спорный.
С одной стороны, субагенты экономят контекст при вызове. С другой - может получиться двойной вызов: здесь один запрос к API, а там их может быть много. Если нужно расширить возможности под конкретную задачу - это навык.
В итоге: для сложных расширяемых задач берём навык, для узких задач, где контекст не требуется, - субагента.