TL;DR
Исследование показывает: если в контекст попали и старая, и новая версия одного факта, модель нередко отвечает по старой. Новая версия при этом лежит прямо перед глазами, а в промпте написано, что выше номер — новее. Авторы проверили это на агентной памяти: нумерованные заметки, поиск по ним (BM25) и замер, какой вариант выберет модель.
Главная боль: агент нашёл правильное обновление, и всё равно ответил по прежним данным. Обычно винят поиск. Здесь поиск отработал идеально: свежий факт был в подборке в 100% случаев. Когда в подборку добавили заметки, ответы стали хуже: на 6K-истории точность упала с 45% до 32%. Ошибки сосредоточились на вопросах, где в подборке была и устаревшая версия. Если заменить одну посторонних заметку на устаревшую версию того же факта, точность маленькой модели падает со 100% до 44,6%. Посторонняя заметка того же размера такого вреда не делает. Устаревший факт вредит сильнее, чем просто мусор.
Практический вывод: не полагайся на фразу «новее — выше номер». Надёжнее убрать из рабочего контекста то, что устарело. Авторы советуют списывать в архив, понижать в выдаче или явно помечать замещённые факты. Сами они эти меры не проверяли.
Схема метода
Это не метод, а находка. Эксперимент построен так:
УСЛОВИЕ A: [свежий факт] + 3 посторонних факта → точность 100%
УСЛОВИЕ B: [свежий факт] + [старая версия] + 2 посторонних → точность 44,6% (малая модель)
→ 87,8% (более сильная)
Всё остальное одинаково: промпт, модель, размер контекста (4 заметки).
Правило для практики:
ПАМЯТЬ/БАЗА ЗНАНИЙ → найти пары «старое / новое» → старое убрать из рабочего набора (в архив) или пометить «НЕАКТУАЛЬНО» → только потом отдавать модели
Пример применения
Задача: Вы руководите отделом продаж в онлайн-школе и ведёте ассистента на заметках по сделкам. За три месяца файл памяти разросся. Там лежит и «цена курса 49 900 ₽», и «с 1 марта цена 59 900 ₽». Дедлайн оплаты менялся дважды. Менеджеры жалуются, что ассистент иногда называет клиентам прошлогоднюю цену. Сначала вы чистите память, и только потом даёте её агенту.
Промпт:
Ты — аудитор памяти ассистента отдела продаж.
Ниже нумерованные заметки. Чем больше номер, тем новее запись.
1. Курс «Продакт-менеджер»: цена 49 900 ₽, рассрочка 6 месяцев.
2. Основной контакт по сделке «Школа Т»: Ирина Соколова, HR-директор.
3. Дедлайн оплаты по сделке «Школа Т»: 15 февраля.
4. Курс «Продакт-менеджер»: цена 59 900 ₽ с 1 марта, рассрочка 12 месяцев.
5. Дедлайн оплаты по сделке «Школа Т» перенесён на 1 марта.
6. Основной контакт по сделке «Школа Т»: Алексей Громов, финдиректор (Ирина ушла в декрет).
7. Дедлайн оплаты по сделке «Школа Т» перенесён на 20 марта.
Задача:
1. Найди группы заметок, которые описывают один и тот же факт в разных версиях.
2. Для каждой группы укажи номер актуальной заметки и номера устаревших.
3. Выдай чистый список «АКТУАЛЬНО» — только действующие факты, без дублей по теме.
4. Отдельно выдай список «АРХИВ» — устаревшие заметки со ссылкой на заменившую их запись.
5. Если не уверен, что две заметки про один факт, не объединяй — перечисли их в блоке «СПОРНОЕ».
Результат: Модель выдаст три блока. «АКТУАЛЬНО» — действующие цена, контакт и дедлайн. «АРХИВ» — старые версии с указанием, какая запись их заменила. «СПОРНОЕ» — заметки, где связь неочевидна. В рабочую память агента кладёте только первый блок. Архив хранится отдельно, чтобы не потерять историю. Просмотрите результат глазами: это самое ненадёжное место процесса.
Почему это работает
Слабость. Модель не «читает по порядку» и не применяет правило о том, что новое отменяет старое. Она подбирает ответ по тому, что подходит вопросу. Старая версия подходит вопросу так же хорошо, как новая, а иногда лучше: в исследовании старые значения часто совпадали с тем, что модель и так знала о мире. Приписка «выше номер = новее» не гарантирует, что она сработает.
Сильная сторона. Если в контексте остался только один вариант факта, модель отвечает почти безошибочно. В контрольном условии у обеих моделей было 100%. А 97% было при подаче одной точечной заметки.
Как метод это использует. Конфликт убирается до модели, а не разрешается внутри неё. Вы не просите модель выбрать версию, а даёте ей одну версию.
Рычаги: - Размер подборки. Меньше заметок значит меньше шансов, что рядом окажется старая версия. В исследовании подборка из 64 токенов обгоняла 512 на обеих историях. - Пометки статуса. Добавьте в каждую заметку дату и статус «актуально / заменено». Это мера, которую авторы рекомендуют, но не тестировали. - Архив отдельно от рабочей памяти. Историю не теряем, но агент её не видит, пока не спросите. - Проверка перед выдачей. Перед ответом на критичный вопрос (цена, дедлайн, юридические условия) попросите агента процитировать заметку, на которую он опирается.
Шаблон промпта
Ниже дословная логика «замороженного» промпта из исследования в переводе. Он сообщает модели правила хронологии. Важно: в исследовании именно с этим промптом модели ошибались, пока в контексте была старая версия. Поэтому шаблон нужен как «хороший минимум», а главная защита — чистка памяти.
Используй только приведённые ниже нумерованные записи памяти как источник истины, даже если они противоречат общеизвестным фактам.
Записи идут по порядку времени: чем больше номер, тем новее запись, и она заменяет более старые записи о том же факте.
Верни только самую короткую формулировку ответа. Не объясняй.
ПАМЯТЬ:
{нумерованные_записи}
ВОПРОС: {вопрос}
Что подставлять: {нумерованные_записи} — заметки из вашей базы или файла памяти в хронологическом порядке, по возможности без устаревших версий. {вопрос} — запрос пользователя или агента.
Ограничения
⚠️ Только две небольшие модели: проверяли Qwen2.5 (7B) и Qwen3 (14B). Для ChatGPT, Claude и Gemini такого замера нет. Более сильная модель из пары ошибалась заметно реже (потеря 12%, а не 55%), так что на топовых моделях эффект, скорее всего, слабее. Но это предположение, а не результат.
⚠️ Синтетический бенчмарк: факты придуманы и противоречат реальности (например, «автор „Женитьбы Фигаро“ — Томас Кид»). Старые значения часто совпадали с тем, что модель знала из обучения. Поэтому нельзя сказать, что вредит именно «устарелость». Возможно, вредит «знакомое значение». Авторы прямо пишут, что механизм не доказан.
⚠️ Лекарство не проверено: вывод «помечать или архивировать устаревшее» — это рекомендация авторов. Сам эффект пометок они не измеряли.
⚠️ Узкий класс задач: одношаговые вопросы, цепочки обновлений не длиннее двух, лексический поиск. Для многошаговых вопросов, векторного поиска и готовых систем памяти вроде Mem0 результат не проверен.
⚠️ Не «меньше контекста всегда лучше»: в эксперименте нужный факт был в подборке всегда. Если резать контекст вслепую, можно потерять нужное.
Как исследовали
Исследователи взяли задачу FactConsolidation из бенчмарка MemoryAgentBench. Там есть история из сотен нумерованных заметок. Более поздняя заметка заменяет раннюю: например, сначала «автор — Бомарше», потом «автор — Томас Кид». Сначала они меняли размер подборки: брали от 64 до 512 токенов найденных заметок. Точность на 6K-истории падала монотонно, с 45% до 32%. При этом аудит с подсказкой (по правильному ответу) показал: свежая заметка была в каждой подборке. Значит, дело не в поиске. Потом разобрали вопросы: ошибки собирались там, где рядом лежала и старая версия (на вопросах без конфликта точность оставалась 88,5–100%).
Чтобы доказать вину именно старого факта, поставили аккуратный опыт на 74 вопросах с конфликтом. В условии A — свежая заметка и три посторонних. В условии B — свежая, старая версия и две посторонних. Размер тот же, промпт тот же. Qwen2.5 в A отвечал верно на все 74, в B — на 33. Все 41 ухудшение были «выбрал старое». У Qwen3 — 100% против 87,8%, девять ухудшений, все по старой версии. Повтор на 32K-истории дал ту же картину: 69% с малой подборкой против 58% с большой.
Что удивило: хронология была прописана в промпте, а модель всё равно хваталась за старое. Слабое место исследования — один бенчмарк и два Qwen. Выборка маленькая, и те же 74 вопроса использовали при разработке промпта.
Адаптации и экстраполяции
🔧 Техника: добавить «правило отбора» в файл инструкций агента → агент сам не тянет старое
Для CLAUDE.md или системного промпта агента с памятью (это моя адаптация, авторы её не тестировали):
Правила работы с памятью:
- Если в памяти есть две записи об одном и том же (цена, дедлайн, контакт, решение), используй только запись с более поздней датой.
- Если не можешь определить, какая из двух новее, не выбирай сам: спроси пользователя.
- Когда узнаёшь новый факт, который заменяет старый, не добавляй вторую запись: перепиши прежнюю или перенеси старую в раздел «Архив».
- Записи из раздела «Архив» не используй для ответов, пока пользователь не спросит про историю.
🔧 Техника: перед ответом попросить показать опору → поймать «залипание» на старом
Прежде чем ответить, процитируй номер и текст записи, на которую опираешься, и скажи, есть ли в памяти другая запись об этом же факте.
Эта проверка тоже не из исследования. Она ловит случаи, когда в контексте два конфликтующих значения.
Ресурсы
- Работа: When Retrieval Is Not Enough: Obsolete Facts in Agent Memory (NeurIPS 2026, Workshop PALM: Personalized, Aligned, Long-Term Memory for AI Systems)
- Код и данные: https://github.com/oleeviyababu/Memory_Conflict
- Бенчмарк: MemoryAgentBench (Hu, Wang, McAuley, ICLR 2026), задача FactConsolidation
- Близкие работы: Reddy & Challaram, «Don't ask the LLM to track freshness» (2026); Kurfali & Östling, «Conflicting needles in a haystack» (EMNLP 2025); Shi et al., «LLMs can be easily distracted by irrelevant context» (ICML 2023)
- Авторы: Oleeviya Babu Poikarayil, Tony Basil Babu, Abdulrahman Nahhas, Het Darshan Mehta, Jawid Ahmad Baktash, Ernesto William De Luca, Klaus Turowski. Университет Отто-фон-Герике, Магдебург; Университет Кералы; Технический университет Мюнхена.
