Modern QA2026Жизненный цикл навыка: От установки до выполнения
Join

Course01 Agent Skills for Browser Automation

Cutting-edge · Chapter 01

Жизненный цикл навыка: От установки до выполнения

Updated Jul 2026

Фаза 1: Установка

Навыки устанавливаются из Git-репозиториев через CLI:

npx skills add https://github.com/VibiumDev/vibium --skill vibe-check

Что происходит:

  1. Репозиторий клонируется (или каталог навыка скачивается)
  2. SKILL.md копируется в каталог навыков агента
  3. Прикреплённые ресурсы (/scripts/, /references/, /assets/) копируются вместе
  4. Навык становится доступен в следующей сессии агента

Расположение при установке

Навыки могут располагаться в нескольких местах, загружаются в порядке приоритета:

Расположение Область Случай использования
.claude/skills/ Проект Навыки, специфичные для данной кодовой базы
~/.config/claude/skills/ Пользователь Личные навыки для всех проектов
Встроенные Система Значения по умолчанию от Anthropic
Предоставленные плагином Плагин Навыки, поставляемые с расширениями IDE

Навыки проекта перекрывают пользовательские навыки, которые перекрывают встроенные (по имени).

Каталог навыков (skills.sh)

Agent Skills Directory — это централизованный маркетплейс с 49 000+ навыками. Поддерживает несколько агентных платформ (Claude Code, Cursor, Copilot, Cline). Популярные навыки имеют 100K+ установок.

Фаза 2: Обнаружение

На каждом шаге разговора система:

  1. Сканирует все расположения навыков в поисках файлов SKILL.md
  2. Читает YAML-метаданные из каждого
  3. Фильтрует до навыков, имеющих поле description
  4. Форматирует все имена + описания навыков в текстовый блок
  5. Внедряет этот блок в описание инструмента 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 учитывает:

  1. Совпадение описания — Соответствует ли описание навыка намерению пользователя?
  2. Контекст разговора — Работает ли пользователь над браузерным тестированием? Тогда vibe-check более вероятен
  3. Явный вызов — Пользователь говорит /vibe-check или «используй навык vibe-check»
  4. Контекст задачи — Если агент пишет тесты, которым нужна браузерная верификация

Фаза 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), которых у него не было до загрузки навыка. Это ключевая ценность навыков.

Восстановление после ошибок во время выполнения

Когда команда не срабатывает, агент:

  1. Читает вывод ошибки из Bash
  2. Применяет свои рассуждения (усиленные подсказками из SKILL.md)
  3. Пробует альтернативные подходы

Пример: Если 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 требует запущенного серверного процесса, рукопожатия протокола, обмена схемами инструментов и постоянного управления состоянием. Навык — это буквально файл.