3,583 papers
arXiv:2608.20202 79 20 авг. 2026 г. FREE

MemTrapBench: как память в LLM превращается в ловушку, которая портит правильный ответ

КЛЮЧЕВАЯ СУТЬ
Модель 10 раз решала задачу через сложение и умножение. На 11-й раз нужен факториал — простой ход, который та же модель мгновенно находит без памяти. Но с историей чата она упрямо перебирает старые операции и не видит очевидного. Метод AdaptiveMem позволяет модели отличать полезный опыт от вредной привычки перед тем как отвечать. Один вопрос в промпте — применим ли этот старый паттерн к новой ситуации — заставляет модель сверяться, а не копировать вслепую.
Адаптировать под запрос

TL;DR

Оказывается, память в LLM — это не всегда плюс. Даже когда модель точно помнит прошлый разговор и информация в памяти абсолютно верна, она может заставить модель применить старый способ решения там, где нужен новый. Исследователи назвали это "когнитивными капканами" (cognitive traps) и разделили на два типа: фиксация на рассуждении (Reasoning Fixation) — модель зацикливается на прошлом паттерне решения, и искажение убеждений (Belief Distortion) — ложная посылка из старого диалога перебивает базовую логику безопасности.

Боль конкретная: если модель 10 раз решала задачу через сложение и умножение, а в 11-й раз нужен факториал — она упрямо перебирает старые операции и не видит очевидного простого решения, которое сама же находит без памяти. Хуже того: если модель раньше получила грубую критику за какое-то решение (даже неверную), она потом избегает этого решения даже когда оно правильно для нового случая — что-то вроде выученной беспомощности.

Авторы предлагают простое решение — AdaptiveMem: promt-инструкцию, которая заставляет модель перед использованием памяти явно спросить себя "применим ли этот прошлый паттерн к текущей ситуации, или условия изменились". Это не архитектурное изменение, а добавка к системному промпту, которая работает с любой системой памяти.


🔬

Схема метода

ШАГ 1: Модель получает запрос + историю (память)
ШАГ 2: Перед ответом — явная проверка: "Это правило/паттерн/фидбек 
        из истории применимо к ТЕКУЩИМ условиям задачи?" → да/нет
ШАГ 3: Если условия изменились → рассуждать с нуля, игнорируя старый паттерн
ШАГ 4: Дать финальный ответ, основанный на текущей задаче

Все шаги выполняются в одном промпте — как инструкция, добавленная к обычному системному промпту с памятью.


🚀

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

Задача: у тебя в ChatGPT (с включённой памятью) или в Claude Project длинный чат с консультантом по бизнесу. Ты много раз обсуждал юнит-экономику доставки суши со своей кухней и курьерами на аутсорсе. Теперь ты открываешь точку по франшизе (другая модель: готовое меню, без своей кухни) и просишь пересчитать экономику.

Промпт (добавь в начало диалога или в custom instructions):

Перед тем как использовать любую информацию, расчёт или правило 
из истории нашего диалога — сначала проверь: применимо ли это 
к ТЕКУЩЕМУ запросу, или условия задачи изменились?

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

Если в истории было резкое негативное замечание о каком-то 
подходе — не избегай его автоматически, если он объективно 
подходит для новой задачи.

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


🧠

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

Модель по умолчанию паттерн-матчит: видит похожую задачу в истории — копирует решение. Это удобная эвристика "раньше сработало — сработает и сейчас", но она ломается, когда условия задачи изменились, а поверхностное сходство осталось.

Сильная сторона модели — она хорошо выполняет explicit-сравнения, если попросить прямо: "сравни текущие условия с прошлыми, найди разницу". AdaptiveMem превращает скрытый (implicit) перенос знаний в явную (explicit) проверку перед тем, как применять память — модель сначала сверяет условия, а потом решает.

🔧 Рычаги управления: - Замени общий список ловушек на специфику своей сферы — для юриста это "изменилось законодательство", для маркетолога "изменилась целевая аудитория" - Добавь "явно напиши, чем текущая задача отличается от прошлой" — увидишь ход рассуждений модели - Добавь агрессивный режим: "если сомневаешься — игнорируй память полностью и отвечай с нуля"


📋

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

Перед использованием любой информации, стратегии или правила 
из истории диалога — проверь применимость к текущей задаче.

1. Есть ли в истории похожий {тип_задачи}?
2. Если да — совпадают ли ключевые условия (не поверхностно, 
   а по существу: {что_важно_проверить})?
3. Если условия отличаются — не переноси решение механически. 
   Реши задачу с нуля и явно укажи, в чём отличие.
4. Если в истории была критика какого-то подхода — не избегай 
   его автоматически. Оцени, применима ли эта критика к текущему 
   случаю.

Задача: {текущий_запрос}

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

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

Вот принцип защиты от "ловушек памяти" в длинных диалогах. 
Адаптируй под мою задачу: {твоя задача}. 
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит, какие именно параметры у тебя обычно меняются между похожими задачами (бюджет, аудитория, юрисдикция и т.д.) — это нужно, чтобы проверка была конкретной, а не общей фразой "проверь применимость".

⚠️ Важно: точная формулировка промпта AdaptiveMem из оригинальной статьи не сохранилась в доступном тексте исследования (обрезан фрагмент). Шаблон выше — реконструкция на основе описанного принципа, а не дословная цитата.


⚠️

Ограничения

⚠️ Работает сильнее в длинных диалогах: эффект ловушек проявился на историях в 18–40 реплик. В коротких чатах явление может быть слабее или незаметным.

⚠️ Не устраняет проблему полностью: метод снижает потери, но по данным авторов не убирает провал целиком — часть капканов всё равно срабатывает.

⚠️ Точный промпт метода не раскрыт: используй шаблон-реконструкцию как отправную точку, а не как проверенную формулировку из статьи.


🔍

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

Команда собрала 1050 специально сконструированных диалогов: сначала модели "закладывают" правило, стратегию или негативный фидбек, потом добавляют 18–40 нейтральных реплик "шума", а в конце задают вопрос, который выглядит похожим на прошлый, но требует другого решения. Проверяли на двух семействах моделей (Gemini и Qwen) и пяти системах памяти против чистого baseline без памяти.

Результат удивил: вообще все системы памяти оказались хуже, чем полное отсутствие памяти — даже лучшие теряли больше 10 процентных пунктов. Чтобы убедиться, что дело не в самом объёме контекста, а именно в "ловушке", исследователи прогнали контрольный эксперимент: убрали капкан, оставили ту же длину истории — точность вернулась почти к уровню "без памяти". Это значит: вредит не длина контекста сама по себе, а конкретные паттерны-приманки внутри неё.


🔗

Ресурсы

MemTrapBench, авторы: Mengru Wang, Haozhe Luo и др. (Zhejiang University, National University of Singapore, Northeastern University, Heriot-Watt University, Tencent). Код и данные: github.com/zjunlp/MemTrapBench


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

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

Модель 10 раз решала задачу через сложение и умножение. На 11-й раз нужен факториал — простой ход, который та же модель мгновенно находит без памяти. Но с историей чата она упрямо перебирает старые операции и не видит очевидного. Метод AdaptiveMem позволяет модели отличать полезный опыт от вредной привычки перед тем как отвечать. Один вопрос в промпте — применим ли этот старый паттерн к новой ситуации — заставляет модель сверяться, а не копировать вслепую.

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

Модель по умолчанию работает как студент, выучивший формулу наизусть — лепит её в любую задачу, похожую внешне. AdaptiveMem меняет порядок действий: сначала сверка условий, потом решение. Проверка «применимо сейчас или условия изменились» встраивается ПЕРЕД использованием памяти, а не после. Если условия изменились — модель решает с нуля и прямо говорит, чем новая задача отличается от старой.

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

Модель отлично справляется со сравнением, если попросить прямо: сравни текущие условия с прошлыми, найди разницу. Без такой команды она сравнивает поверхностно — видит внешнее сходство и молча копирует старое решение. AdaptiveMem превращает скрытое копирование в осознанную проверку — модель сначала ищет разницу, а не сходство. Эффект сильнее в длинных диалогах на 18-40 реплик — там память успевает накопить кучу устаревших паттернов.

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

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

Мини-рецепт

1. Добавь проверку в начало диалога: «перед использованием любой информации или правила из истории — проверь применимость к текущей задаче»
2. Задай явный вопрос: «совпадают ли ключевые условия по существу, а не поверхностно?»
3. Разреши игнорировать старую критику: «если раньше был негативный отзыв на подход — не избегай его автоматически, оцени заново»
4. Попроси проговорить разницу: «явно укажи, чем новая задача отличается от прошлой, до того как отвечать»

Примеры

[ПЛОХО] : Пересчитай юнит-экономику для новой точки, у нас же был такой расчёт в чате
[ХОРОШО] : Перед расчётом проверь: применима ли модель затрат из прошлого разговора (своя кухня, курьеры на аутсорсе) к новой точке по франшизе (готовое меню, без своей кухни)? Если условия отличаются - посчитай заново и явно укажи в чём отличие
Источник: MemTrapBench: Benchmarking Cognitive Traps in LLM Memory Use
ArXiv ID: 2608.20202 | Сгенерировано: 2026-08-21 05:22

Проблемы LLM

ПроблемаСутьКак обойти
Модель зацикливается на старом способе решенияЕсли модель много раз решала похожие задачи одним методом, она упрямо применяет этот метод дальше — даже когда задача поменялась и нужен другой, более простой подход. Тот же самый вопрос без истории диалога модель решает правильно. Проблема проявляется в любых многошаговых задачах: математика, код, бизнес-расчёты, юридические консультацииПеред ответом попроси модель явно проверить: "применим ли прошлый способ решения к текущим условиям, или что-то изменилось?" Если условия изменились — решать заново, игнорируя старый паттерн
Прошлая критика заставляет избегать правильного решенияЕсли модель раньше получила негативный отзыв на какое-то решение — даже необоснованный — она потом избегает этого решения в новых ситуациях, где оно на самом деле верное. Похоже на выученную беспомощность: одна плохая оценка блокирует правильный ответ надолгоПопроси модель переоценивать прошлую критику заново: "применима ли эта критика конкретно к текущему случаю, или тогда были другие условия?" Не позволяй ей автоматически исключать подход только из-за старого негативного опыта

Методы

МетодСуть
Явная проверка применимости памяти перед использованиемДобавь в системный промпт инструкцию: перед тем как применить любое правило, расчёт или паттерн из истории диалога — модель должна сначала спросить себя "подходят ли эти условия к текущей задаче, или что-то поменялось". Если условия отличаются — решай с нуля и явно укажи разницу. Работает потому что модель по умолчанию действует по сходству ("похоже — значит подходит"), а явный вопрос заставляет её сверить детали вместо копирования. Хорошо работает в длинных диалогах (десятки сообщений), где накопилась история решений. Слабее заметен в коротких чатах. Не убирает проблему полностью — часть ошибок остаётся
📖 Простыми словами

MemTrapBench: Benchmarking Cognitive Traps inLLMMemoryUse

arXiv: 2608.20202

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

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

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

Проблема вылезает везде, где есть долгая сессия: в Claude Projects, кастомных Custom GPTs и автономных AI-агентах. Чем дольше ты развиваешь проект в одном диалоге или базе знаний, тем выше шанс, что модель начнёт «галлюцинировать прошлым опытом». Вместо адаптивного решения ты получаешь зомби-паттерны, которые незаметно подмешиваются в ответы и портят расчёты.

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

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

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

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