3,583 papers
arXiv:2610.11007 88 7 окт. 2026 г. FREE

Курирование AGENTS.md: файл инструкций агента должен иметь потолок размера, а не только дописываться

КЛЮЧЕВАЯ СУТЬ
Правило, которое агент чаще всего пропускает, часто самое важное. Если чистить файл по принципу «агент это не выполняет», оно уйдёт первым. Метод позволяет сократить раздутый CLAUDE.md или AGENTS.md до 20–60 строк и не выбросить нужное. Фишка: оценивай правило по ценности, а не по тому, выполняется ли оно. Ценность = как часто правило нужно × польза или вред при выполнении − цена в токенах и внимании. Журнал сессий показывает только выполнено или нет. Полезно правило или вредно, из него не видно. Поэтому вредные и устаревшие правила идут под нож первыми, а безвредные «легкие» остаются.
Адаптировать под запрос
⚡

TL;DR

Исследование рассматривает файл вроде AGENTS.md или CLAUDE.md как ограниченное место. Каждая строка стоит токенов в каждой сессии. Каждая новая строка ещё и отнимает внимание у остальных: агент хуже выполняет все правила сразу. Поэтому у файла есть потолок полезного размера. Он не зависит от того, сколько у вас накопилось идей и замечаний. Отсюда правила: не дописывать всё подряд, оценивать правила по ценности и держать лимит.

Главная боль: файл только растёт. Агент или человек после каждой сессии добавляет «чтобы больше так не было», а чистить некому. Через полгода в файле 300 строк. Часть правил агент игнорирует, часть мешает (например, «всегда используй conda» в репозитории на uv). Авторы показали на модели и эксперименте: добавлять всё, что по отдельности полезно, может быть сколь угодно хуже, чем выбрать лучший поднабор. Кроме того, удалять правила, которые агент игнорирует, опасно. По транскриптам видно, выполнялось правило или нет. Полезно оно или вредно, из этого не следует. Важное правило, которое агент часто пропускает, удалится первым. Безвредное и легко исполняемое правило останется.

Практический метод курирования такой: кандидаты копятся отдельно от файла, в файл идут только подтверждённые повторными случаями, а каждое правило оценивается по ценности (польза минус стоимость в токенах и внимании). Размер файла ограничен, правки делаются небольшими пачками.

🔬

Схема метода

ШАГ 1: Новые замечания → в отдельный список кандидатов, НЕ в файл
ШАГ 2: Допуск в файл → только после повторных независимых случаев (в теории оптимум — два)
ШАГ 3: Оценка каждого правила → как часто нужно × польза/вред если выполнено − цена в токенах
ШАГ 4: Удаление → по ценности, а не по «агент это игнорирует»; вредные правила первыми
ШАГ 5: Потолок размера + небольшие пачки правок → проверка на реальных задачах

Шаги 1–4 можно делать в одном чате: загрузить файл и транскрипты, получить таблицу вердиктов. Шаг 5 — ваш ручной контроль.

🚀

Пример применения

Задача: Разработчик ведёт бэкенд интернет-магазина на Python с оплатой через ЮKassa. Полгода подряд после каждой сессии Claude Code он дописывал в CLAUDE.md замечания. Теперь в файле 280 строк. Среди них: «всегда запускай pytest», «пиши docstring в стиле NumPy», «используй conda» (проект давно на uv), «не коммить в main», «в тексте писем клиентам не используй слово "уважаемый"» и ещё десятки мелочей про стиль. Агент всё чаще забывает про pytest и «не коммить в main».

Промпт:

Ты — редактор файла инструкций для кодового агента. Ниже файл CLAUDE.md моего проекта (бэкенд интернет-магазина на Python, оплата через ЮKassa, окружение — uv) и три выдержки из транскриптов, где агент ошибся.

<файл>
[вставить 280 строк CLAUDE.md]


<сбои>
[вставить 3 случая: что агент сделал не так]


Для КАЖДОГО правила заполни строку таблицы:
правило | примерные токены | как часто бывает релевантно (часто / редко / почти никогда) | что будет, если агент правило выполнит (польза / нейтрально / вред) | вердикт (оставить / удалить / объединить с другим / вынести из постоянного файла)

Правила редактирования:
1. Не предлагай удалять правило ТОЛЬКО потому, что агент его игнорирует. Сначала оцени, чего стоит его нарушение.
2. Правила, которые при выполнении вредят (устарели, противоречат проекту), удаляй в первую очередь.
3. Целевой размер — не более 60 строк. Если важных правил больше, назови, какие и почему вытеснили остальные.
4. Новых правил не добавляй. Если из сбоев видно пробел — внеси его в отдельный список «кандидаты» и укажи, сколько раз пробел проявился.
5. В конце дай итоговый файл и список из 5 проверочных задач, на которых я смогу сравнить старую и новую версию.

Результат: Модель выдаст таблицу вердиктов по каждому правилу и отметит вредные, например устаревшее «используй conda». Дальше будет сжатый файл в пределах лимита и отдельный список кандидатов с числом повторов. В конце придут проверочные задачи. Решать за вас, что действительно важно в проекте, модель не может. Таблицу нужно пробежать глазами.

🧠

Почему это работает

Слабость. У модели ограниченное «внимание»: чем больше правил в промпте, тем хуже выполняется каждое. Токены файла оплачиваются в каждой сессии. Поэтому правило «каждое замечание, которое по отдельности разумно, добавить в файл» ломается. Пока файл небольшой, это не видно. Когда правил много, одни вытесняют другие.

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

Обход. Журнал сессий показывает только то, что было загружено: правило выполнено или нет, был ли вред. Чего не хватало, видно лишь когда отсутствие правила уже привело к сбою. Поэтому нужно разделять «агент игнорирует» и «правило бесполезно», а новые правила брать только после повторных случаев.

Рычаги управления: - Лимит строк → меньше лимит, жёстче отбор. Для небольшого проекта хватает 20–60 строк. - Порог допуска → число повторных случаев до добавления правила. Авторы получили минимум потерь при двух наблюдениях в своих допущениях. Для критичных правил (безопасность, деньги) можно взять один. - Критерий вердикта → добавьте «стоимость ошибки», чтобы редкие, но дорогие правила не вытеснялись частыми мелочами. - Пачки правок → меняйте 5–10 правил за раз и проверяйте. Тогда видно, какая правка помогла.

📋

Шаблон промпта

Это моя сборка по принципам статьи. Готового промпта в статье нет.

Ты — редактор файла инструкций для агента ({название_агента}). Ниже файл и примеры сбоев.

<файл>
{содержимое_файла}


<сбои>
{случаи_сбоев_из_транскриптов}


Контекст проекта: {описание_проекта_и_окружения}

Для КАЖДОГО правила заполни строку таблицы:
правило | токены | релевантность (часто / редко / почти никогда) | эффект при выполнении (польза / нейтрально / вред) | вердикт (оставить / удалить / объединить / вынести)

Правила редактирования:
1. Не удаляй правило только потому, что агент его игнорирует. Сначала оцени цену нарушения.
2. Вредные и устаревшие правила удаляй первыми.
3. Целевой размер — не более {лимит_строк} строк. Если не помещается, объясни, что вытеснено и почему.
4. Новых правил не добавляй. Пробелы из сбоев вноси в список «кандидаты» с числом повторов.
5. Правило допускается в файл только если проблема проявилась не менее {порог_повторов} раз.
6. В конце дай итоговый файл и {число} проверочных задач для сравнения старой и новой версии.

Подставьте: файл целиком, 3–10 случаев сбоев из реальных транскриптов, короткое описание проекта, лимит строк и порог повторов (по умолчанию 2).

⚠️

Ограничения

⚠️ Эксперимент далёк от реальных файлов: Оптимум и падение качества измеряли на пулах от 200 до 3200 инструкций. В настоящих AGENTS.md десятки строк. Для небольших файлов авторы сами приводят работы, где падения соблюдения правил не видно.

⚠️ Искусственные инструкции: Правила брали из реальных файлов, но модель переписала их в проверяемые правила про слова в ответе. Задачи — тексты разных форматов, а не работа кодового агента с репозиторием.

⚠️ Узкая проверка: Всего 60 задач и две модели одного семейства. Конкретные цифры оптимума переносить на свой случай нельзя.

⚠️ Теория держится на допущениях: Главное допущение — каждая добавленная инструкция не повышает соблюдение остальных. Число «два повтора перед добавлением» верно в рамках модели и не проверялось на живых агентах.

⚠️ Часть выводов требует инженерии: Алгоритм пробного перебора пачками правил и оценки ценности предполагает код и ручной ревью. Руками применимы принципы, но не весь алгоритм.

⚠️ Размер эффекта в реалистичном диапазоне не показан: Кратное падение (в разы) наблюдали при загрузке всего пула из тысяч инструкций.

🔍

Как исследовали

Исследователи сначала описали файл инструкций как задачу выбора ассортимента: у каждого правила есть цена в токенах, шанс оказаться нужным и польза при выполнении (иногда отрицательная). Внимание модели общее и «разбавляется» с ростом файла. Из этого они математически вывели, что полезный размер файла ограничен и не растёт вместе с числом накопленных идей. Они же показали, что «добавлять всё, что полезно по отдельности» может быть сколь угодно хуже оптимума. Отдельно они разобрали, чему можно научиться по журналам: видно соблюдение правил и вред от них, но не размер пользы. Поэтому удаление по несоблюдению не различает ценное и бесполезное.

Для проверки собрали пул из 3200 правил из реальных файлов репозиториев. 2560 из них Claude Sonnet переписал в проверяемые автоматически правила о словах в ответе. Остальные 640 оставили как есть, и они ничего не давали в подсчёте. Пул и файлы увеличивали ступенями (файл от 5 правил до всего пула), на 60 задачах ManyIFEval в шести форматах. Правила шли в системный промпт, задача — в пользовательский, всего по 2880 запусков для Claude Haiku 4.5 и Sonnet.

Результат: при пуле 3200 обе модели лучше всего работали на файле в 200 правил. Haiku выполнял около 5 релевантных правил, Sonnet около 24. При загрузке всего пула показатели падали до 0,6 и 4,0. Удивительно, что при росте пула лучший размер файла оставался небольшим. Практический вывод: рост списка идей не оправдывает рост файла.

💡

Адаптации и экстраполяции

Ниже мои идеи, не из статьи.

🔧 Техника: правило для агента, который сам пишет себе память → допуск по повтору

Если ваш агент дописывает выводы в файл памяти, добавьте в его инструкции:

Новые замечания по итогам сессии записывай в файл candidates.md, а не в AGENTS.md. 
Для каждого указывай, в скольких разных сессиях проблема проявилась.
Переноси замечание в AGENTS.md только когда оно встретилось не менее двух раз в разных сессиях 
и ты можешь назвать, что именно сломается без него.
При переносе назови, какое существующее правило можно удалить, чтобы файл не вырос.

Это прямое следствие вывода о двух сигналах и об ограничении размера. Здесь «удалить при добавлении» — моя добавка.

Экстраполяция: проверка перед удалением. Перед тем как убрать «игнорируемое» правило, прогоните 3–5 задач, где оно важно, с ним и без него. Если без него агент стал ошибаться, правило нужно усилить или поставить выше, а не удалять.

🔗

Ресурсы

  • Curating Always-Loaded Context for LLM Agents: A Capacitated Assortment Model with Censored Feedback — Zexuan Liu (University of Illinois at Urbana-Champaign), Yuning Yang (Georgia Institute of Technology), Tiancheng Zhao (Saint Louis University)
  • ManyIFEval (Harada et al., 2025) — задачи с множеством инструкций
  • Gloaguen et al. (2026) — контекстные файлы и рост стоимости запросов
  • Chakrabarti (2026) — рост файлов в 1867 репозиториях
  • McMillan (2026), Zhang et al. (2026a) — работы без падения соблюдения в малых диапазонах

📋 Дайджест исследования

Ключевая суть

Правило, которое агент чаще всего пропускает, часто самое важное. Если чистить файл по принципу «агент это не выполняет», оно уйдёт первым. Метод позволяет сократить раздутый CLAUDE.md или AGENTS.md до 20–60 строк и не выбросить нужное. Фишка: оценивай правило по ценности, а не по тому, выполняется ли оно. Ценность = как часто правило нужно × польза или вред при выполнении − цена в токенах и внимании. Журнал сессий показывает только выполнено или нет. Полезно правило или вредно, из него не видно. Поэтому вредные и устаревшие правила идут под нож первыми, а безвредные «легкие» остаются.

Принцип работы

Файл правил — это ограниченное место, а не мусорная корзина. Каждая строка платит токенами в каждой сессии. Каждая строка ещё и отвлекает агента от остальных правил. Процесс такой: 1. Новое замечание идёт в отдельный список кандидатов, не в файл. 2. В файл оно попадает после повторных независимых случаев. В теории авторов оптимум — два. 3. Каждое правило получает оценку ценности. Вредные удаляются первыми. 4. Размер файла ограничен потолком. Правки идут пачками по 5–10 штук. Файл правил — как рабочий стол: чем больше бумаг, тем хуже видно главное. Дописывать «чтобы больше так не было» после каждой сессии — самый быстрый путь к столу, заваленному хламом.

Почему работает

У модели ограниченное внимание. Чем больше правил в промпте, тем хуже выполняется каждое. Пока файл маленький, этого не видно. Когда правил сотни, одни правила вытесняют другие. Авторы моделировали это на пулах от 200 до 3200 инструкций. При загрузке всего пула из тысяч инструкций соблюдение правил падало в разы. Ещё одна ловушка: журнал показывает только то, что было загружено. Чего не хватало, видно лишь после сбоя. Игнорируемое правило может быть важным, а исполняемое — бесполезным или вредным. Устаревшее «всегда используй conda» в проекте на uv агент как раз исполняет, и это вредит. Модель хорошо классифицирует и сравнивает. Ей легко ответить, как часто правило нужно, вредит ли оно и дублирует ли другое. Промпт опирается именно на это. Честно про границы. Эксперимент шёл на искусственных правилах про слова в ответе, с 60 задачами и двумя моделями одного семейства. В реальных файлах десятки строк, и там падения авторы не показали. Число «два повтора» проверено только в рамках теории.

Когда применять

Файлы постоянных инструкций для кодовых агентов (AGENTS.md, CLAUDE.md) → чистка после месяцев дописывания, особенно когда агент стал забывать базовое вроде тестов или запрета коммитить в main. Хорошо подходит и для проектов, где окружение поменялось, а старые правила остались. НЕ подходит для файла в 20 строк, где всё и так работает. Там чистить нечего, а доказательств пользы у авторов нет. Ещё: модель не решит за вас, что важно в проекте. Таблицу вердиктов нужно пробежать глазами.

Мини-рецепт

1. Заведи свалку для кандидатов: отдельный файл. Каждое новое «чтобы так больше не было» пишется туда, а не в основной файл.
2. Собери улики: 3–10 случаев, где агент ошибся. Бери выдержки из журналов сессий.
3. Позови модель-редактора: отдай ей файл, случаи и описание проекта. Попроси таблицу: правило, токены, как часто нужно, эффект при выполнении, вердикт.
4. Запрети лёгкий путь: прямо напиши «не удаляй правило только потому, что агент его игнорирует». Иначе модель пойдёт по очевидному пути.
5. Поставь потолок: 60 строк или меньше. Пусть объяснит, что и почему вытеснено.
6. Следи за рубильником: для безопасности и денег порог допуска можно снизить до одного случая. Добавь в критерии «цену ошибки», чтобы редкое, но дорогое правило не вылетело.
7. Проверь руками: дай 5 проверочных задач, сравни старую и новую версию. Меняй пачками по 5–10 правил, чтобы видеть, что помогло.

Примеры

[ПЛОХО] : Вот мой CLAUDE.md на 280 строк. Сократи, убери то, что агент всё равно не выполняет.
[ХОРОШО] : Ты — редактор файла инструкций для кодового агента. Ниже файл CLAUDE.md (бэкенд интернет-магазина на Python, оплата через ЮKassa, окружение — uv) и три случая сбоев. Для КАЖДОГО правила заполни строку: правило | токены | как часто бывает релевантно (часто / редко / почти никогда) | эффект при выполнении (польза / нейтрально / вред) | вердикт (оставить / удалить / объединить / вынести). Не удаляй правило только потому, что агент его игнорирует. Сначала оцени цену нарушения. Вредные и устаревшие правила удаляй первыми. Целевой размер — не более 60 строк. Новых правил не добавляй, пробелы вноси в список кандидатов с числом повторов. В конце дай итоговый файл и 5 проверочных задач. Что получится: «используй conda» в проекте на uv получит вердикт «вред, удалить». «Не коммить в main» и «запускай pytest» агент часто пропускает, но их нарушение дорого стоит, так что они остаются. Правило про слово «уважаемый» в письмах уходит в кандидаты или выносится из постоянного файла.
Источник: Curating Always-Loaded Context for LLM Agents: A Capacitated Assortment Model with Censored Feedback
ArXiv ID: 2610.11007 | Сгенерировано: 2026-10-09 05:20

Проблемы LLM

ПроблемаСутьКак обойти
Правило, которое агент игнорирует, выглядит ненужнымЧистишь постоянный файл правил по логам сессий. Видишь: это правило не выполняется. Хочется удалить. Но логи показывают только одно: выполнено правило или нет. Полезно оно или вредно, из них не следует. Агент чаще пропускает трудные и важные правила. Они удалятся первыми. Лёгкие и безвредные останутся. Файл становится хужеОценивай правило по ценности, а не по исполнению. Считай так: как часто правило нужно, что будет при выполнении (польза, ничего, вред), сколько стоит нарушение, сколько токенов занимает. Нарушаемое, но дорогое правило оставь. Его можно переписать короче или поставить выше

Методы

МетодСуть
Очередь кандидатов вместо дописывания в файл — файл не пухнет от разовых случаевНовое замечание после сессии не идёт в файл. Запиши его в отдельный список «кандидаты» и веди счёт повторов. В файл правило попадает, когда проблема повторилась независимо. Разумный порог по умолчанию — 2 раза. Для критичного (деньги, безопасность, необратимые действия) хватит 1. Почему работает: разовый сбой часто случайность. Каждая строка стоит токенов в каждой сессии и отнимает внимание у остальных правил. Ещё одно ограничение: по логам видно только то, что было в файле. Пробел вскрывается лишь когда сбой уже случился. Повтор — надёжный сигнал, что пробел настоящий. Когда применять: любой постоянный запрос, который растёт со временем (файл правил агента, системный промпт, инструкции к боту). Когда не нужно: файл маленький и заведомо стабильный. Число «2» не проверено на живых агентах, подбирай под себя
Аудит правил по ценности с потолком размера — сжатие разросшегося файлаЗагрузи в один чат файл правил, 3–10 случаев сбоев и описание проекта. Попроси таблицу: правило \| токены \| как часто нужно \| эффект при выполнении \| вердикт (оставить / удалить / объединить / вынести). Задай жёсткий лимит строк (для небольшого проекта обычно 20–60). Правила для модели: не удалять только за игнорирование; вредные и устаревшие удалять первыми; новых правил не придумывать; пробелы вносить в кандидаты; в конце дать итоговый файл и 5 проверочных задач. Добавь в критерий «стоимость ошибки», чтобы редкие, но дорогие правила не вытеснялись частыми мелочами. Почему работает: модель хорошо классифицирует и сравнивает («часто или редко», «вредит или нет», «дублирует ли другое»). Лимит заставляет выбирать. Правило, которое вредит при выполнении (например, «используй conda» в проекте на uv), хуже бесполезного. Агент следует ему и портит работу. Как внедрять: меняй 5–10 правил за раз и прогоняй проверочные задачи на старой и новой версиях. Так видно, какая правка помогла. Ограничение: модель не знает, что важно именно в твоём проекте. Пробегай таблицу глазами, особенно строки «удалить»
📖 Простыми словами

Curating Always-Loaded Context forLLMAgents: A Capacitated AssortmentModelwith Censored Feedback

arXiv: 2610.11007

Большинство думает, что файлы конфигурации вроде CLAUDE.md или AGENTS.md — это бездонная помойка для правок. Но у языковых моделей есть жесткий лимит внимания: каждый лишний токен в постоянном контексте не просто жрет деньги на каждом запросе, он размывает фокус. Чем длиннее простыня правил, тем хуже агент соблюдает каждое из них. Наступает переломный момент, когда очередная мелкая строчка не помогает агенту, а тупо выключает критические инструкции.

Это как начальник-самодур, который сыплет сотней мелких указаний за пять минут. Сначала ты держишься, но на двухсотом замечании про оформление комментариев у тебя напрочь вылетает из головы главное: нельзя пушить в main. Формально всё зафиксировано, а по факту в голове у исполнителя каша, и он забивает на базовый pytest.

Спасает математический подход: модель ограниченного ассортимента (Capacitated Assortment Model). Относись к файлу как к полке магазина с платным входом. Выкидывай тухляк вроде старой conda, если проект давно на uv. Оставляй только топ-10 критических правил по ценности: запрет ломать базу на проде бьет запрет на слово "уважаемый". Задай жесткий лимит размера файла и держи его любой ценой.

Исследовали файлы для кодинга, но принцип универсален. Это работает для любых системных промптов, ботов поддержки и корпоративных баз знаний. Как только ты запихиваешь в постоянный контекст регламенты на все редкие случаи жизни, модель начинает лажать даже в примитивных задачах. Везде, где есть always-loaded context, железно действует закон: меньше инструкций — выше исполнительность.

Короче: хватит использовать инструкции как свалку для сиюминутных обид на нейросеть. Каждое новое правило должно вытеснять старое, иначе контекст превращается в бесполезный шум. Безжалостно вычищай неактуальное и держи лимит в 50-70 строк. Срежь половину мусора прямо сейчас — и твой агент внезапно поумнеет на ровном месте.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с