Расширение Claude Code
Узнайте, когда использовать CLAUDE.md, Skills, subagents, hooks, MCP и plugins.
Claude Code объединяет модель, которая рассуждает о вашем коде, с встроенными инструментами для операций с файлами, поиска, выполнения и веб-доступа. Встроенные инструменты охватывают большинство задач кодирования. Это руководство охватывает уровень расширения: функции, которые вы добавляете для настройки того, что знает Claude, подключения его к внешним сервисам и автоматизации рабочих процессов.
Информацию о том, как работает основной цикл агента, см. в разделе How Claude Code works.
Новичок в Claude Code? Начните с CLAUDE.md для соглашений проекта, затем добавляйте другие расширения по мере возникновения конкретных триггеров.
Обзор
Расширения подключаются к различным частям цикла агента:
- CLAUDE.md добавляет постоянный контекст, который Claude видит в каждой сессии
- Skills добавляют переиспользуемые знания и вызываемые рабочие процессы
- MCP подключает Claude к внешним сервисам и инструментам
- Subagents запускают свои собственные циклы в изолированном контексте, возвращая резюме
- Agent teams координируют несколько независимых сессий с общими задачами и обменом сообщениями между участниками
- Hooks срабатывают при событиях жизненного цикла и могут запустить скрипт, HTTP запрос, prompt или subagent
- Plugins и marketplaces упаковывают и распространяют эти функции
Skills — это наиболее гибкое расширение. Skill — это файл markdown, содержащий знания, рабочие процессы или инструкции. Вы можете вызывать skills с помощью команды типа /deploy, или Claude может загружать их автоматически, когда они релевантны. Skills могут работать в вашем текущем разговоре или в изолированном контексте через subagents.
Сопоставьте функции с вашей целью
Функции варьируются от всегда включённого контекста, который Claude видит в каждой сессии, до возможностей по требованию, которые вы или Claude можете вызвать, до фоновой автоматизации, которая работает при определённых событиях. Таблица ниже показывает, что доступно и когда каждое имеет смысл.
| Функция | Что она делает | Когда её использовать | Пример |
|---|---|---|---|
| CLAUDE.md | Постоянный контекст, загружаемый в каждом разговоре | Соглашения проекта, правила "всегда делай X" | "Используйте pnpm, а не npm. Запускайте тесты перед коммитом." |
| Skill | Инструкции, знания и рабочие процессы, которые может использовать Claude | Переиспользуемый контент, справочные документы, повторяющиеся задачи | /deploy запускает ваш контрольный список развёртывания; skill с документацией API с шаблонами конечных точек |
| Subagent | Изолированный контекст выполнения, который возвращает обобщённые результаты | Изоляция контекста, параллельные задачи, специализированные работники | Задача исследования, которая читает много файлов, но возвращает только ключевые выводы |
| Agent teams | Координируют несколько независимых сессий Claude Code | Параллельное исследование, разработка новых функций, отладка с конкурирующими гипотезами | Запустите рецензентов для одновременной проверки безопасности, производительности и тестов |
| MCP | Подключение к внешним сервисам | Внешние данные или действия | Запрос к вашей базе данных, отправка в Slack, управление браузером |
| Hook | Скрипт, HTTP запрос, prompt или subagent, запущенные событиями | Автоматизация, которая должна работать при каждом соответствующем событии | Запуск ESLint после каждого редактирования файла |
Plugins — это уровень упаковки. Plugin объединяет skills, hooks, subagents и MCP servers в единый устанавливаемый модуль. Plugin skills имеют пространство имён (например, /my-plugin:review), поэтому несколько plugins могут сосуществовать. Используйте plugins, когда вы хотите переиспользовать одну и ту же настройку в нескольких репозиториях или распространять другим через marketplace.
Сформируйте вашу настройку со временем
Вам не нужно настраивать всё заранее. Каждая функция имеет узнаваемый триггер, и большинство команд добавляют их примерно в таком порядке:
| Триггер | Добавить |
|---|---|
| Claude дважды неправильно применяет соглашение или команду | Добавьте в CLAUDE.md |
| Вы постоянно вводите один и тот же prompt для начала задачи | Сохраните как вызываемый пользователем skill |
| Вы вставляете один и тот же playbook или многошаговую процедуру в чат в третий раз | Захватите как skill |
| Вы постоянно копируете данные из вкладки браузера, которую Claude не видит | Подключите эту систему как MCP server |
| Побочная задача заполняет ваш разговор выводом, на который вы больше не будете ссылаться | Маршрутизируйте через subagent |
| Вы хотите, чтобы что-то происходило каждый раз без запроса | Напишите hook |
| Второй репозиторий нуждается в одной и той же настройке | Упакуйте как plugin |
Те же триггеры говорят вам, когда обновлять то, что у вас уже есть. Повторяющаяся ошибка или повторяющийся комментарий рецензии — это редактирование CLAUDE.md, а не одноразовое исправление в чате. Рабочий процесс, который вы постоянно подправляете вручную, — это skill, который нуждается в другой редакции.
Сравните похожие функции
Некоторые функции могут казаться похожими. Вот как их различить.
Skills и subagents решают разные проблемы:
- Skills — это переиспользуемый контент, который вы можете загрузить в любой контекст
- Subagents — это изолированные работники, которые работают отдельно от вашего основного разговора
| Аспект | Skill | Subagent |
|---|---|---|
| Что это | Переиспользуемые инструкции, знания или рабочие процессы | Изолированный работник со своим собственным контекстом |
| Ключевое преимущество | Поделитесь контентом между контекстами | Изоляция контекста. Работа происходит отдельно, возвращается только резюме |
| Влияние на окно контекста | Добавляется в ваше основное окно | Использует отдельное окно со своими входными и выходными токенами |
| Лучше всего для | Справочный материал, вызываемые рабочие процессы | Задачи, которые читают много файлов, параллельная работа, специализированные работники |
Skills могут быть справочными или действенными. Справочные skills предоставляют знания, которые Claude использует на протяжении вашей сессии (например, ваше руководство по стилю API). Action skills говорят Claude сделать что-то конкретное (например, /deploy, который запускает ваш рабочий процесс развёртывания).
Используйте subagent, когда вам нужна изоляция контекста или когда ваше окно контекста переполняется. Subagent может читать десятки файлов или выполнять обширные поиски, но ваш основной разговор получает только резюме. Поскольку работа subagent не потребляет ваш основной контекст, это также полезно, когда вам не нужно, чтобы промежуточная работа оставалась видимой. Пользовательские subagents могут иметь свои собственные инструкции и могут предварительно загружать skills.
Они могут объединяться. Subagent может предварительно загружать определённые skills (поле skills:). Skill может работать в изолированном контексте, используя context: fork. Подробнее см. в разделе Skills.
Оба хранят инструкции, но они загружаются по-разному и служат разным целям.
| Аспект | CLAUDE.md | Skill |
|---|---|---|
| Загружается | Каждая сессия, автоматически | По требованию |
| Может включать файлы | Да, с импортами @path |
Да, с импортами @path |
| Может запускать рабочие процессы | Нет | Да, с /<name> |
| Лучше всего для | Правила "всегда делай X" | Справочный материал, вызываемые рабочие процессы |
Поместите в CLAUDE.md, если Claude должен всегда это знать: соглашения кодирования, команды сборки, структура проекта, правила "никогда не делай X".
Поместите в skill, если это справочный материал, который Claude иногда нужен (документация API, руководства по стилю) или рабочий процесс, который вы запускаете с помощью /<name> (развёртывание, рецензирование, выпуск).
Практическое правило: Держите CLAUDE.md под 200 строк. Если он растёт, переместите справочный контент в skills или разделите на файлы .claude/rules/.
Все три хранят инструкции, но они загружаются по-разному:
| Аспект | CLAUDE.md | .claude/rules/ |
Skill |
|---|---|---|---|
| Загружается | Каждая сессия | Каждая сессия, или когда открываются соответствующие файлы | По требованию, при вызове или релевантности |
| Область | Весь проект | Может быть ограничена путями файлов | Специфична для задачи |
| Лучше всего для | Основные соглашения и команды сборки | Рекомендации, специфичные для языка или каталога | Справочный материал, повторяющиеся рабочие процессы |
Используйте CLAUDE.md для инструкций, которые нужны каждой сессии: команды сборки, соглашения тестирования, архитектура проекта.
Используйте rules, чтобы сосредоточить CLAUDE.md. Rules с frontmatter paths загружаются только, когда Claude работает с соответствующими файлами, экономя контекст.
Используйте skills для контента, который Claude нужен только иногда, например документация API или контрольный список развёртывания, который вы запускаете с помощью /<name>.
Оба параллелизируют работу, но они архитектурно различны:
- Subagents работают внутри вашей сессии и сообщают результаты обратно в ваш основной контекст
- Agent teams — это независимые сессии Claude Code, которые общаются друг с другом
| Аспект | Subagent | Agent team |
|---|---|---|
| Контекст | Собственное окно контекста; результаты возвращаются вызывающему | Собственное окно контекста; полностью независимый |
| Коммуникация | Сообщает результаты только основному агенту | Товарищи по команде обмениваются сообщениями напрямую |
| Координация | Основной агент управляет всей работой | Общий список задач с самокоординацией |
| Лучше всего для | Сосредоточенные задачи, где имеет значение только результат | Сложная работа, требующая обсуждения и сотрудничества |
| Стоимость токенов | Ниже: результаты обобщены обратно в основной контекст | Выше: каждый товарищ по команде — это отдельный экземпляр Claude |
Используйте subagent, когда вам нужен быстрый, сосредоточенный работник: исследуйте вопрос, проверьте утверждение, рецензируйте файл. Subagent выполняет работу и возвращает резюме. Ваш основной разговор остаётся чистым.
Используйте agent team, когда товарищи по команде должны делиться выводами, оспаривать друг друга и координироваться независимо. Agent teams лучше всего подходят для исследования с конкурирующими гипотезами, параллельного рецензирования кода и разработки новых функций, где каждый товарищ по команде владеет отдельной частью.
Точка перехода: Если вы запускаете параллельные subagents, но достигаете пределов контекста, или если ваши subagents должны общаться друг с другом, agent teams — это естественный следующий шаг.
Agent teams экспериментальны и отключены по умолчанию. Подробнее см. в разделе agent teams для настройки и текущих ограничений.
MCP подключает Claude к внешним сервисам. Skills расширяют то, что знает Claude, включая то, как эффективно использовать эти сервисы.
| Аспект | MCP | Skill |
|---|---|---|
| Что это | Протокол для подключения к внешним сервисам | Знания, рабочие процессы и справочный материал |
| Предоставляет | Инструменты и доступ к данным | Знания, рабочие процессы, справочный материал |
| Примеры | Интеграция Slack, запросы к базе данных, управление браузером | Контрольный список рецензирования кода, рабочий процесс развёртывания, руководство по стилю API |
Они решают разные проблемы и хорошо работают вместе:
MCP даёт Claude возможность взаимодействовать с внешними системами. Без MCP Claude не может запросить вашу базу данных или отправить сообщение в Slack.
Skills дают Claude знания о том, как эффективно использовать эти инструменты, плюс рабочие процессы, которые вы можете запустить с помощью /<name>. Skill может включать схему базы данных вашей команды и шаблоны запросов, или рабочий процесс /post-to-slack с правилами форматирования сообщений вашей команды.
Пример: MCP server подключает Claude к вашей базе данных. Skill учит Claude вашу модель данных, общие шаблоны запросов и какие таблицы использовать для разных задач.
Hook срабатывает при событии жизненного цикла; skill загружается в контекст для применения Claude.
| Аспект | Hook | Skill |
|---|---|---|
| Запускает | Команду shell, HTTP запрос, LLM prompt или subagent | Инструкции, которые Claude читает и следует им |
| Запущено | События жизненного цикла такие как PostToolUse или SessionStart |
Вы вводите /<name>, или Claude сопоставляет описание с вашей задачей |
| Детерминизм | Всегда срабатывает при своём событии; триггер гарантирован | Claude интерпретирует инструкции; результат может варьироваться |
| Стоимость контекста | Ноль, если hook не возвращает вывод | Описание загружается каждую сессию; полный контент загружается при использовании |
| Лучше всего для | Линтинг после редактирования, блокирование небезопасных команд, логирование, уведомления | Рабочие процессы, которые нуждаются в рассуждении, справочный материал, многошаговые задачи |
Используйте hook, когда действие должно происходить одинаково каждый раз и не нуждается в размышлении Claude. Например: форматирование при сохранении, отклонение rm -rf /, отправка сообщения Slack при завершении сессии.
Используйте skill, когда Claude должен решить, как применить шаги, или когда контент — это знание, а не скрипт. Например: контрольный список /release, ваше руководство по стилю API, playbook отладки.
Поместите guardrails в hooks. Инструкция типа "никогда не редактируйте .env" в CLAUDE.md или skill — это запрос, а не гарантия. Hook PreToolUse, который блокирует редактирование, — это принуждение. Если правило должно выполняться каждый раз, сделайте его hook, а не инструкцию prompt.
Вывод Hook попадает в контекст. Hook PostToolUse, который запускает ваш linter, возвращает результаты как текст, который читает Claude; skill /fix-lint говорит Claude, как их разрешить.
Поймите, как функции слоятся
Функции могут быть определены на нескольких уровнях: для всех пользователей, для каждого проекта, через plugins или через управляемые политики. Вы также можете вложить файлы CLAUDE.md в подкаталоги или разместить skills в определённых пакетах monorepo. Когда одна и та же функция существует на нескольких уровнях, вот как они слоятся:
- Файлы CLAUDE.md являются аддитивными: все уровни одновременно вносят контент в контекст Claude. Файлы из вашего рабочего каталога и выше загружаются при запуске; подкаталоги загружаются по мере работы в них. Когда инструкции конфликтуют, Claude использует суждение для их согласования, при этом более специфичные инструкции обычно имеют приоритет. Подробнее см. в разделе как загружаются файлы CLAUDE.md.
- Skills и subagents переопределяют по имени: когда одно и то же имя существует на нескольких уровнях, одно определение побеждает на основе приоритета (управляемый > пользователь > проект для skills; управляемый > флаг CLI > проект > пользователь > plugin для subagents). Plugin skills имеют пространство имён для избежания конфликтов. Подробнее см. в разделах обнаружение skills и область subagent.
- MCP servers переопределяют по имени: локальный > проект > пользователь. Подробнее см. в разделе область MCP.
- Hooks объединяются: все зарегистрированные hooks срабатывают для своих соответствующих событий независимо от источника. Подробнее см. в разделе Hooks.
Объедините функции
Каждое расширение решает разную проблему: CLAUDE.md обрабатывает всегда включённый контекст, skills обрабатывают знания и рабочие процессы по требованию, MCP обрабатывает внешние подключения, subagents обрабатывают изоляцию, а hooks обрабатывают автоматизацию. Реальные настройки объединяют их на основе вашего рабочего процесса.
Например, вы можете использовать CLAUDE.md для соглашений проекта, skill для вашего рабочего процесса развёртывания, MCP для подключения к вашей базе данных и hook для запуска линтинга после каждого редактирования. Каждая функция обрабатывает то, в чём она лучше всего.
| Паттерн | Как это работает | Пример |
|---|---|---|
| Skill + MCP | MCP обеспечивает подключение; skill учит Claude, как его хорошо использовать | MCP подключается к вашей базе данных, skill документирует вашу схему и шаблоны запросов |
| Skill + Subagent | Skill запускает subagents для параллельной работы | Skill /audit запускает subagents безопасности, производительности и стиля, которые работают в изолированном контексте |
| CLAUDE.md + Skills | CLAUDE.md содержит всегда включённые правила; skills содержат справочный материал, загружаемый по требованию | CLAUDE.md говорит "следуйте нашим соглашениям API", skill содержит полное руководство по стилю API |
| Hook + MCP | Hook запускает внешние действия через MCP | Hook после редактирования отправляет уведомление Slack, когда Claude изменяет критические файлы |
Поймите стоимость контекста
Каждая функция, которую вы добавляете, потребляет часть контекста Claude. Слишком много может заполнить ваше окно контекста, но это также может добавить шум, который делает Claude менее эффективным; skills могут не срабатывать правильно, или Claude может потерять из виду ваши соглашения. Понимание этих компромиссов помогает вам построить эффективную настройку. Для интерактивного представления того, как эти функции объединяются в работающей сессии, см. Explore the context window.
Стоимость контекста по функциям
Каждая функция имеет разную стратегию загрузки и стоимость контекста:
| Функция | Когда загружается | Что загружается | Стоимость контекста |
|---|---|---|---|
| CLAUDE.md | Начало сессии | Полный контент | Каждый запрос |
| Skills | Начало сессии + при использовании | Описания в начале, полный контент при использовании | Низкая (описания каждый запрос)* |
| MCP servers | Начало сессии | Имена инструментов; полные схемы по требованию | Низкая до использования инструмента |
| Subagents | При запуске | Свежий контекст с указанными skills | Изолирован от основной сессии |
| Hooks | При срабатывании | Ничего (работает внешне) | Ноль, если hook не возвращает дополнительный контекст |
*По умолчанию описания skills загружаются в начале сессии, чтобы Claude мог решить, когда их использовать. Установите disable-model-invocation: true в frontmatter skill, чтобы скрыть его от Claude полностью до тех пор, пока вы не вызовете его вручную. Это снижает стоимость контекста до нуля для skills, которые вы только вызываете сами. Для skill, который вы не писали, установите skillOverrides в settings, чтобы сделать то же самое без редактирования его файла.
Поймите, как загружаются функции
Каждая функция загружается в разные точки вашей сессии. Вкладки ниже объясняют, когда загружается каждая и что входит в контекст.
Когда: Начало сессии
Что загружается: Полный контент всех файлов CLAUDE.md (управляемые, пользовательские и уровни проекта).
Наследование: Claude читает файлы CLAUDE.md из вашего рабочего каталога вверх до корня и обнаруживает вложенные в подкаталогах по мере доступа к этим файлам. Подробнее см. в разделе How CLAUDE.md files load.
Держите CLAUDE.md под 200 строк. Переместите справочный материал в skills, которые загружаются по требованию.
Skills — это дополнительные возможности в наборе инструментов Claude. Они могут быть справочным материалом (например, руководство по стилю API) или вызываемыми рабочими процессами, которые вы запускаете с помощью /<name> (например, /deploy). Claude Code поставляется с встроенными skills типа /simplify, /batch и /debug, которые работают из коробки. Вы также можете создавать свои собственные. Claude использует skills, когда это уместно, или вы можете вызвать один напрямую.
Когда: Зависит от конфигурации skill. По умолчанию описания загружаются в начале сессии, а полный контент загружается при использовании. Для skills только пользователя (disable-model-invocation: true) ничего не загружается до тех пор, пока вы их не вызовете.
Что загружается: Для skills, вызываемых моделью, Claude видит имена и описания в каждом запросе. Когда вы вызываете skill с помощью /<name> или Claude загружает его автоматически, полный контент загружается в ваш разговор.
Как Claude выбирает skills: Claude сопоставляет вашу задачу с описаниями skills, чтобы решить, какие релевантны. Если описания расплывчаты или перекрываются, Claude может загрузить неправильный skill или пропустить тот, который помог бы. Чтобы сказать Claude использовать определённый skill, вызовите его с помощью /<name>. Skills с disable-model-invocation: true невидимы для Claude до тех пор, пока вы их не вызовете.
Стоимость контекста: Низкая до использования. Skills только пользователя имеют нулевую стоимость до вызова.
В subagents: Skills работают по-другому в subagents. Вместо загрузки по требованию, skills, указанные в поле skills: subagent, полностью предварительно загружаются в его контекст при запуске. Subagents всё ещё могут обнаруживать и вызывать unlisted project, user и plugin skills через инструмент Skill.
Используйте disable-model-invocation: true для skills с побочными эффектами. Это экономит контекст и гарантирует, что только вы их запускаете.
Когда: Начало сессии.
Что загружается: Имена инструментов из подключённых серверов. Полные JSON схемы остаются отложенными до тех пор, пока Claude не нуждается в конкретном инструменте.
Стоимость контекста: Tool search включён по умолчанию, поэтому неиспользуемые MCP инструменты потребляют минимальный контекст.
Примечание о надёжности: MCP подключения могут молча отказать в середине сессии. Если сервер отключится, его инструменты исчезнут без предупреждения. Claude может попытаться использовать инструмент, который больше не существует. Если вы заметили, что Claude не может использовать MCP инструмент, который он раньше мог использовать, проверьте подключение с помощью /mcp.
Запустите /mcp, чтобы увидеть стоимость токенов на сервер. Отключите серверы, которые вы не активно используете.
Когда: По требованию, когда вы или Claude запускаете один для задачи.
Что загружается: Свежий, изолированный контекст, содержащий:
- Системный prompt (общий с родителем для эффективности кэша)
- Полный контент skills, указанных в поле
skills:агента - CLAUDE.md и статус git (унаследованы от родителя)
- Любой контекст, который основной агент передаёт в prompt
Стоимость контекста: Изолирована от основной сессии. Subagents не наследуют историю вашего разговора или вызванные skills.
Используйте subagents для работы, которая не нуждается в вашем полном контексте разговора. Их изоляция предотвращает раздувание вашей основной сессии.
Когда: При срабатывании. Hooks срабатывают при определённых событиях жизненного цикла, таких как выполнение инструмента, границы сессии, отправка prompt, запросы разрешений и компактирование. Подробный список см. в разделе Hooks.
Что загружается: Ничего по умолчанию. Hooks работают вне основного разговора.
Стоимость контекста: Ноль, если hook не возвращает вывод, который добавляется как сообщения в ваш разговор.
Hooks идеальны для побочных эффектов (линтинг, логирование), которые не должны влиять на контекст Claude.
Узнайте больше
Каждая функция имеет своё собственное руководство с инструкциями по настройке, примерами и параметрами конфигурации.
Сохраняйте контекст проекта, соглашения и инструкции
Дайте Claude экспертизу в области и переиспользуемые рабочие процессы
Перенесите работу в изолированный контекст
Координируйте несколько сессий, работающих параллельно
Подключите Claude к внешним сервисам
Автоматизируйте рабочие процессы с помощью hooks
Упакуйте и поделитесь наборами функций
Размещайте и распространяйте коллекции plugins