15 июля Microsoft выпустила стабильную версию фреймворка Agent Skills для Python. Он позволяет разработчикам подключать возможности только тогда, когда они действительно необходимы агенту на базе LLM. Заменяя один постоянно растущий системный промпт загрузкой навыков по требованию, этот подход уменьшает размер промпта, снижает затраты на токены и делает рассуждения агента более четкими.

Почему промпты раздуваются и почему это важно

LLM-агенты полагаются на «системный промпт», который объединяет политики, инструкции (runbooks) и справочные материалы, которые модель должна видеть на каждом шаге. Добавьте несколько документов с политиками — и промпт раздувается до нескольких тысяч токенов. Большие промпты увеличивают стоимость инференса (каждый обработанный токен тарифицируется) и ослабляют сигнал инструкций, из-за чего ответы агента становятся менее точными. При анализе инцидентов или проверке соответствия требованиям (compliance) нечеткий промпт может превратить полезного помощника в источник дезинформации.

Паттерн Agent Skills: постепенное раскрытие (progressive disclosure)

Новый фреймворк заменяет монолитный промпт четырехэтапным рабочим процессом:

  1. Анонсирование навыка — легковесная запись в метаданных, которая сообщает слою маршрутизации имя навыка.
  2. Загрузка инструкций — краткое описание, которое агент читает, чтобы решить, соответствует ли навык запросу.
  3. Чтение ресурсов — необязательные файлы политик или справочные материалы, которые загружаются только после того, как агент выберет навык.
  4. Выполнение скриптов — выполнение кода для совершения действия, требующее явного подтверждения.

В основном промпте содержится только короткий файл SKILL.md. Все более объемные документы и скрипты находятся в файловом пакете навыка, который среда выполнения (runtime) подтягивает по требованию. Структура каталогов остается простой:

  • SKILL.md — краткое описание, понятное человеку.
  • references/ — файлы политик или руководств.
  • scripts/ — исполняемый код.

Поскольку агент не видит полного содержимого references/ или scripts/ до тех пор, пока не решит, что навык подходит, основной промпт остается компактным, независимо от количества зарегистрированных навыков.

Встроенные механизмы безопасности

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

  • Анонсирование имени навыка — автоматическое, используется только для маршрутизации.
  • Загрузка инструкций — автоматическая для курируемых списков; непроверенные инструкции могут непреднамеренно изменить поведение модели.
  • Чтение политик — автоматическое, если данные не являются конфиденциальными; храните конфиденциальные материалы под дополнительным контролем доступа.
  • Выполнение скриптов — всегда требует явного подтверждения. Скрипт переводит агента из режима «предложения» в режим «действия», поэтому необходимо вмешательство человека или проверка политик.
  • Вызовы внешних систем — должны проходить через отдельные инструменты с ограниченными правами; сам навык не является механизмом авторизации.

Эти правила побуждают разработчиков начинать с рабочих процессов «только для чтения» (анализ инцидентов, поиск по политикам, запросы статуса), прежде чем переходить к действиям, ориентированным на запись, таким как обновление баз данных или развертывание кода.

Операционная гигиена: логирование и версионирование

При выполнении навыка фреймворк рекомендует (а во многих случаях и обязывает) логировать следующее:

  • Исходный запрос и ID выбранного навыка.
  • Версию использованного пакета навыков.
  • Загрузил ли агент только описание или также подтянул файл ресурса.
  • Решение о подтверждении выполнения скрипта.
  • Все переданные аргументы инструментов и полученные результаты.

Если агент выбирает не тот навык, превратите эту ошибку в тест-кейс. Это создаст проверку на регрессию перед тем, как навык попадет в продакшн.

Относитесь к каждому навыку как к версионируемой зависимости с четкими границами, а не как к папке с разрозненными промптами. Версионирование позволяет откатить неисправный скрипт, не нарушая работу остальной базы знаний агента.

С чего начать: прагматичный чек-лист

  1. Выберите рабочий процесс «только для чтения» — например, «поиск последних рекомендаций по инцидентам безопасности».
  2. Упаковывайте инструкции и скрипты отдельно — делайте SKILL.md коротким; храните тяжелые файлы политик в references/.
  3. Сформируйте каталог — ведите список одобренных навыков и введите обязательное подтверждение для любого скрипта.
  4. Установите ограничения песочницы — определите ограничения по CPU, памяти и сети для выполнения скриптов; логируйте каждый запуск.
  5. Проведите бенчмаркинг по сравнению со старым «мега-промптом» — сравните использование токенов, задержку (latency) и процент успешных операций, чтобы подтвердить экономию средств.

Что дальше

Релиз Microsoft на данный момент представляет собой стабильную реализацию на Python.

Итог

Agent Skills позволяют LLM-ассистентам оставаться легковесными, сохраняя при этом доступ к постоянно пополняемой библиотеке политик и скриптов. Благодаря тому, что на начальном этапе загружается только описание, а тяжелые ресурсы подгружаются по мере необходимости, промпты остаются короткими, затраты на инференс снижаются, а рассуждения агента — сфокусированными.