Matt Pocock про agent skills: как не свалиться в skill hell (Рубрика AI4SDLC)
Посмотрел выступление Matt Pocock на AI Engineer "Building Great Agent Skills: The Missing Manual", в котором скиллы обсуждаются как инженерные артефакты: с классификацией, ценой поддержки и понятным критерием качества. Главная мысль, которую я оттуда забрал: хороший skill нужен, чтобы получить предсказуемый процесс из вероятностной системы. Не одинаковый ответ каждый раз, а одинаковый способ работы: когда подключаться, что прочитать, какие шаги пройти, где остановиться, что считать завершением. Такой подход лучше, чем стандартный взгляд на skills как на склад полезных инструкций, при котором быстро начинается skill hell: десятки файлов, пересекающиеся правила, старые заметки, непонятные триггеры, и в итоге агент то не вызывает нужный skill, то тащит в контекст лишнее, то преждевременно объявляет работу законченной.
У Pocock полезная рамка начинается с invocation - как skill вообще вызывается. 1️⃣ Model-invoked skill У скилла есть описание, которое модель видит заранее и по которому может сама решить: "да, сейчас это нужно". За это надо платить контекстом, так как описание постоянно занимает место. Поэтому такой skill оправдан, только если агент действительно должен сам до него дотянуться. 2️⃣ User-invoked skill Он не висит в контексте и вызывается человеком вручную. Это экономит токены и внимание модели, но перекладывает нагрузку на пользователя: нужно помнить, что такой skill существует. Если таких ручных skills стало слишком много, появляется отдельный router skill - не магический диспетчер, а человеческая карта, которая помогает выбрать нужный путь.
Дальше идет внутренняя анатомия skill. В ней, по сути, два вида материала: 1️⃣ Steps - действия, которые агент должен выполнить в порядке. 2️⃣ Reference - правила, определения, примеры, справка, которую агент читает по необходимости.
Хороший skill не обязан быть только процедурой. Он может быть набором reference-правил, как чеклист ревью. Или наоборот - почти чистой последовательностью шагов. Важно другое: материал должен лежать на правильном уровне информационной иерархии
- То, что нужно в каждом запуске, остается в SKILL.md
- То, что нужно только в отдельных ветках, уезжает в отдельные файлы и подгружается через context pointers Это не просто экономия токенов, а способ не размазывать внимание агента.
В шагах должен быть определен критерий окончания - completion criterion, так агент отличит "готово" от "почти готово". "Разберись с проблемой" - плохой критерий. "Проверь все измененные модели, перечисли найденные расхождения и укажи, какие тесты это покрывают" - уже рабочее ограничение. Чем мутнее граница завершения, тем выше риск раннего завершения, когда агент зафиналит работу чрезмерно поспешно.
Отдельно Matt уделяет много внимания использованию leading words (например, название паттернов или архитектурных концепций). Это короткие слова-якоря, которые уже есть в предобучении модели и помогают стабилизировать поведение: не длинная повторяющаяся инструкция, а компактный термин, вокруг которого собирается нужный способ думать. Хороший leading word одновременно помогает invocation - агент чаще понимает, когда skill нужен, - и execution - агент внутри skill держится одного режима работы.
Ну и напоследок Matt говорит о том, как подчищать скиллы (pruning), так как они деградируют как документация: туда легче добавить новую строчку, чем удалить старую. Так появляются повторы, циклы и нерабочие инструкции.
Практический вывод отсюда простой: skill - это не промпт, а маленький продуктовый интерфейс к поведению агента. У него есть стоимость discoverability, стоимость поддержки, границы ответственности и failure modes. Его нужно проектировать почти как API:
- Понятный trigger;
- Один источник истины для каждого правила;
- Проверяемые completion criteria;
- Разделение steps и reference;
- Progressive disclosure для редких веток;
- Регулярная чистка no-op и устаревших инструкций.
#AI #AI4SDLC #Engineering #Agents #Software #Management