Жизненный цикл навыка: От установки до выполнения
Updated Jul 2026
Фаза 1: Установка
Навыки устанавливаются из Git-репозиториев через CLI:
npx skills add https://github.com/VibiumDev/vibium --skill vibe-check
Что происходит:
- Репозиторий клонируется (или каталог навыка скачивается)
- SKILL.md копируется в каталог навыков агента
- Прикреплённые ресурсы (
/scripts/,/references/,/assets/) копируются вместе - Навык становится доступен в следующей сессии агента
Расположение при установке
Навыки могут располагаться в нескольких местах, загружаются в порядке приоритета:
| Расположение | Область | Случай использования |
|---|---|---|
.claude/skills/ |
Проект | Навыки, специфичные для данной кодовой базы |
~/.config/claude/skills/ |
Пользователь | Личные навыки для всех проектов |
| Встроенные | Система | Значения по умолчанию от Anthropic |
| Предоставленные плагином | Плагин | Навыки, поставляемые с расширениями IDE |
Навыки проекта перекрывают пользовательские навыки, которые перекрывают встроенные (по имени).
Каталог навыков (skills.sh)
Agent Skills Directory — это централизованный маркетплейс с 49 000+ навыками. Поддерживает несколько агентных платформ (Claude Code, Cursor, Copilot, Cline). Популярные навыки имеют 100K+ установок.
Фаза 2: Обнаружение
На каждом шаге разговора система:
- Сканирует все расположения навыков в поисках файлов SKILL.md
- Читает YAML-метаданные из каждого
- Фильтрует до навыков, имеющих поле
description - Форматирует все имена + описания навыков в текстовый блок
- Внедряет этот блок в описание инструмента Skill
Форматированный блок выглядит приблизительно так:
Available skills:
- vibe-check: Browser automation via CLI. Navigate pages, click elements,
fill forms, take screenshots, extract text from web pages.
- commit: Create well-formatted git commits with conventional commit messages.
- pdf: Convert documents to PDF format.
Это встраивается в массив tools, отправляемый с каждым API-запросом. Это потребляет токены, но значительно меньше, чем схемы MCP-инструментов — навык добавляет ~50-100 токенов в описание инструмента против 500-2000 на каждый MCP-инструмент.
Бюджет токенов
Система ограничивает бюджет ~15 000 символов для списка доступных навыков. Если вы установите слишком много навыков, некоторые могут быть усечены или исключены. Вот почему описания навыков должны быть лаконичными.
Фаза 3: Выбор
Когда поступает сообщение пользователя, языковая модель Claude обрабатывает:
- Сообщение пользователя
- Историю разговора
- Все доступные инструменты (включая инструмент Skill со встроенным списком навыков)
Алгоритмической маршрутизации нет. Выбор происходит внутри прямого прохода Claude через трансформер. Claude читает описания навыков и решает — через понимание языка — соответствует ли какой-либо навык намерению пользователя.
Это означает:
- Описания навыков — ключевой механизм выбора — плохо написанные описания = навыки, которые никогда не вызываются
- Claude может выбрать не использовать навык, даже когда он доступен (если прямое использование инструмента кажется лучше)
- Claude может вызвать несколько навыков последовательно в сложных рабочих процессах
Сигналы выбора
Claude учитывает:
- Совпадение описания — Соответствует ли описание навыка намерению пользователя?
- Контекст разговора — Работает ли пользователь над браузерным тестированием? Тогда vibe-check более вероятен
- Явный вызов — Пользователь говорит
/vibe-checkили «используй навык vibe-check» - Контекст задачи — Если агент пишет тесты, которым нужна браузерная верификация
Фаза 4: Вызов
Когда Claude решает использовать навык, он вызывает инструмент Skill:
{
"tool": "Skill",
"input": {
"skill": "vibe-check"
}
}
Затем система выполняет несколько операций:
4a. Сообщение о видимости (показывается пользователю)
<command-message>The "vibe-check" skill is loading</command-message>
<command-name>vibe-check</command-name>
Это появляется в интерфейсе чата пользователя, обеспечивая прозрачность происходящего.
4b. Внедрение контекста (скрыто от пользователя, отправляется в API)
Полное содержимое SKILL.md внедряется как пользовательское сообщение с isMeta: true:
- Видимо Claude — он получает полные инструкции
- Скрыто от интерфейса — пользователь не видит необработанный markdown
- Добавлено в историю разговора — сохраняется на оставшееся время выполнения навыка
4c. Повышение разрешений
Если YAML-метаданные SKILL.md указывают allowed-tools: Bash, инструмент Bash временно предварительно одобряется. Это означает:
- Claude может запустить
vibe-check navigate <url>без запроса разрешения для каждой команды - Пользователь не забрасывается запросами «Разрешить Bash?» во время автоматизации браузера
- Разрешения возвращаются к исходным после завершения навыка
4d. Переопределение модели (необязательно)
Если SKILL.md указывает поле model:, система переключается на эту модель для выполнения навыка. Это позволяет оптимизировать стоимость — простой навык может использовать Haiku, пока основной разговор использует Opus.
Фаза 5: Выполнение
С инструкциями SKILL.md в контексте и доступными инструментами Claude приступает к выполнению. Для vibe-check это обычно означает:
Claude читает: "vibe-check navigate <url> — go to a page"
Claude выполняет: Bash("vibe-check navigate https://example.com")
Claude читает: "vibe-check text — get all page text"
Claude выполняет: Bash("vibe-check text")
Claude интерпретирует: текст страницы и решает следующие действия
Теперь агент работает с предметными знаниями (как использовать vibe-check), которых у него не было до загрузки навыка. Это ключевая ценность навыков.
Восстановление после ошибок во время выполнения
Когда команда не срабатывает, агент:
- Читает вывод ошибки из Bash
- Применяет свои рассуждения (усиленные подсказками из SKILL.md)
- Пробует альтернативные подходы
Пример: Если vibe-check click ".btn-submit" завершается тайм-аутом, агент может:
- Запустить
vibe-check find-all "button"чтобы увидеть, какие кнопки существуют - Запустить
vibe-check screenshot -o debug.pngчтобы увидеть состояние страницы - Попробовать другой селектор на основе найденного
Это не самовосстановление в традиционном смысле — это интеллектуальный агент, рассуждающий о сбоях, что более гибко, чем любая статическая логика повторов.
Фаза 6: Завершение
Когда агент заканчивает задачу (или пользователь прерывает), эффекты навыка сворачиваются:
- Повышенные разрешения возвращаются к значениям по умолчанию сессии
- Модель возвращается к значению по умолчанию сессии
- Содержимое SKILL.md остаётся в истории разговора (для непрерывности контекста)
- Daemon браузера может всё ещё работать (он отделён от жизненного цикла навыка)
Диаграмма жизненного цикла
┌───────────┐ ┌────────────┐ ┌────────────┐ ┌─────────────┐ ┌───────────┐ ┌────────────┐
│ Установка │───▶│Обнаружение │───▶│ Выбор │───▶│ Вызов │───▶│Выполнение │───▶│ Завершение │
│ │ │ │ │ │ │ │ │ │ │ │
│ npx skills│ │ Скан. дир. │ │ ЯМ сопос- │ │ Внедр. MD │ │ Bash-ком. │ │ Возврат │
│ add <repo>│ │ Чт. YAML │ │ тавляет │ │ Выд. разр. │ │ через инс.│ │ разрешений │
│ │ │ Форм. спис.│ │ намерение │ │ Смена модели│ │ Цикл аг. │ │ │
└───────────┘ └────────────┘ └────────────┘ └─────────────┘ └───────────┘ └────────────┘
(один раз) (каждый шаг) (каждый шаг) (при совпад.) (управл. агент.) (при заверш.)
Ключевой вывод
Элегантность системы навыков в том, что она не добавляет никакой новой инфраструктуры. Ни серверов, ни API, ни протоколов. Просто markdown-файл, который внедряется в контекст разговора в нужный момент. Агент делает остальное с инструментами, которые у него уже есть (Bash, Read, Write).
Именно поэтому навыки настолько легче MCP: MCP требует запущенного серверного процесса, рукопожатия протокола, обмена схемами инструментов и постоянного управления состоянием. Навык — это буквально файл.