Смотреть урок
Skill — это не просто текстовый файл с инструкциями. Это программный артефакт: у него есть интерфейс, реализация, зависимости и свои способы "падать" — просто без единого сообщения об ошибке.
Что внутри:
🔹 Как устроена поэтапная загрузка skill — три уровня, от метаданных до вложенных файлов, и сколько токенов стоит каждый
🔹 Как написать description, от которого зависит, сработает ли skill вообще
🔹 Чем skill отличается от memory-файла, slash-команды, subagent, MCP и hook — и как не перепутать их между собой
🔹 Evaluation-driven процесс создания skill: как тестировать через два инстанса модели и итерировать по реальным сбоям
💡 Skill выбирается моделью вероятностно — без компилятора, который поймает ошибку. Поэтому чёткое описание и поведенческие тесты здесь важнее, чем в обычном коде.
Skill — это упаковка workflow, набора правил, фактов или последовательности шагов, которые агент должен выполнять для конкретного типа задач. Идея простая: разработчику не нужно повторять одни и те же инструкции в каждой сессии — агент сам подгружает нужный skill, когда задача под него подходит.
Ключевая особенность skill в том, что решение о его применении принимает сама модель — она сопоставляет описание skill с задачей, и это решение вероятностное. Никакого компилятора или системы типов, которая бы подтвердила, что сработал правильный skill, здесь нет. Именно поэтому то, как skill написан, определяет, будет ли он вообще выбран и будут ли выполнены его инструкции после загрузки.
Anthropic представили Agent Skills как открытый формат — структура папок, YAML frontmatter и поэтапная загрузка поддерживаются в целом ряде агентских инструментов. Skill, написанный по базовому формату, обычно читается и другими инструментами, которые поддерживают эту спецификацию, хотя специфичные для конкретного инструмента поля и поведение могут не переноситься.
Почему skill — это программный артефакт, а не просто текстовая инструкция:
- Он состоит из обычных файлов:
SKILL.md с инструкциями плюс любые скрипты и справочные документы проекта — всё это можно версионировать, как и остальной код.
- У него есть интерфейс (description) и реализация (тело файла и вложенные скрипты).
- Он компонуется с другими единицами: подключает ресурсы, вызывает инструменты, может вызывать другие skills.
- Его читает и выполняет машина, его нужно поддерживать по мере изменения системы, и он может «сломаться» — не быть выбранным или быть понятым неверно.
Это те самые свойства, по которым обычно определяют софт, поэтому и методы разработки софта применимы…