Claude Code agents vs skills: что выбрать
Claude Code agents vs skills — один из первых вопросов, с которыми сталкиваются, когда настройка вырастает за пределы одного файла CLAUDE.md. Оба живут в .claude/, оба — это Markdown с несколькими строками YAML сверху, и оба могут запускаться автоматически. Но они решают разные задачи, и путаница между ними — верный способ сделать настройку медленной и непредсказуемой.
Если коротко: скилл добавляет знания в тот разговор, в котором вы находитесь; субагент выполняет работу в отдельном контексте и возвращает только результат. Всё описанное ниже соответствует официальной документации по субагентам и скиллам. Мы используем и то, и другое каждый день в собственной студии, и правило в конце статьи родилось именно из этой работы.
Что такое субагент
Субагент — это специализированный помощник, который работает в собственном контекстном окне, со своим системным промптом, своим доступом к инструментам и своими разрешениями. Он не видит историю вашего разговора. Claude пишет для него задачу, субагент работает, и обратно возвращается только сводка.
В этом весь смысл: побочная задача, которая залила бы основной разговор результатами поиска, логами или содержимым файлов, остаётся внутри субагента.
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.
Сохраните его как .claude/agents/code-reviewer.md для одного проекта или ~/.claude/agents/code-reviewer.md для всех. Обязательны только name и description. tools — это белый список: если его не указать, субагент получит все инструменты, доступные субагентам.
Claude делегирует задачу сам, когда она совпадает с описанием. Можно также обратиться по имени или упомянуть его как @"code-reviewer (agent)", чтобы он точно запустился. В Claude Code есть и встроенные субагенты, например Explore для быстрых поискoв в режиме «только чтение» и Plan для исследований в режиме планирования.
Что такое скилл
Скилл — это папка с файлом SKILL.md: инструкции плюс необязательные вспомогательные файлы, например справочные заметки или скрипты. Он выполняется в основном разговоре, а не в отдельном контексте.
---
name: summarize-changes
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---
Summarize the uncommitted changes in two or three bullet points,
then list anything risky: deleted files, changed permissions, new dependencies.
Сохраните его как .claude/skills/summarize-changes/SKILL.md. По умолчанию им можете пользоваться и вы, и Claude: вы вводите /summarize-changes, либо Claude загружает его, когда ваш запрос совпадает с описанием.
Деталь, важная для стоимости: в обычной сессии в контексте находятся только описания скиллов. Полный текст загружается при использовании скилла. Длинный справочный материал внутри скилла почти ничего не стоит, пока не понадобится, — в отличие от текста в CLAUDE.md, который присутствует всегда.
Кастомные slash-команды теперь часть скиллов: .claude/commands/deploy.md и .claude/skills/deploy/SKILL.md оба создают /deploy.
Claude Code agents vs skills: сравнение лицом к лицу
| Субагент | Скилл | |
|---|---|---|
| Где выполняется | собственное контекстное окно | основной разговор |
| Видит ваш разговор | нет | да |
| Что возвращается | сводка | работа происходит на месте |
| Файл | .claude/agents/name.md |
.claude/skills/name/SKILL.md |
| Типичный запуск | Claude делегирует задачу | Claude или вы через /name |
| Для чего хорош | поиск, ревью, длинные побочные задачи | процедуры, внутренние правила, справочники |
Они ещё и комбинируются. Субагент может предзагружать скиллы через поле skills — тогда ревьюер стартует с вашим чек-листом. А скилл с context: fork выполняется в субагенте: текст скилла становится задачей, и ваш основной контекст остаётся чистым.
Простое правило выбора
Задайте себе один вопрос: понадобятся ли мне детали этой работы в разговоре потом?
- Нет, нужен только результат. Используйте субагент. Поиск по большой кодовой базе, ревью диффа, чтение длинных логов: вам нужен вывод, а не каждый открытый файл.
- Да, это часть того, что я делаю сейчас. Используйте скилл. Чек-лист релиза, формат commit-сообщений, правила именования в проекте: знания, которым разговор должен следовать.
Два тревожных признака из практики. Если раздел CLAUDE.md превратился в пошаговую процедуру — он просится в скилл. Если скилл постоянно тянет в разговор десятки файлов — ему нужен context: fork или субагент.
Ошибки, из-за которых настройка становится непредсказуемой
- Расплывчатые описания. И тех, и других выбирают по
description. «Помогает с кодом» подходит всему и ничему одновременно. Напишите, что именно делает инструмент и когда его применять. - Слишком много длинных описаний. Описания загружаются в начале каждой сессии. Делайте их короткими, а детали переносите в тело.
- Субагент со всеми инструментами по умолчанию. Если ревьюеру нужно только читать, дайте ему
Read, Glob, Grep— и ничего больше. - Правила, которые должны соблюдаться жёстко, записанные как скилл. Скилл подсказывает, но ничего не запрещает. Для «никогда не делай этого» используйте правила разрешений и хуки, как в нашей статье о хуках Claude Code.
Когда стоит передать это нам
Если папка .claude/ быстро разрослась и никто не помнит, какой агент или скилл за что отвечает, мы разбираем настройку, чистим агентов и скиллы и добавляем протестированные правила. Устройство нашей собственной системы можно посмотреть на странице работ.
Вопросы
Скилл — это просто сохранённый промпт?
Близко, но это больше. Скилл — это папка с файлом SKILL.md и необязательными вспомогательными файлами. Claude видит только его описание, пока скилл не используется, может загрузить его сам, когда задача подходит, а вы можете вызвать его как /skill-name.
Субагенты видят мой разговор?
Нет. Каждый субагент запускается с чистым контекстным окном: собственный системный промпт, задача, которую пишет для него Claude, CLAUDE.md и любые скиллы, которые вы предзагружаете. Он возвращает в основной разговор только сводку.
Что стало с кастомными slash-командами?
Их объединили со скиллами. Файл .claude/commands/deploy.md и скилл .claude/skills/deploy/SKILL.md оба создают /deploy. Старые файлы команд продолжают работать.
Можно использовать и то, и другое одновременно?
Да, в обе стороны. Субагент может предзагружать скиллы через поле skills, а скилл с context: fork выполняется внутри субагента, а не в основном разговоре.