3,583 papers
arXiv:2610.18427 84 13 окт. 2026 г. FREE

Randomized Block Curation (RBC): проверка самописной памяти агента случайными A/B-запусками вместо доверия его собственной оценке

КЛЮЧЕВАЯ СУТЬ
Память, которую агент написал себе сам, может утянуть его на 70 пунктов ниже уровня «вообще без памяти». Сам агент этого не заметит. Метод RBC позволяет понять, какие блоки правил в CLAUDE.md или AGENTS.md реально помогают, а какие ломают результат. Каждый блок правил случайно включается или выключается, как монетка, и рандомизация показывает чистый эффект блока. В среднем получается 66,9 успеха против 55,5 у полного файла памяти и 54,1 вообще без памяти.
Адаптировать под запрос
⚡

TL;DR

RBC — способ отобрать, какие «уроки» из самописной памяти агента (плейбука) стоит подавать в промпт. Уроки группируются в 8 тематических блоков. На практических задачах каждый блок случайно включается или выключается (как монетка). Разница в успехе между запусками «с блоком» и «без» показывает, помогает блок или вредит. Оставляют блоки с положительным эффектом. Выращивают несколько версий плейбука и подают ту, что лучше всех показала себя на свежих задачах. «Без плейбука» всегда участвует как один из кандидатов.

Главная находка: самописная память агента может ощутимо вредить, и сам агент этого не видит. Один и тот же процесс обучения на тех же задачах, но в другом порядке, даёт то полезный плейбук, то вредный. В худшем случае успех падал почти на 70 пунктов ниже уровня «вообще без памяти». Агент помечает правило как полезное, потому что оно звучит разумно, а не потому что оно повышает успех. Например, правило «всегда вызывай завершение задачи с ответом» выглядело аккуратным и получило 123 пометки «полезно» и ноль «вредно». При этом оно заставляло модель выдавать ответ там, где его не ждали: в 69% задач против 37,5% без правила. Связь между пометками агента и реальным эффектом блоков почти нулевая.

Метод заменяет «агент сам решает, что оставить» на «решает измерение». Шагов три: измерить эффект каждого блока случайным включением, оставить положительные в рамках бюджета токенов, проверить кандидатов на свежих задачах. Итог: в среднем 66,9 успеха против 55,5 у полного плейбука и 54,1 вообще без плейбука.

🔬

Схема метода

ШАГ 0: Агент растит K=3 плейбука (задачи в разном порядке) → K списков уроков
ШАГ 1: Уроки → 8 тематических блоков (кластеризация по смыслу)
ШАГ 2: Практические задачи: каждый блок включён с вероятностью 1/2, независимо
        → разница среднего успеха «с блоком» − «без блока» = эффект блока
ШАГ 3: Оставить блоки с эффектом > 0, лучшие первыми, до бюджета (40% токенов)
        → «обрезанный» плейбук для каждого из K прогонов
ШАГ 4: Кандидаты: K обрезанных + K полных + «без плейбука»
        → прогнать на СВЕЖИХ практических задачах → подавать лучшего

В исследовании шаги 1–4 делает код (кластеризация и регрессия). Агент и сами уроки остаются прежними.

🚀

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

Задача: вы ведёте Telegram-магазин на Ozon и Wildberries. Claude Code уже полгода чинит бота заказов и после каждой задачи сам дописывает «уроки» в CLAUDE.md. Там набралось 140 правил. Последние недели агент стал странно себя вести: лезет в лишние файлы, переспрашивает очевидное, чаще ломает то, что работало. Нужно понять, какие блоки правил помогают, а какие вредят. Агента спрашивать бесполезно: он считает все свои правила полезными.

Промпт (в обычный чат, см. шаблон ниже в заполненном виде):

Ты помогаешь провести ручной эксперимент по методу Randomized Block Curation.

Контекст: у меня файл CLAUDE.md на 140 правил, которые агент написал себе сам после рабочих задач. Агент — Claude Code, работает с репозиторием Telegram-бота для заказов Ozon/Wildberries.

Шаг 1. Я пришлю правила. Раздели их на 8 тематических блоков (работа с git, тесты, API маркетплейсов, стиль кода, завершение задачи и т.д.). Выведи название блока и номера правил.
Шаг 2. Составь таблицу рандомизации на 24 тестовых запуска: строки — запуски, столбцы — блоки, в каждой клетке 1 (блок включён) или 0 (выключен), с вероятностью 1/2 независимо. К каждому запуску добавь собранный список файлов-блоков, которые нужно вставить в CLAUDE.md.
Шаг 3. Я прогоню 12 типовых задач из моего бэклога (каждую дважды, в разных строках таблицы) и верну оценку каждого запуска: 1 — задача решена, 0 — нет.
Шаг 4. Для каждого блока посчитай: средний результат запусков, где блок включён, минус средний результат запусков, где выключен. Сравнивай внутри одной и той же задачи.
Шаг 5. Оставь блоки с положительной разницей, начиная с самой большой, пока не наберётся 40% исходного объёма. Если положительных нет — рекомендуй работать без CLAUDE.md.
Шаг 6. Предложи проверку трёх кандидатов — «обрезанный файл», «полный файл», «пустой файл» — на 12 новых задачах, которых не было в шагах 2–4.

Начни с шага 1. Вот правила:
{вставить содержимое CLAUDE.md}

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

🧠

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

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

Сильная сторона: случайное включение делает запуски «с блоком» и «без блока» сравнимыми. Разница в успехе напрямую показывает эффект блока на успех, а не на правдоподобность. Все 8 блоков измеряются в одних и тех же запусках, а не по одному, поэтому нужно в 4,5 раза меньше запусков. Блоки (а не отдельные уроки) выбраны потому, что одно правило редко сдвигает успех сильнее шума при нескольких сотнях запусков.

Рычаги управления: - Число блоков (8) → влияет мало; можно взять 5–10. - Бюджет токенов (40%) → 20% и 60% сработали хуже; оставьте около 40% как старт. - Число прогонов роста K (3) → больше версий плейбука повышают шанс найти хорошую; два прогона с обрезкой равны трём прогонам без обрезки. - «Без плейбука» среди кандидатов → страховка. Если все версии вредят, победит пустая. - Свежие задачи для финального выбора → не используйте те же запуски, на которых мерили эффект, иначе победитель переоценён.

📋

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

Метод в статье реализован кодом. Ниже его ручной вариант с сохранением логики: блоки → случайное включение → разница средних → отбор по бюджету → проверка кандидатов, включая пустую память.

Ты помогаешь провести эксперимент Randomized Block Curation для самописной памяти агента.

<Контекст>
Агент: {агент_и_задачи}
Файл памяти (уроки, написанные агентом сам): {файл_памяти}
Критерий успеха одного запуска: {критерий_успеха}
Типовые задачи для проверки: {число_задач} задач из реального бэклога


<Шаги>
ШАГ 1 — БЛОКИ: раздели уроки на {число_блоков} тематических блоков (по умолчанию 8). Выведи: название блока, номера уроков, объём в токенах.

ШАГ 2 — РАНДОМИЗАЦИЯ: составь таблицу на {число_запусков} запусков. Столбцы — блоки. В клетке 1 (блок включён) или 0 (выключен), с вероятностью 1/2 независимо от других блоков. Для каждого запуска собери итоговый список блоков, который нужно вставить в файл памяти. Каждая задача должна встречаться в таблице несколько раз с разными наборами блоков.

ШАГ 3 — ПРОГОН: я выполню запуски и пришлю оценки (1/0 или от 0 до 1). Не интерпретируй до получения результатов.

ШАГ 4 — ЭФФЕКТ: для каждого блока посчитай средний успех запусков с блоком минус средний успех запусков без блока, сравнивая внутри одной и той же задачи. Выведи таблицу «блок — эффект» по убыванию.

ШАГ 5 — ОТБОР: оставь блоки с эффектом > 0, начиная с наибольшего, пока не наберётся {бюджет}% исходного объёма. Если ни у одного блока эффект не положителен — результат «пустая память».

ШАГ 6 — ПРОВЕРКА: если у меня несколько версий файла памяти (запуски роста), повтори шаги 1–5 для каждой. Затем предложи кандидатов: обрезанные версии, полные версии, пустая память. Опиши, как прогнать их на НОВЫХ задачах, которых не было в шагах 2–4, и как выбрать лучшего по среднему успеху.


Не оценивай уроки по тому, насколько они звучат разумно. Единственный критерий — эффект на успех из таблицы.
Начни с ШАГА 1. Вот файл памяти:
{файл_памяти}

Что подставлять: - {агент_и_задачи} — какой агент и что делает; - {файл_памяти} — текст файла (CLAUDE.md, AGENTS.md, сохранённый «чит-лист»); - {критерий_успеха} — то, что можно проверить однозначно: тесты прошли, заказ оформлен, ответ совпал с эталоном; - {число_блоков}, {число_запусков}, {бюджет} — 8, 24–50 и 40 как отправная точка.

🚀 Быстрый старт — вставь в чат:

Вот шаблон метода Randomized Block Curation. Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, как выглядит ваша память, чем измерять успех запуска и сколько задач вы реально можете прогнать. Критерий успеха нужен, потому что без него разницу «с блоком» и «без блока» не посчитать. Размер выборки определяет, сколько блоков можно честно сравнить.

⚠️

Ограничения

⚠️ Нужна проверяемая метрика успеха: метод измеряет эффект по результату запуска. Если «хорошо или плохо» решается на глаз и спорно, разница средних утонет в шуме.

⚠️ Нужно много запусков: в исследовании оценка опиралась на сотни и тысячи запусков. Ручной вариант на 24 запуска даёт грубую оценку знака эффекта, а не точные числа. Выводы о блоках с небольшим эффектом ненадёжны.

⚠️ В исследовании метод — код: кластеризацию, рандомизацию и регрессию с поправкой на сложность задач в статье делает программа. Ручной вариант выше — упрощение. Его можно собрать с помощью LLM, но шумов в нём больше.

⚠️ Плейбук, который переписывается целиком: в Dynamic Cheatsheet уроки менее отделимы друг от друга, и обрезка не дала выигрыша (61,1 против 61,3 у полного). Метод режет только тогда, когда блоки реально разделимы.

⚠️ Основной выигрыш — от выбора, а не от обрезки: большая часть эффекта приходит из двух вещей: вырастить несколько версий и сравнить их с «пустой» памятью на свежих задачах. Обрезка по блокам добавляет сверху около одного пункта на ACE (67,2 против 66,1) и экономит токены. Если сил на полный метод нет, начните с простого A/B «память против без памяти».

⚠️ Взаимодействие блоков: эффект блока усредняется по всем сочетаниям. Блок, который работает только в паре с другим, получит заниженную оценку. Финальная проверка целых плейбуков страхует от этого.

⚠️ Тестировали на агентных бенчмарках: AppWorld, WebShop, ALFWorld — с автоматической оценкой. Перенос на офисные и творческие задачи не проверялся.

🔍

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

Команда начала с вопроса «а нужна ли вообще починка?». Они выращивали по три плейбука на каждую из 11 комбинаций «модель + бенчмарк» в системе ACE. Модели были открытые: Qwen и Gemma. Плейбук считали вредным, если он отставал от запуска без плейбука больше чем на 5 пунктов; повторный замер двигал оценку максимум на 5, поэтому такая разница не шум. Результат оказался жёстким: на одной связке «модель + бенчмарк» плейбук поднимал успех с 74,9 до 97,5, а на другой каждый плейбук вредил, один из них — на 69,6 пункта. Один и тот же процесс на тех же задачах в другом порядке давал результаты 82,5, 58,9 и 30,0 при 78,4 без памяти.

Следующий вопрос: а пусть агент сам выкинет вредные уроки по своим пометкам «полезно/вредно»? Не помогло: в трёх из четырёх случаев «обрезанный по пометкам» плейбук всё равно вредил. Корреляция между пометками агента и измеренным эффектом блоков оказалась всего 0,21. Самые вредные блоки несли больше пометок «полезно», чем почти все остальные. Это и есть главное открытие: агент оценивает правдоподобие, а не пользу.

Затем RBC сравнили с шестью подходами: «без плейбука», «целиком», по пометкам агента, по сходству с задачей (как в ReasoningBank), случайный отбор и сильный конкурент Best-Full, который выбирает лучший целый плейбук или пустую память по практическим задачам. Все методы получали одни и те же плейбуки и задачи при одинаковом бюджете токенов. Константы RBC подобрали на четырёх настройках без использования их тестовых задач и оставили неизменными на остальных пятнадцати. Итог на 19 настройках: 66,9 у RBC против 55,5 у «целиком» и 54,1 «без плейбука». На ACE RBC ни разу не проседал больше чем на 0,8 пункта ниже «без плейбука», а любой другой метод проседал минимум на 5,4.

Любопытная деталь: пять прогонов роста с выбором лучшего догоняют RBC на трёх, но подают на 27% больше токенов. Значит, обрезка не заменяется простым «выращу побольше». Ещё одна находка для практики: на Dynamic Cheatsheet, где уроки склеены в единый текст, обрезка не помогла, а RBC это распознал на практических задачах и просто вернул целый плейбук.

💡

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

💡 Адаптация для файла правил агента (CLAUDE.md, AGENTS.md): тот же принцип без регрессии. Берёте один файл, делите на 4–5 блоков, прогоняете одинаковый набор задач в 8–10 вариантах («всё», «без блока 1», «без блока 2» и т.д.), сравниваете. Это грубо, но показывает блок-вредителя. В исследовании так не делали (там случайное включение), но логика та же: оценивайте блок по эффекту, а не по тому, как он звучит.

Вот мой файл инструкций агента: {файл}
Раздели его на 5 тематических блоков. Составь план из 10 тестовых прогонов: 
вариант 0 — все блоки, варианты 1–5 — все блоки кроме одного, вариант 6 — пустой файл.
Для каждого варианта укажи, какие блоки вставить. Потом я пришлю результаты 
на {число_задач} одинаковых задач, и ты скажешь, какие блоки вредят.

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

Выпиши из файла правил те, которые применяются в КАЖДОЙ задаче (завершение, формат ответа, 
общие запреты). Для каждого объясни, какое поведение оно толкает и в каких случаях 
оно может навредить. Эти блоки проверим первыми.

Экстраполяция: правило «память — это решение, а не умолчание». Любой файл заметок, который агент ведёт сам (память в ChatGPT, проектные заметки, «уроки»), стоит иметь в двух вариантах и периодически сравнивать «с памятью» и «без» на пяти-десяти реальных задачах. Если разницы нет, оставляйте пустой вариант: он дешевле по токенам и не рискует занести вредное правило. Выводы статьи про память (RBC) на такую практику прямо не проверялись, это перенос логики.

🔗

Ресурсы

  • Работа: Reliable Memory from Unstable Growth: Curating Self-Written Agent Playbooks with Randomized Experiments
  • Авторы: Hoang Pham, Cong-Duy Nguyen, Dong Le, Ponhvoan Srey, Anh Tuan Luu — Nanyang Technological University и VinUniversity
  • Код: анонимный репозиторий anonymous.4open.science/r/rbc (указан в статье)
  • Связанные системы: ACE (Zhang et al., 2026), Dynamic Cheatsheet (Suzgun et al., 2026), ReasoningBank (Ouyang et al., 2026), RSEA / Best-Full (Nguyen et al., 2026)
  • Бенчмарки: AppWorld, WebShop, ALFWorld
  • Близкие идеи: ContextCite (Cohen-Wang et al., 2024), значение Банцафа (Banzhaf, 1965)

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

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

Память, которую агент написал себе сам, может утянуть его на 70 пунктов ниже уровня «вообще без памяти». Сам агент этого не заметит. Метод RBC позволяет понять, какие блоки правил в CLAUDE.md или AGENTS.md реально помогают, а какие ломают результат. Каждый блок правил случайно включается или выключается, как монетка, и рандомизация показывает чистый эффект блока. В среднем получается 66,9 успеха против 55,5 у полного файла памяти и 54,1 вообще без памяти.

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

Агент ставит правилу отметку «полезно», когда оно звучит разумно. Реальный эффект на успех он не проверяет. Правило «всегда вызывай завершение задачи с ответом» получило 123 отметки «полезно» и ноль «вредно». Жесть: модель из-за него выдавала ответ там, где его не ждали. Это было в 69% задач против 37,5% без правила. Связь между отметками агента и реальным эффектом почти нулевая. Поэтому правила делят на 8 тематических блоков (блок = группа уроков по смыслу). Каждый запуск получает случайный набор блоков. Решает не мнение агента, а разница успеха между запусками с блоком и без него. Это как судья-таймер вместо судьи, которому понравилась речь спортсмена. Дальше оставляют только блоки с плюсом, примерно 40% объёма. Финалистов проверяют на свежих задачах. Пустая память всегда среди кандидатов.

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

Агент видит свои уроки только в тех запусках, где они были. Сравнить «с правилом» и «без правила» он не может. Правило, которое влияет на каждый запуск, собирает отметки «полезно» в каждом, даже если вредит. Ещё одна проблема: порядок задач при обучении. Те же задачи в другом порядке дают то полезную, то вредную память. Монетка стирает связь блока с типом задачи и порядком обучения, и остаётся честная разница успеха. Все 8 блоков меряют в одних и тех же запусках. Нужно в 4,5 раза меньше запусков, чем при проверке по одному. Меряют блоки, а не отдельные правила: одно правило тонет в шуме. Главный выигрыш даёт не обрезка, а выбор. Вырасти несколько версий памяти и сравни их с пустой на свежих задачах. Обрезка по блокам добавляет сверху около одного пункта (67,2 против 66,1) и экономит токены.

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

Агенты с самописной памятью (CLAUDE.md, AGENTS.md, чит-листы) → когда агент стал хуже, а правил накопились десятки и сотни. Условие: есть проверяемый критерий успеха, например тесты прошли или заказ оформлен. НЕ подходит, если оценка «хорошо или плохо» делается на глаз. Не подходит и при малом числе запусков: на 24 запусках метод даёт только знак эффекта, а не точные цифры. Для памяти, которая переписывается целиком, он тоже слаб. В Dynamic Cheatsheet обрезка дала 61,1 против 61,3 у полной версии. Проверяли только на агентных задачах (AppWorld, WebShop, ALFWorld). Для творческих и офисных задач перенос не проверен.

Мини-рецепт

1. Определи успех: одно число на запуск. Тесты прошли — 1, не прошли — 0.
2. Нарежь память на блоки: 8 тематических групп правил (git, тесты, завершение задачи и т.д.). Попроси модель выписать номера правил и объём каждого.
3. Подбрось монетку: таблица на 24–50 запусков. Блок включён (1) или выключен (0) с вероятностью 1/2, независимо от других.
4. Прогони реальные задачи: 12 типовых задач из бэклога, каждую несколько раз с разными наборами блоков.
5. Посчитай разницу: средний успех с блоком минус без блока. Сравнивай внутри одной задачи.
6. Оставь плюсовые блоки: от самого сильного, пока не наберётся около 40% исходного объёма. Нет ни одного плюса — работай без памяти.
7. Проверь на свежих задачах: три кандидата: обрезанный файл, полный файл, пустой файл. Задачи должны быть новые, иначе победитель переоценён.
8. Нет сил на всё это: начни с простого A/B «память против без памяти». Уже это ловит большую часть выигрыша.

Примеры

[ПЛОХО]: `Посмотри на мой CLAUDE.md и скажи, какие правила лишние` Агент ответит, что все правила разумные. Он оценивает, как правила звучат, а не как они влияют на результат. [ХОРОШО]: `Проведи эксперимент Randomized Block Curation. У меня CLAUDE.md на 140 правил, Claude Code чинит бота заказов для Ozon и Wildberries. Шаг 1: раздели правила на 8 тематических блоков, выведи название и номера правил. Шаг 2: составь таблицу на 24 запуска, где каждый блок включён (1) или выключен (0) с вероятностью 1/2 независимо. К каждому запуску добавь список блоков для вставки в файл. Шаг 3: я прогоню 12 задач по два раза и верну оценки 1 или 0. Не интерпретируй до моих результатов. Шаг 4: для каждого блока посчитай средний успех с блоком минус без блока, сравнивая внутри одной задачи. Шаг 5: оставь плюсовые блоки до 40% объёма. Не оценивай правила по тому, насколько они звучат разумно. Начни с шага 1. Вот правила: {содержимое CLAUDE.md}` После прогонов выяснится, что блок «завершение задачи», который агент считал лучшим, даёт минус. Его выкидывают. [ПЛОХО]: `Оставь только полезные уроки из памяти и работай дальше` [ХОРОШО]: `Сравни три варианта на 12 новых задачах, которых не было в замерах: обрезанный файл, полный файл и пустой файл. Прогони каждый вариант на каждой задаче. Выбери лучший по среднему успеху.` Пустой файл тоже участвует. Если память вредит, победит он.
Источник: Reliable Memory from Unstable Growth: Curating Self-Written Agent Playbooks with Randomized Experiments
ArXiv ID: 2610.18427 | Сгенерировано: 2026-10-14 23:40

Проблемы LLM

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

Методы

МетодСуть
Случайное включение блоков правил — измерение реальной пользыЧто делать. 1) Раздели длинный набор правил на 5–10 тематических блоков. 2) Составь таблицу запусков. Строка — один запуск, столбец — блок. В клетке 1 (блок включён) или 0 (выключен). Каждая клетка выпадает как монетка, независимо от других. 3) Прогони задачи по таблице. Оценивай каждый запуск однозначно: 1 решено, 0 нет. 4) Для каждого блока посчитай средний успех с блоком минус средний успех без него. Сравнивай внутри одной и той же задачи. 5) Оставь блоки с эффектом выше нуля, начиная с самых сильных. Остановись на бюджете объёма, например около 40% от исходного. Если положительных блоков нет, работай без правил. Почему работает. Случайный выбор делает запуски "с блоком" и "без блока" сравнимыми. Разница показывает эффект на успех, а не на правдоподобность. Все блоки проверяются в одних и тех же запусках. Это требует в разы меньше запусков, чем проверка по одному. Блоки берут вместо отдельных правил. Одно правило сдвигает успех слабее шума, а блок даёт заметный сигнал. Когда да. Есть проверяемый критерий успеха: тесты прошли, ответ совпал с эталоном. Есть набор типовых задач. Правил много, и их можно разбить на независимые блоки. Когда нет. Успех оценивается "на глаз" и спорно. Тогда разница утонет в шуме. Правила переписываются целиком и не делятся на блоки. Мало запусков: 24 запуска дают только знак эффекта, не точные числа. Оговорка. Блок, который работает только в паре с другим, получит заниженную оценку. Поэтому в конце проверь итоговый набор целиком на новых задачах. Подходит не только для памяти агента. Так можно проверять любой длинный системный промпт из блоков
📖 Простыми словами

Reliable Memory from Unstable Growth: Curating Self-WrittenAgentPlaybooks with Randomized Experiments

arXiv: 2610.18427

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

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

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

Метод обкатали на коде и магазинах, но принцип универсален. Такой же беспощадный отсев жизненно необходим любым сложным промптам, базам знаний для RAG и CRM-агентам. Везде, где ты месяцами копишь якобы «полезные уточнения», добрая половина из них давно превратилась в скрытый саботаж.

Вывод простой: перестань верить нейросети, что её самописный регламент «очень важен». Безжалостный A/B-тест бьёт любую логику: руби инструкции на куски, отключай их вслепую и замеряй чистый результат на метриках. Выкинешь псевдоумный балласт — агент сразу перестанет страдать фигнёй на ровном месте.

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

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

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