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
