TL;DR
Когда AI-агенту дают документ-инструкцию («что делать, что проверять, каких ошибок избегать»), он работает надёжнее не потому, что получает новые факты — а потому, что этот документ не даёт модели «расползтись» и сбиться с процедуры. Исследователи сравнили два способа передать модели прошлый опыт: сырые логи предыдущих попыток (успешных и неудачных) против сжатого чек-листа, составленного из этих же попыток.
Главная боль: если закинуть модели весь «архив» прошлых попыток — включая тупиковые ветки, лишние исследования, повторяющиеся ошибки — модель тратит внимание на этот шум и чаще срывает таймауты или теряет фокус. Причина проста: сырая история — это не инструкция, а поток данных, в котором полезное перемешано с мусором.
Решение — не давать модели сырые логи, а заранее дистиллировать их в компактный документ-процедуру. Такой документ работает как «якорь»: держит модель на рельсах правильной последовательности действий, а не сообщает ей новые знания. Отдельная находка: если у вас много таких документов (база знаний, файлы проекта), модель резко хуже находит нужный по мере роста их числа — значит, базу нужно держать маленькой и тематически разбитой.
Схема метода
ШАГ 1: Соберите 3-8 примеров прошлых попыток (удачных и неудачных) → сырые тексты/логи
ШАГ 2: Попросите LLM выделить из них общую процедуру, а не пересказать примеры →
документ из 3 частей: "что делать", "что проверять", "чего избегать"
ШАГ 3: Сохраните документ как персистентную инструкцию (Custom Instructions / Project Knowledge)
и используйте вместо повторной вставки примеров каждый раз
Все шаги можно сделать в одном чате последовательно.
Пример применения
Задача: Вы ведёте соцсети бренда и каждый раз просите ChatGPT написать пост, а потом правите одно и то же: слишком длинно, нет призыва к действию, не тот тон. Хочется один раз «зашить» это в инструкцию, а не объяснять заново в каждом чате.
Промпт:
У меня есть 5 постов, которые получились хорошо, и 3, которые не подошли
(слишком длинные, без призыва к действию, не в тоне бренда —
он ироничный, без канцелярита, обращение на "ты").
Вот они: {вставить тексты постов с пометкой удачный/неудачный}
Изучи их и составь короткую инструкцию из трёх частей:
1. Что делать (порядок действий при написании поста)
2. Что проверять перед публикацией (чек-лист)
3. Каких ошибок избегать
Не пересказывай примеры дословно — выведи из них общее правило.
Результат: Модель выдаст компактный документ на 10-15 строк с тремя разделами. Дальше вы вставляете этот документ в начало любого нового чата про посты (или кладёте в Custom Instructions / Project) — вместо того чтобы каждый раз копировать старые примеры целиком.
Почему это работает
Модель плохо справляется, когда в контексте лежит сырая смесь удачных и неудачных попыток — она либо путает, что было ошибкой, что нормой, либо тратит внимание на детали, которые к задаче не относятся. Чем длиннее и «грязнее» контекст, тем выше риск, что модель отвлечётся или забудет ключевое требование.
Зато модель отлично следует явной короткой процедуре — если ей чётко расписать порядок действий и точки проверки, она держится этого порядка стабильно. Именно это и есть механика метода: не «научить» модель новому, а зафиксировать поведение через явный чек-лист.
Рычаги управления: - Число исходных примеров для дистилляции (3-8 достаточно) → больше — не значит лучше, качество важнее количества - Раздел «чего избегать» → можно расширять на основе конкретных повторяющихся правок - Формат чек-листа → чем короче и конкретнее пункты, тем стабильнее модель их соблюдает
Шаблон промпта
У меня есть {N} примеров, которые получились удачно, и {N} примеров,
которые не подошли, для задачи: {описание задачи}.
Удачные примеры: {вставить}
Неудачные примеры и что в них не так: {вставить}
Составь короткую инструкцию из трёх частей:
1. Что делать (порядок действий)
2. Что проверять перед финальным ответом
3. Каких ошибок избегать
Не пересказывай примеры — выведи из них общее правило, применимое к новым задачам того же типа.
Подставьте вместо {описание задачи} — тип работы (посты, письма клиентам, отчёты), вместо примеров — реальные тексты с пометкой «удачно/неудачно».
🚀 Быстрый старт — вставь в чат:
Вот принцип создания рабочей инструкции из моих прошлых попыток. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы собрать нужные примеры.
[вставить шаблон выше]
LLM спросит, какие у вас есть удачные и неудачные примеры и почему — потому что без чёткой разметки «что сработало, что не сработало» дистилляция в процедуру не получится. Дальше она сама соберёт чек-лист по паттерну из шаблона.
Ограничения
⚠️ Растущая база знаний вредит поиску: если у вас много таких документов-чек-листов (файлы в Project, база знаний Custom GPT), модель резко хуже находит нужный по мере роста их числа — точность падает с ~30% до ~3% при увеличении пула с 5 до 100 документов. Держите базу маленькой и разделённой по темам.
⚠️ Не гарантирует успех даже при точном совпадении: даже если модель нашла и использует «правильный» чек-лист, это не гарантирует хороший результат — если задача чуть отличается от той, для которой писали инструкцию, чек-лист может не подойти или сбить с толку.
⚠️ Работает для процедурных задач, не для творческих: метод хорош там, где важна стабильность выполнения (форматы, регулярные операции, проверки). Для субъективных творческих задач (придумать оригинальную идею) эффект слабее — там нет «правильной последовательности», которую можно зафиксировать.
Как исследовали
Команда взяла AI-агентов (Codex и Gemini CLI), которые выполняют реальные задачи в терминале — настройка окружений, работа с кодом, тестами — на бенчмарках Terminal-Bench и SkillsBench. Они сравнили три варианта: агент без подсказок, агент с сырой историей прошлых попыток (Workflow Memory) и агент с дистиллированным чек-листом (Skill), при этом исходные трейсы были одинаковыми во всех случаях — менялось только их представление.
Дальше исследователи разметили вручную 240 трейсов выполнения, выделив 12 типовых причин успеха и провала, и проверили разметку человеком — совпадение с LLM-разметкой оказалось 95.8% (это очень высокий показатель надёжности). Оказалось, что дистиллированный чек-лист помогает в основном за счёт «процедурного якоря» (65.7% случаев), а не за счёт новых фактов (всего 4.5%) — это и есть главный неожиданный вывод: сырой опыт был не полезен сам по себе, полезна была именно его сжатая форма.
Отдельно проверили retrieval — насколько легко найти нужный документ среди похожих, увеличивая библиотеку с 5 до 100 документов. Точность поиска рухнула почти в 10 раз, но что удивительно — итоговый успех задачи при этом падал не так резко: точный выбор документа не был ни строго необходимым, ни достаточным условием успеха.
Ресурсы
DemystifyingAgentSkills: Why They Work—Until They Don't. Авторы: Zhiyuan Jiang, Fangrui Huang, Hanwen Xing и др. Princeton University, Stanford University, UC San Diego, USC, Johns Hopkins University. Использованные бенчмарки: Terminal-Bench, SkillsBench.
