3,583 papers
arXiv:2610.12668 81 8 окт. 2026 г. FREE

ReHarness: обратная ревизия «уроков» агента после каждой задачи

КЛЮЧЕВАЯ СУТЬ
Многие методы «умной памяти» для агентов оказались хуже агента вообще без памяти. Причина простая: записанный урок никто не проверяет. ReHarness позволяет чинить старые уроки после каждой новой задачи, а не только добавлять новые. Фишка: после задачи отдельный проход берёт использованные уроки и смотрит, помогли они или навредили. Затем обратная ревизия переписывает их: добавляет условия применимости и режет слишком смелые обобщения. Правило жёсткое: новые факты в урок берутся только из задачи, где он родился. В проверке авторов больше 95% утверждений в исправленных уроках остались подтверждёнными.
Адаптировать под запрос
⚡

TL;DR

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

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

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

🔬

Схема метода

ШАГ 1 (прямое чтение): достаём k самых похожих уроков → агент решает задачу → получаем результат
ШАГ 2 (обратная ревизия): для КАЖДОГО использованного урока берём
        [урок + исходная задача, из которой он выведен + итог текущей задачи]
        → переписываем урок: добавляем условия, убираем лишнее
        (новые факты — только из исходной задачи)
ШАГ 3 (прямая запись): из текущей задачи пишем НОВЫЙ урок,
        опираясь на уже исправленные уроки как на образцы
        → в память: исправленные старые + новый

Каждый шаг — отдельный вызов модели (в авторской реализации — автоматический конвейер).
🚀

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

Задача: Селлер на Wildberries ведёт в Claude Project файл «уроки» для генерации карточек товара. Первый урок вывели на пауэрбанках: «в заголовок — цифры (ёмкость) и ключевик в первые 3 слова, эмодзи не нужны». Потом тот же урок применили к детской одежде. Заголовок получился сухим, конверсия упала. Урок остался в файле и снова всплывёт на следующей карточке из одежды.

Промпт:

Ты — ревизор «уроков» для генерации карточек товара на Wildberries.

УРОК, КОТОРЫЙ ИСПОЛЬЗОВАЛИ:
«В заголовок — цифры (ёмкость, размер) и главный ключевик в первые 3 слова. Эмодзи не нужны.»

ИСХОДНАЯ ЗАДАЧА, ИЗ КОТОРОЙ ВЫВЕДЕН УРОК:
Карточка «Пауэрбанк 20000 mAh». Вариант с цифрами и ключевиком в начале
дал CTR 6,1% против 4,3% у «эмоционального» заголовка.

ТЕКУЩАЯ ЗАДАЧА И ЕЁ РЕЗУЛЬТАТ (используй только как проверку, не как источник фактов):
Карточка «Комбинезон детский демисезонный». Заголовок по уроку: «Комбинезон 80 см
демисезонный для малышей». CTR 2,2% при среднем по категории 4,0%.

ПРАВИЛА РЕВИЗИИ:
1. Реши, подтвердился урок, был слишком общим или устарел.
2. Если слишком общий — добавь условия применимости («только для техники»,
   «если покупатель выбирает по характеристикам»).
3. Любое новое утверждение в уроке должно следовать из ИСХОДНОЙ задачи.
   Факты из текущей задачи в урок не переноси.
4. Не выдумывай причин, которых нет в данных. Если данных не хватает,
   так и напиши: «гипотеза, не подтверждена».

ФОРМАТ ОТВЕТА:
- Вердикт (подтверждён / слишком общий / устарел)
- Что именно в исходной задаче поддерживает правку
- Исправленный урок (1-3 предложения, с условиями применимости)

Результат: Модель выдаст вердикт и коротко объяснит, на каком основании он вынесен. Затем даст переписанный урок с ограничением: правило про цифры и ключевики относится к техникам с выбором по характеристикам. Если в исходной задаче нет данных про одежду, она честно пометит это как гипотезу. Вторым запросом попросите записать новый урок из текущей задачи (шаг 3).

🧠

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

Слабость. Модель, которая пишет урок после одной задачи, склонна обобщать: «это сработало, значит сработает всегда». Такой урок потом выглядит как установленный факт и ведёт агента мимо. Если уроки только добавлять, старый ошибочный урок продолжает всплывать рядом с похожими запросами. Новый урок его не отменяет.

Сильная сторона. Модель хорошо сравнивает текст урока с фактическим исходом и находит, чего в уроке не хватало. Если дать ей и исходную задачу, и итог новой, она неплохо формулирует условия применимости. Это обычная работа с текстом, а не прогнозирование.

Как метод это использует. Ревизия получает обратную связь: новая задача показывает, где урок споткнулся. Ограничение «новое только из исходной задачи» не даёт модели просто вписать в урок свежий ответ или подогнать его под одну точку. В проверке авторов более 95% утверждений в исправленных уроках оставались подтверждёнными исходной задачей.

Рычаги управления: - Число уроков на ревизию (k) → меньше уроков дешевле, но часть ошибок не поправится. - Правило «только из исходной задачи» → ослабишь, и урок начнёт подгоняться под последний случай. Оставь жёстким. - Сигнал результата → чем точнее итог (CTR, принято или отклонено клиентом, тесты прошли), тем лучше ревизия. Чем шумнее итог, тем меньше пользы. - Формат вердикта («подтверждён / слишком общий / устарел») → удобно фильтровать, какие уроки менять.

📋

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

Это реконструкция по описанию в статье. Точные тексты промптов авторы вынесли в приложение A, в предоставленном фрагменте его нет.


Ты — ревизор памяти агента. Твоя работа — проверить, не стал ли записанный урок
вредным или устаревшим, и переписать его с условиями применимости.



{урок_который_использовали}
{исходная_задача_и_её_результат}
{текущая_задача_ответ_и_результат}



1. Сравни урок с итогом в CurrentTrajectory: помог он, навредил или не повлиял?
2. Если навредил или повлиял слабо — найди, чего не хватало в уроке:
   • пропущенное свидетельство из SourceTrajectory;
   • слишком смелое обобщение;
   • отсутствие условий применимости.
3. Перепиши урок так, чтобы с ним агент не ошибся бы в CurrentTrajectory.
4. ЖЁСТКОЕ ПРАВИЛО: CurrentTrajectory — только проверка.
   Любое новое утверждение должно подтверждаться SourceTrajectory.
   Если данных не хватает — пометь «гипотеза».



Вердикт: подтверждён / слишком общий / устарел
Основание из SourceTrajectory: {...}
Исправленный урок: {1-3 предложения с условиями}




Вот исправленные уроки: {исправленные_уроки}.
Вот текущая задача: {текущая_задача_и_результат}.
Запиши ОДИН новый урок. Оставляй только то, что подтверждено данными.
Урок должен дополнять исправленные, а не повторять их.

Что подставлять: {урок_который_использовали} — запись из вашего файла уроков. {исходная_задача_и_её_результат} — материал, из которого урок выведен. {текущая_задача_ответ_и_результат} — свежий случай, где урок применили, с итогом.

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

Вот шаблон ReHarness (ревизия «уроков» агента). Адаптируй под мою задачу: {опиши, какого агента ты ведёшь и какие уроки он копит}.
Задавай вопросы, чтобы заполнить поля.

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

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

⚠️

Ограничения

⚠️ Нужен внятный сигнал результата: метод лучше всего работает, когда итог диагностичен: задача решена или нет, тесты прошли или упали. Там, где результат сильно зависит от случая (в эксперименте это покер со скрытыми картами), выигрыш был лишь небольшим. Ревизия по одному случайному исходу ухудшает уроки.

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

⚠️ Прирост над сырой историей скромный: хранить сырые прошлые случаи оказалось сильным базовым вариантом. Над ним ReHarness выигрывает, но статистическая значимость лишь на грани. Если задач мало, проще положить всю историю в контекст.

⚠️ Дороже простого поиска похожих случаев: на задачах с Claude метод стоил примерно в три раза больше, чем «достать несколько похожих случаев» (около 254 против 85 долларов за прогон), но дешевле полной истории (около 314 долларов).

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

🔍

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

Идея была простой: если память агента только пополнять, ошибочные уроки живут вечно. Авторы взяли три набора потоковых задач, где агент решает последовательность заданий и должен учиться по ходу: от работы с кодом и базами данных до длинных текстов и планирования. Всего вышло 16 задач. Проверяли на трёх современных моделях и сравнивали с шестью конкурентами: Mem0, банк уроков, ACE и другие. Были и два «сырых» варианта: вся история целиком и только похожие случаи. Метрика — нормированный прирост над той же моделью без памяти. Поток шёл строго онлайн: без обучающей и проверочной выборок и без повторного прохода по задачам.

ReHarness показал лучший средний прирост (0,240 против 0,168 у лучшего базового варианта) и вышел на первое место или разделил его в восьми из девяти сочетаний «набор задач — модель». Удивило то, что сырая история оказалась сильнее многих «умных» методов с хранением выводов. Значит, плохо поддерживаемые уроки хуже, чем отсутствие уроков.

Чтобы проверить, что ревизия не «подглядывает» в ответ, авторы разложили исправленные уроки на отдельные утверждения. Более 95% из них подтверждались исходной задачей, а утечки из текущей составляли около 1-2%. Контрфактический тест дал более сильный результат. Исправленный урок применили к той же задаче, по которой его правили. Прирост вырос до 0,335 против 0,144 без ревизии. Значит, правки действительно содержат нужную информацию. Практический вывод: ревизия работает, когда итог диагностичен, и слабее всего там, где результат шумный.

💡

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

🔧 Техника: правила в CLAUDE.md / AGENTS.md → условия применимости вместо вечных правил

После сессии с агентом (Claude Code, Cursor) вставьте в чат:

Вот правила из моего файла инструкций, которые агент применял в этой сессии: {правила}.
Вот что в итоге произошло: {итог: что пошло не так, что сработало}.
Для каждого правила: подтвердилось / слишком общее / устарело.
Слишком общие перепиши с условием «применять только если…».
Не добавляй ничего, чего нет в истории, из которой правило выведено.

Это ручная версия ревизии для файла инструкций. Статья проверила идею на автоматическом конвейере, а перенос на файлы инструкций — наша экстраполяция.

🔧 Техника: проверка «предотвратил бы урок ошибку?» → быстрая диагностика

Идея из контрфактического теста статьи:

Если бы вместо старого урока в памяти стоял исправленный вариант, предотвратил бы он ошибку в этой задаче? Да/нет и почему.

Если «нет», правка бесполезна, и её лучше отбросить.

🔗

Ресурсы

  • Recurrent Harness for Agentic Continual Learning (ReHarness). Авторы и университет в предоставленном фрагменте не указаны. Промпты опубликованы в приложении A статьи.
  • Бенчмарки, на которых проверяли: CL-Bench (Asawa et al., 2026), MemoryBench (Ai et al., 2026), MemoryArena (He et al., 2026).
  • Конкурирующие методы: Mem0 (Chhikara et al., 2025), ACE (Zhang et al., 2026c), GEPA (Agrawal et al., 2026), «Разнообразные размышления» DoT (Lingam et al., 2025), банк уроков RBank (Ouyang et al., 2026).

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

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

Многие методы «умной памяти» для агентов оказались хуже агента вообще без памяти. Причина простая: записанный урок никто не проверяет. ReHarness позволяет чинить старые уроки после каждой новой задачи, а не только добавлять новые. Фишка: после задачи отдельный проход берёт использованные уроки и смотрит, помогли они или навредили. Затем обратная ревизия переписывает их: добавляет условия применимости и режет слишком смелые обобщения. Правило жёсткое: новые факты в урок берутся только из задачи, где он родился. В проверке авторов больше 95% утверждений в исправленных уроках остались подтверждёнными.

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

Цикл из трёх шагов, как у обычной памяти, плюс один лишний. 1. Прямое чтение: достаёшь k похожих уроков, агент решает задачу, ты видишь итог. 2. Обратная ревизия: на каждый использованный урок даёшь модели три вещи: сам урок, исходную задачу и итог текущей. Она переписывает урок. 3. Прямая запись: из текущей задачи пишешь один новый урок. Образцами служат уже исправленные старые. Текущая задача только проверяет урок, источником фактов служит лишь исходная. Это как проверка гипотезы в науке: новый опыт говорит «сработало или нет», но не дописывает теорию задним числом. Без этого правила модель просто вписывает в урок свежий ответ и подгоняет его под последний случай.

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

Модель, которая пишет урок после одной задачи, любит обобщать. «Сработало один раз, значит сработает всегда». Потом такой урок выглядит как установленный факт. Старый вредный урок продолжает всплывать рядом с похожими запросами, а новый урок его не отменяет. При этом сравнить текст урока с реальным исходом модель умеет хорошо. Это обычная работа с текстом, а не прогноз. Увидела, где урок споткнулся, и дописала условия. Новая задача показывает, где урок споткнулся, а ограничение «факты только из исходной задачи» не даёт подогнать урок под одну точку. Трезво: над простым хранением сырых прошлых случаев прирост скромный, значимость на грани. Зато такая сырая история в контекст влезает не всегда, а ReHarness дешевле полной истории: примерно 254 доллара за прогон против 314.

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

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

Мини-рецепт

1. Заведи файл уроков: к каждому уроку приложи исходную задачу и её результат. Без этого ревизии нечем опереться.
2. Реши задачу с уроками: возьми 3-5 самых похожих и запиши итог в цифрах или «принято/отклонено».
3. Запусти ревизора отдельным запросом: на каждый использованный урок свой запрос. Не мешай всё в одну кучу.
4. Задай роль и правило: <роль>ревизор памяти агента. Новые утверждения только из исходной задачи. Не хватает данных — пиши «гипотеза, не подтверждена».
5. Потребуй вердикт: подтверждён, слишком общий или устарел. Так видно, какие уроки менять, а какие не трогать.
6. Перезапиши урок: в файл идёт исправленная версия на 1-3 предложения с условиями применимости.
7. Запиши новый урок вторым запросом: дай исправленные уроки как образцы и попроси один урок, который их дополняет, а не повторяет.

Примеры

[ПЛОХО] : Вот итог по карточке детского комбинезона, добавь в уроки: заголовок с цифрами не сработал, цифры больше не используем. Ошибка: один провал выкинул правило, которое на пауэрбанках давало кликабельность 6,1% против 4,3%. Урок не уточнили, его просто сломали.
[ХОРОШО] : Ты — ревизор «уроков» для карточек товара. УРОК: «В заголовок цифры и ключевик в первые 3 слова, эмодзи не нужны». ИСХОДНАЯ ЗАДАЧА: пауэрбанк 20000 mAh, заголовок с цифрами дал кликабельность 6,1% против 4,3% у эмоционального. ТЕКУЩАЯ ЗАДАЧА (только проверка, не источник фактов): детский комбинезон, заголовок по уроку дал 2,2% при среднем по категории 4,0%. Новые утверждения бери только из исходной задачи. Не хватает данных — пиши «гипотеза, не подтверждена». Ответ: вердикт, основание из исходной задачи, исправленный урок на 1-3 предложения с условиями. Результат: вердикт «слишком общий». Правило про цифры сужается до техники, где покупатель выбирает по характеристикам. Про одежду модель честно пишет «гипотеза», а не выдумывает причину.
Источник: Recurrent Harness for Agentic Continual Learning
ArXiv ID: 2610.12668 | Сгенерировано: 2026-10-12 05:20

Проблемы LLM

ПроблемаСутьКак обойти
Правило, выведенное из одного случая, со временем начинает вредитьМодель решила задачу и записала вывод: «делай так». Она склонна обобщать: сработало раз, значит сработает всегда. Вывод в заметках выглядит как установленный факт. Задачи меняются, а правило остаётся. Оно всплывает рядом с похожими запросами и повторяет ошибку. Новые записи старое правило не отменяют. Это касается любых файлов с правилами, заметок и памяти агента.Не только копи правила, но и пересматривай их после использования. Для каждого применённого правила проверь итог. Если оно подвело, перепиши его с условиями применимости. Схема в разделе «Методы».

Методы

МетодСуть
Обратная ревизия правил — память, которая исправляетсяПосле задачи отдельным запросом проверь каждое правило, которое применяли. Подай три вещи: [правило] + [исходный случай, из которого оно выведено] + [итог текущей задачи]. Попроси вердикт: «подтверждено / слишком общее / устарело». Потом пусть модель перепишет правило: добавит условия («только для техники», «если выбор по характеристикам») и уберёт лишнее. Жёсткое правило: новые утверждения берутся только из исходного случая. Текущая задача служит лишь проверкой «сработало или нет». Добавь: «если данных не хватает, пиши "гипотеза, не подтверждена"». Почему работает: модель хорошо сравнивает текст правила с фактическим исходом и видит, чего не хватало. Запрет брать факты из текущего случая не даёт подогнать правило под последнюю точку. Порядок: 1) достань похожие правила и реши задачу; 2) перепиши использованные правила; 3) отдельным запросом запиши один новый вывод из этой задачи, опираясь на исправленные правила. Когда да: задачи повторяются и меняются, есть чёткий итог (метрика, тесты, решение клиента), правил много. Когда нет: мало задач, проще дать всю историю случаев. Итог шумный или случайный. Нужен автоматический конвейер, вручную это громоздко. Метод примерно втрое дороже простого поиска похожих случаев.
📖 Простыми словами

Recurrent Harness forAgenticContinual Learning

arXiv: 2610.12668

LLM-агенты тупеют, когда пытаются учиться на собственном опыте. Модель делает вывод из одного случайного успеха, объявляет его абсолютным правилом и начинает пихать во все щели. Беда в том, что стандартная память агента просто копит такие заметки списком, превращая контекст в свалку вредных советов. Сработал один раз сухой текст на пауэрбанках — всё, агент решает, что эмодзи и прилагательные теперь запрещены законом для любых товаров.

Это как стажёр, который однажды пересолил суп и теперь вообще отказывается использовать соль даже в десертах. Формально парень сделал вывод, но бизнес от такой логики несёт убытки. Вместо адекватного опыта модель плодит идиотские сверхобобщения и упрямо тащит их в новые задачи, где они наглухо роняют конверсию.

Фреймворк ReHarness чинит эту дичь через контролируемое обновление уроков. После каждой задачи система запускает отдельный проход: берёт использованные правила и хладнокровно оценивает, помогли они или утопили результат. Если совет навредил, метод не городит новый костыль сверху, а переписывает старое правило: вычищает наглые обобщения и чётко прописывает границы, где этот трюк вообще имеет право работать.

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

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

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

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

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