Привет, Хабр! Меня зовут Сергей Нотевский, я AI Platform Lead в Битрикс24. Сегодня поговорим о новой практике упаковки знаний для LLM - Agent Skills. Разберем само понятие «навыков агентов» и проблемы, которые они решают, рассмотрим архитектуру и взаимосвязь с Tools, RAG и MCP.

TL;DR: Agent Skills - это переносимые модули процедурной памяти (инструкции + критерии + ресурсы), которые агент подгружает по мере необходимости. Они решают проблему «впихнуть невпихуемое» в контекст и устраняют prompt sprawl (разрастание промптов): процесс превращается в версионируемый артефакт (папку с кодом и Markdown). В отличие от Retrieval-Augmented Generation (RAG), который приносит факты, и Tools (инструментов), которые дают действия, Skill задаёт алгоритм - как именно действовать.

Дисклеймер: Эта статья перекликается с моей недавней публикацией о проблемах длинного контекста. Рекомендую ознакомиться, чтобы быть в курсе терминов Context Rot (гниение контекста) и Lost in the Middle. Здесь мы подробнее разберём, как Agent Skills помогают лечить эти проблемы.

Содержание:
1. Зачем понадобились Agent Skills
2. Предпосылки появления
3. Решение и его архитектура
4. Отличие от MCP, tools и место внутри системы
5. Где сейчас хранится то, что переносится в Навыки
6. Стандартизация
7. Заключение

Что такое Agent Skills и зачем они понадобились

Agent Skills (навыки агентов) - это новый архитектурный паттерн для LLM-агентов, позволяющий имитировать наличие у модели набора узкоспециализированных компетенций. Технически Skill - это директория, содержащая манифест с инструкциями (SKILL.md) и связанные ресурсы (скрипты, шаблоны, справочники). Идея была впервые формализована компанией Anthropic осенью 2025 года, а к концу 2025-го стала открытым стандартом, поддерживаемым индустрией. Проще говоря, skill - это «упакованный» кусочек экспертного опыта или пошаговой процедуры, который агент может динамически загрузить и применить, когда этот навык ему пригодится.

Почему эта концепция возникла именно сейчас? Дело в том, что LLM-агенты стремительно эволюционировали из простого «чатик с одним промптом» во что-то гораздо более сложное. В продакшене современные агенты уже имеют доступ к инструментам (tools/API), подключаются к базам знаний, наделяются памятью, подвергаются правилам безопасности. Логика решения задач размазывается по системным промптам, коду оркестровки и внешним БД. На масштабе это выливается в хаос: промпты и инструкции расползаются по разным частям системы без единого центра. В результате:

  • Правка в одном месте может сломать поведение модели в другом.

  • Знания и инструкции дублируются между разными агентами и командами.

  • Качество решений непоследовательно: каждый «учит» модель по-своему.

Без формальной стратегии для организации подсказок компании быстро скатываются в состояние prompt sprawl, когда разработчики клепают свои промпты кто во что горазд. Это приводит к непоследовательному поведению ИИ, дублированию усилий и полному бардаку, когда невозможно понять, почему ваш AI внезапно решил, что «написать сонет» значит «сгенерировать список покупок на клингонском».

Навыки агентов предлагают изящное решение: ввести единицу стандартизации - переносимый, версионируемый пакет процедурного знания, который можно поддерживать как код и подключать к агенту как библиотеку. С появлением Agent Skills мы перестаем объяснять ИИ как действовать правильно всякий раз с нуля - мы один раз оформляем навык и затем переиспользуем его повсеместно. Когда подобные навыки становятся частью экосистемы, AI-ассистент начинает работать по проверенным инструкциям, вместо разрозненных подсказок.

Предпосылки: проблема длинного контекста и Context Rot

Чтобы прикинуть ценность нового подхода, вспомним корень проблемы. Современные большие языковые модели могут иметь огромные контекстные окна (128k, 200k, даже до миллиона токенов), но это не означает, что можно безнаказанно скормить им все инструкции и знания разом. Существует феномен Context Rot - «гниения контекста»: чем больше информации загружено в модель одномоментно, тем менее надежно она учитывает ранние части промпта. Внимание модели - ресурс ограниченный, и каждый лишний токен в системных инструкциях размывает фокус. Если попытаться засунуть в prompt сразу все корпоративные регламенты (по HR, DevSecOps, Code Style, Release Flow и т.д.), модель начнет «тупить»: пропускать шаги, противоречить сама себе или откровенно галлюцинировать.

Исследования Chroma Research наглядно демонстрируют эту проблему: производительность LLM заметно неравномерна по длине контекста. По мере увеличения входа модель становится все менее надежной - токен на позиции 10 000 обрабатывается хуже, чем на позиции 100. Даже на относительно простых задачах качество деградирует по-разному при разных длинах промпта. Другими словами, бесконечно расширять окно бесполезно - начиная с определенного объема контекста модель неизбежно начинает теряться. В отчете Chroma подчёркнуто, что это поведение наблюдается у многих моделей, включая самые передовые на 2025 год. Топовые нейросети научились обходить эффект Lost in the Middle (когда середина контекста игнорируется) на задачах поиска фактов, но для сложного рассуждения и обобщения проблема никуда не делась.

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

  • Увеличение окна: просто нарастить максимальный контекст модели. Но это технически дорого, а главное - не лечит context rot. Модель может принимать 100k токенов, но не гарантирует осмысленной работы с ними. Чем длиннее ввод, тем ниже соотношение сигнал/шум в внимании модели.

  • RAG (Retrieval-Augmented Generation): двухшаговый подход «поиск + генерация». Модель сначала делает поиск по внешней базе (например, векторной) и подтягивает релевантные факты, затем формирует ответ. RAG прекрасно работает для актуализации знаний и фактических справок. Однако он не учит модель выполнять процедуру. Если задача требует следовать регламенту или содержит много шагов, RAG не даст пошагового плана - он просто принесёт куски текста по запросу.

  • Функции и Tools: с 2022 года появилось подключение LLM к внешним инструментам (через OpenAI Function Calling, плагины, LangChain и пр.). Агенту дают список функций с описаниями и он может реша��ь, какую вызвать, чтобы получить нужный результат. Этот подход (известный как ReAct-цикл) расширил возможности моделей - они научились гуглить, выполнять вычисления, звать API и т.д. Но логика использования инструментов при этом нигде жестко не задана - модель сама «придумывает» последовательность действий на лету, опираясь на свое обучение. Гибко, но непредсказуемо: в каждом запуске агент может пойти другим путём.

  • Жёсткие правила в промптах: самый топорный метод - заранее прописать всю процедуру в системном prompt или вводе пользователя. Например: «Если видишь такую-то задачу, сначала сделай А, потом Б, учитывая X и Y…». Это работает для простых случаев, но масштабируется плохо. Поддерживать десятки подобных шаблонов сложно: велик риск, что их забудут применить или случайно повредят. И снова - большой системный промпт на все случаи жизни превращается в простыню, отъедающую контекст.

  • Файн-тюнинг модели под процессы: в некоторых компаниях пытались дообучить саму модель на внутренних документах и примерах, чтобы «зашить» корпоративные процессы прямо в веса. Однако любой новый регламент потребует перетренировать модель, что долго и дорого, а результат неопределённый. И даже натренированный на ваших данных LLM не гарантирует следование конкретному алгоритму без дополнительных инструкций.

Все эти подходы решали часть проблем, но не давали универсального ответа. Нужен был способ отдать агенту процедуру решения задачи явно, по запросу, в удобном для всех формате - вместо того, чтобы каждый раз вытаскивать ее из параметров модели или расшаренных гугл-доков. Так родилась идея Agent Skills.

Решение: архитектура Agent Skills (навыков агента)

Навык агента можно представить как подробную должностную инструкцию или чеклист, оформленный для восприятия LLM. Вместо того чтобы пихать модели сразу всю «Войну и мир» регламентов, мы реализуем принцип Progressive Disclosure (прогрессивное раскрытие информации). Агент работает с навыками по многоуровневой схеме:

  1. Discovery (обнаружение навыка по метаданным): В системном промпте агента изначально хранится только меню навыков - список доступных Skill’ов с их названиями и кратким описанием. Это занимает минимум токенов (буквально пара строк на навык). Например: «name: deploy-prod; description: как выкатывать код в продакшен правильно». Благодаря такому меню модель знает, какие навыки у нее есть и для чего они нужны, но подробностей пока не видит. Это первый уровень раскрытия.

  2. Activation (загрузка инструкций навыка): Когда агент понимает (сам или по подсказке пользователя), что ему требуется конкретный навык, он активирует его - то есть подгружает полный текст SKILL.md из соответствующей папки. Например, поступил запрос: «задеплой на прод»- агент на основе меню решает, что ему нужен навык deploy-prod, и читает файл SKILL.md. В нем могут быть расписаны все шаги: проверка тестов, миграции БД, рассылка уведомлений и т.д. Только на этом этапе детальные инструкции попадают в контекст модели. Это второй уровень раскрытия.

  3. Execution (исполнение с дополнительными ресурсами): Если в процессе выполнения навыка потребуются вспомогательные материалы - скрипты, шаблоны, справочники - они подтягиваются лениво, по мере надобности. Например, навык говорит: «воспользуйся функцией run_sql из файла scripts/deploy.sql» - агент загрузит этот скрипт и выполнит его, или «используй шаблон письма из assets/deploy-email.md» - агент откроет этот файл, когда дойдет до шага с уведомлением. Кодовые ресурсы при этом могут исполняться вне модели (чтобы не тратить контекст), а в prompt возвращается только результат. Это третий уровень раскрытия.

Такой поэтапный подход позволяет навыку быть сколь угодно сложным и объемным, не перегружая модель зря. Агент всегда оперирует только той информацией, которая нужна здесь и сейчас. Навык как бы раскрывает страницы инструкции постепенно, вместо того чтобы вываливать на модель целую книгу сразу.

Элегантность Agent Skills в том, что они используют уже привычные методы разработки: папки и файлы с человеческими понятными инструкциями. По сути, нам дали способ хранить знания в явном структурированном виде, доступном и человеку, и машине. Навык - это как подробный инструктаж нового сотрудника, который ИИ может сам прочитать в нужный момент. Никакой магии - просто хорошо организованные тексты.

Анатомия навыка

Структура навыка к концу 2025 года уже стала де-факто стандартом (поддерживается сообществом ). Вот как выглядит типичный навык в файловой системе:

my-cool-skill/
├── SKILL.md          # Манифест и инструкции
├── scripts/          # Исполняемый код (напр. Python или Bash)
├── references/       # Справочные материалы (например, перечень кодов ошибок)
└── assets/           # Шаблоны документов, письма и пр.

Главный файл - SKILL.md. Это гибрид YAML и Markdown: он начинается с YAML-заголовка, где указываются метаданные навыка, а далее следует собственно инструкция в MD-разметке. Пример (упрощенный фрагмент для иллюстрации):

---
name: production-incident-triage
description: Используй этот навык при алертах P0/P1 для первичной диагностики и коммуникации.
---

# Incident Triage Procedure
## 1. Context Collection
Сначала собери метрики за последние 15 минут.  
Используй tool query_grafana с дашбордом main-cluster-v2.

## 2. Severity Check
ЕСЛИ error_rate > 5% ИЛИ latency p99 > 2s:
  - Объяви инцидент через tool create_jira_ticket.
  - Используй шаблон из файла assets/incident-template.md.

## 3. Communication
Не пиши отсебятину. Используй строгий стиль из references/comms-guide.md.

Здесь мы видим, что метаданные (name и description) служат кратким описанием навыка. Они загружаются агенту в системный prompt при инициализации, но без деталей процедуры. А основное тело SKILL.md содержит пошаговые инструкции (с номерами шагов, условными операторами, ссылками на инструменты и файлы). Навык может ссылаться на дополнительные файлы в своей же папке, как в примере: если требуется шаблон отчета или справочник стилей коммуникации, агент подтянет их содержимое, когда дойдет до соответствующего шага.

Получается своеобразный кодекс в формате Code-as-Policy: процедуру можно хранить в Git, делать pull request’ы, обсуждать правки с командой, сливать изменения - и все ваши агенты автоматически начнут работать по обновленному регламенту. Никакого «испорченного телефона» с пересказом инструкци�� - навык один и все ему следуют.

Чем Skill отличается от Tools, RAG и MCP?

Попытаемся понять место навыков среди прочих примочек для LLM-агентов. Давайте сравним:

Сущность

Аналогия

Отвечает на вопрос

Пример

Tool / функция

Руки

«Что я могу сделать?»

Функция send_email() или query_database(). Это просто действие.

MCP

Проводка / порт

«Где взять данные?»

Стандарт подключения к Jira/GitHub. Это канал связи (интерфейс).

RAG

Библиотека

«Что я знаю (факты)?»

Вопрос: «Какая выручка была в Q3?» - факт берется из базы знаний.

Skill

Должностная инструкция

«Как правильно выполнить задачу?»

Как составить отчет за Q3, используя базу и почту, в каком формате отправить.

Важно понимать, что эти механизмы дополняют друг друга. Навыки не заменяют инструменты и доступ к данным - они работают вместе. Например, MCP (Model Context Protocol) и Skills отлично сочетаются: MCP предоставляет агенту унифицированный доступ к данным и действиям (инструментам) во внешних системах, а Skill объясняет, как этими инструментами правильно пользоваться для решения задачи.

Небольшое пояснение про MCP: Model Context Protocol - это открытый стандарт от Anthropic д��я подключения агентов к внешним источникам данных и сервисам. По сути, MCP - как универсальный порт для ИИ. Агент (клиент MCP) может спросить у MCP-сервера: «Что ты умеешь?» и получить машиночитаемый список всех доступных действий, ресурсов и шаблонов. MCP определяет три типа возможностей (примитивов): Tools (инструменты/функции, которые можно вызвать), Resources (данные или файлы, к которым можно обратиться) и Prompts (шаблоны подсказок, заготовленные диалоги). Условно мы выдаем агенту сразу полный справочник всех API и данных: «вот тебе инструменты и данные, используй по необходимости».

Однако сам по себе MCP не говорит когда и в каком порядке эти возможности применять - он лишь обеспечивает стандартный интерфейс. Вот тут и приходят на помощь навыки: Skill может включать вызовы MCP-инструментов внутри своей инструкции, задавая осмысленный алгоритм. Представьте, MCP дал агенту доступ к базе данных заявок и к инструменту отправки email. А навык «Monthly Report» прописывает: сначала получи данные из БД (инструментом DB.query), затем на основе шаблона сгенерируй отчет, потом отправь его по почте (инструментом Email.send), соблюдая корпоративный тон из справочника. MCP предоставляет «руки» и «глаза», а Skill - мозги и опыт для конкретной задачи. Важно: MCP и Skills - не конкуренты, так как навыки делают связку LLM + MCP значительно более целевой и управляемой.

В сравнении с RAG тоже стоит прояснить: RAG-метод позволяет модельке быстро находить нужные факты (строчки из документов) и подкладывать их в prompt. Но он не учит модель строгому сценарию. Навык же может содержать целый алгоритм действий. Грубо говоря: RAG - это ваша корпоративная библиотека, откуда агент берет справки, а Skill - это должностная инструкция, по которой он эти справки оформляет и применяет.

Где раньше хранились эти знания (и почему мы страдали)

До появления стандартизированных навыков процедурное знание в компаниях жило кто во что горазд:

  • В документации и Wiki (Confluence, Notion, внутренние базы знаний). Этот «мертвый груз» трудно интегрировать с LLM. Агент не умеет сам читать стопки документов перед каждым решением. RAG частично спасал ситуацию, но при вытаскивании кусков текста терялась логика последовательности действий. Навык же позволяет взять такой документ и превратить его в интерактивную инструкцию: модель сама ее прочитает в нужный момент и строго выполнит шаги.

  • В библиотеках промптов и шпаргалках. Многие до недавнего времени собирали «лучшие промпты» в виде текстовых файлов или заметок. Пример: разработчики делились друг с другом шаблонами запросов для рефакторинга кода, тестирования, написания писем и т.п. Полезно, но не масштабируемо - каждый копипастит и перефразирует инструкции вручную. Навыки структурируют эти наработки и делают их доступными всем агентам сразу.

  • В головах экспертов. Самое надежное, но узкое хранилище знаний - опытные сотрудники. Сеньор-разработчик помнит, что «после деплоя надо проверить логи и отправить письмо в Slack», а джун может и не знать. Агент без навыка - как новенький стажер, который без наставника наделает ошибок. Skill позволяет выгрузить экспертизу из головы сеньора в файл .md, и тогда даже новичок или ИИ-агент не забудет важных шагов.

  • В жестко запрограммированной логике. Наконец, некоторые команды заранее прописывали сложные сценарии действий в коде (например, скрипты на Python или цепочки LangChain, где if/else управляли моделью). Это работало, но было очень дорого в поддержке: малейшее изменение процесса требовало править код, раскатывать обновления. Skills выносят логику из кода в понятный формат рядом с моделью - правка инструкции не сложнее редактирования wiki-страницы и все агенты сразу ей следуют.

Стандартизация

Ключевое новшество Agent Skills не столько в самой идее «записать инструкцию в файл» - многие и раньше так делали, каждый по-своему. Прорыв в том, что навыки стали общим открытым стандартом, понятным разным платформам. В декабре 2025 Anthropic опубликовала спецификацию Skills как открытый формат и ее сразу подхватили другие игроки. Сейчас навыки поддерживаются в ряде ведущих AI-инструментов и сред разработки:

  • GitHub Copilot (Agent mode) - инструмент разработчика от Microsoft. В VS Code Insiders появился встроенный механизм подгружать навыки из папки репозитория .github/skills. Проще говоря, вы кладете навык в репо - Copilot его видит и использует, когда нужно. А если вы уже настроили навыки для Claude (в директории .claude/skills), Copilot их тоже подхватит. Это говорит о унификации формата: один SKILL.md сразу работает и с Anthropic Claude, и с Copilot.

  • Anthropic Claude и экосистема - сами разработчики концепции добавили поддержку навыков в своих продуктах: Claude.ai, Claude Code, Claude Agent SDK. Навыки стали частью Claude Developer Platform. Кроме того, открыт репозиторий с готовыми навыками от Anthropic (например, навык для работы с PDF-документами, упомянутый в их блоге).

  • OpenAI Codex / другие IDE - сообщество быстро адаптировало поддержку Skills в разные dev-инструменты. Появились плагины и расширения для IDE (Cursor и др.), поддерживающие импорт навыков. Список совместимых платформ растет.

Возник эффект, похожий на появление MCP год назад. Теперь что-то подобное происходит с навыками агентов. Раньше у каждой команды были свои хитрые промпты и сценарии, а теперь есть единый формат SKILL.md. Благодаря этому навыками можно делиться, их можно публиковать и переиспользовать. Стандартность означает, что эксперт из одной компании может выложить навык в открытый доступ - и он заработает у десятков тысяч других агентов без доработки.

В официальной спецификации говорится: «Agent Skills - простой открытый формат для передачи агентам новых способностей и экспертизы. Создайте навык один раз и используйте на разных продуктах; захватывайте знания организации в портативные, версионируемые пакеты».

Можно сказать, что навыки стали unit of change (единицей изменения) для бизнес-процессов. Вместо того чтобы учить каждую модель по отдельности или надеяться, что сотрудники правильно скопируют инструкции, мы облекаем изменения в навык.

Заключение: навык как новый уровень абстракции в работе с ИИ

Agent Skills стали прагматичным ответом индустрии на хаос первых лет массового внедрения ИИ. Мы перестаем относиться к промптам как к нормальному инженерному артефакту. Навык - это именно артефакт, носитель знаний и алгоритмов, с понятным жизненным циклом: разработка → тестирование → версия в продакшене → обновление.

Появляется доверие к результатам AI: если мы знаем, что агент строго следует утвержденному протоколу, его выводы предсказуемы и проверяемы.

Конечно, skills - не панацея сами по себе. Они работают в связке с другими компонентами умных агентов: с инструментами (которые дают действие), с MCP (который дает безопасный канал к данным) и с внешними базами знаний (которые дают актуальные факты). Задача навыков - заполнить пробел: научить ИИ действовать по четкому плану, продиктованному экспертом, без жесткого хардкода.

Мы получаем возможность вынести логику поведения из черного ящика модели наружу, в человекочитаемый и машинноисполняемый формат. Unit of Change - теперь это не weights модели, не огромный prompt, а понятный файл SKILL.md. Если завтра меняется бизнес-процесс, меняем описание в одном месте - и все AI-агенты работают по-новому, не дожидаясь переобучения модели или правки каждого скрипта.

Если вы работаете с AI-агентами, возможно, сейчас самое время попробовать навыки в деле. Начните с простого: оформите повторяющийся процесс в виде SKILL.md и подключите к своему агенту.

В своем tg-канале рассказываю про практику LLM: выбор моделей, evals, длинный контекст и нюансы из прода, без маркетинговой мишуры.