TL;DR
Чем длиннее история переписки, которую вы скармливаете модели, тем хуже она кооперируется в итеративных и переговорных задачах. Исследователи назвали это "проклятием памяти": при расширении доступной истории взаимодействия модели начинают застревать в прошлых ошибках и конфликтах вместо того, чтобы двигаться вперёд. Оптимум — последние 2–5 обменов, не вся история.
Парадокс в том, что модели не становятся "злобнее" с ростом истории. Происходит другое: кооперативный язык буквально вытесняется из рассуждений. В длинном контексте прошлые провалы, отказы и конфликты занимают больше места, чем перспективные планы. Модель начинает генерировать осторожные, защитные ответы — не потому что хочет навредить, а потому что паттерн "было плохо" перевешивает паттерн "может быть хорошо". Отдельная находка: Chain-of-Thought (развёрнутые рассуждения) усиливают этот эффект — продуманный анализ длинной истории даёт ещё более пессимистичный исход.
Решение — короткая активная история + сжатое резюме прошлого + форвардный фрейм ("что нужно достичь дальше", а не "что было раньше"). Исследователи проверили это "память-санацией": когда реальную историю конфликтов заменяли синтетическим резюме с кооперативными записями — сотрудничество восстанавливалось почти полностью.
Схема метода
Все три действия выполняются в одном промпте или при подготовке контекста:
ШАГ 1: СЖАТИЕ — заменить всю длинную историю
→ 2-3 предложения резюме: что решили, к чему пришли
ШАГ 2: ОКНО — оставить только последние 2-5 обменов
→ полный текст только недавнего
ШАГ 3: ФОРВАРД-ФРЕЙМ — направить задачу вперёд
→ "что нужно достичь дальше" вместо "что произошло"
Пример применения
Задача: Вы три дня итерируете с Claude концепцию нового приложения для доставки еды. Было много обсуждений, несколько отброшенных идей, спорные моменты по монетизации. Теперь нужно выработать финальное позиционирование. Если вставить всю переписку — модель начнёт ходить по кругу вокруг уже закрытых возражений.
Промпт:
Контекст проекта: Работаем над приложением доставки еды из локальных кафе
Москвы. Уже решили: фокус на районных заведениях, не на сетях.
Монетизация — подписка для кафе, не комиссия с заказа. Целевая
аудитория — люди 28-45 лет, ценящие местечковость.
Последний обмен (вчера): обсудили, что "гиперлокальность" как слово
слишком сложное для массовой аудитории. Пришли к тому, что нужен
более живой язык.
Задача вперёд: сформулировать одно позиционирование — одно предложение,
которое объясняет суть сервиса незнакомому человеку. Никаких отсылок
к конкурентам, только про нас.
Предложи три варианта позиционирования. Для каждого — в чём сила
и где риск.
Результат: Модель сгенерирует три чётких варианта позиционирования с анализом сильных сторон и рисков каждого. Не будет возвращаться к закрытым вопросам по монетизации или аудитории — контекст чистый, задача форвардная. Ответ будет конкретным, без "с одной стороны, ранее мы рассматривали...".
Почему это работает
Слабость LLM: Модель не "читает" историю критически — она генерирует текст, следуя паттернам в контексте. Если в истории 40 раундов и 15 из них — конфликты или отказы, эти "токены провала" буквально занимают место в контексте. Модель не анализирует тренд — она следует локальному распределению слов. Чем больше слов про "риски", "отклонили", "не получилось" — тем больше модель их воспроизводит.
Что модель умеет хорошо: Она отлично работает с чистым, структурированным контекстом. Если вместо сырой истории дать компактное резюме — "вот что решили, вот где стоим" — модель опирается именно на это. Контент памяти важнее её длины. Исследователи заменяли реальную историю конфликтов на синтетические кооперативные записи той же длины — сотрудничество восстанавливалось. Значит, дело не в количестве токенов, а в том, что в них написано.
Рычаги управления: - Длина активного окна — 2-5 последних обменов работают лучше всего. Для простых задач достаточно 1-2. - Формат резюме — пишите в прошедшем времени с результатами ("решили X, отклонили Y"), не с процессом ("обсуждали разные варианты") - Форвард-фрейм — добавьте фразу "задача вперёд" или "что нужно достичь" — это явно смещает генерацию в сторону конструктива - CoT-осторожность — если просите "думать по шагам" над длинной историей, риск хождения по кругу выше. Для форвардных задач иногда лучше без "думай шаг за шагом"
Шаблон промпта
Контекст работы: {2-3 предложения — что уже решено, к чему пришли,
что отклонили. Только факты, без истории споров}
Последний обмен: {вставить только 2-3 последних сообщения дословно}
Задача вперёд: {что нужно достичь — конкретно, без отсылок к прошлому}
{конкретный запрос}
Что подставлять:
- {контекст работы} — короткое резюме-итог, не пересказ процесса. "Решили A, выбрали B, отклонили C" — и всё.
- {последний обмен} — буквально последние 2-3 сообщения из чата
- {задача вперёд} — глагол будущего действия: "сформулировать", "выбрать", "составить"
🚀 Быстрый старт — вставь в чат:
Помоги мне применить технику "короткой активной памяти" для
моей задачи: {твоя задача}.
Задавай вопросы, чтобы заполнить поля шаблона.
[вставить шаблон выше]
LLM спросит что уже решено по проекту, какой был последний обмен и что нужно достичь дальше — потому что без этого невозможно заполнить "Контекст работы" и "Форвард-фрейм". Она возьмёт паттерн из шаблона и соберёт чистый промпт для вашей задачи.
Ограничения
⚠️ Не для одноразовых задач: Если вы задаёте единственный вопрос без контекста — никакой "памяти" нет, принцип не применим. Техника нужна только при итеративной работе в несколько обменов.
⚠️ Короткая память ≠ всегда лучше: При нулевой памяти модели дефолтятся к осторожным, неконструктивным ответам. Минимум — последние 1-2 обмена. Ноль информации о контексте хуже, чем мало.
⚠️ Размер модели имеет значение: Более крупные и способные модели (условно "сильные" LLM) частично устойчивы к проклятию памяти за счёт внутренних форвард-ориентированных паттернов. Меньшие или специализированные модели уязвимее. Если используете слабую модель — принцип важнее.
⚠️ CoT в длинном контексте — осторожно: Явная инструкция "думай шаг за шагом" при большом объёме истории может усилить хождение по кругу. Для форвардных задач иногда лучше без развёрнутых рассуждений.
⚠️ Исследование — про агентов, не про чат: Формально изучались LLM-агенты в игровых дилеммах, не пользовательские чаты. Принцип экстраполирован — прямых экспериментов в ChatGPT/Claude не проводилось.
Как исследовали
Исследователи поставили масштабный эксперимент: 7 языковых моделей (от Mistral-7B до GPT-класса) играли в классические игры теории игр — "Дилемма заключённого", "Игра с доверием" и другие — по 500 раундов подряд. Большинство предыдущих работ ограничивались 10 раундами, что скрывало долгосрочные эффекты. Менялась только одна переменная: сколько прошлых раундов видит агент — от 0 до 80. Это дало 378 000 записей рассуждений для анализа.
Ключевой эксперимент — "санация памяти": исследователи держали длину промпта постоянной, но заменяли реальную историю конфликтов на синтетические записи о кооперации. Сотрудничество восстанавливалось — значит, дело не в объёме контекста, а в его содержании. Это разрушило альтернативную гипотезу "просто слишком длинный промпт".
Второй важный эксперимент — "асимметричная память": один агент видел только 2 последних раунда ("прощала"), второй — 80 ("держала обиду"). Агент с длинной памятью стабильно тянул пару вниз — даже когда партнёр был настроен кооперативно. Авторы назвали это "трагедией оверсинкинга". Кроме того, отключение Chain-of-Thought рассуждений замедляло деградацию — намеренный анализ длинной истории оказался хуже, чем её игнорирование.
Ресурсы
The Memory Curse: How Expanded Recall Erodes Cooperative Intent in LLM Agents
Авторы: Jiayuan Liu, Tianqin Li, Shiyi Du, Xin Luo, Haoxuan Zeng, Emanuel Tewolde, Tai Sing Lee, Tonghan Wang, Carl Kingsford, Vincent Conitzer
Организации: Carnegie Mellon University, Foundations of Cooperative AI Lab (FOCAL), University of Michigan, Harvard University
Препринт, на рецензии.
Контакт: {jiayuan4,tianqinl,shiyid}@cs.cmu.edu
Адаптации и экстраполяции
💡 Адаптация для длинных рабочих сессий с AI: Если работаете над документом или проектом в несколько сессий — начинайте каждую новую беседу не с вставки всей предыдущей переписки, а с короткого брифа-итога.
Мы работаем над {название проекта}.
Уже решено: {3-5 bullet-пунктов с финальными решениями}
Открытые вопросы: {1-2 пункта, что ещё не закрыто}
Следующий шаг: {конкретная задача на этот сеанс}
🔧 Техника: форвард-маркер → переключение режима
Добавьте в начало промпта явную форвард-инструкцию — особенно если предстоит итеративная работа:
Опирайся только на итоги, не на процесс обсуждения.
Фокус — что нужно достичь дальше.
Это работает как явный сигнал модели игнорировать "токены провала" в истории и генерировать по конструктивному паттерну.
🔧 Техника: осознанное управление CoT в длинных сессиях
Исследование показало, что Chain-of-Thought усиливает проклятие памяти: чем тщательнее модель "думает" над длинной историей конфликтов, тем хуже итог.
- Для форвардных задач с чистым контекстом → CoT полезен, оставьте
- Для итеративных задач с длинной историей → уберите "думай шаг за шагом", дайте прямой запрос
