3,583 papers
arXiv:2602.10715 79 11 фев. 2026 г. FREE

LoCoMo-Plus: LLM не удерживают неявные ограничения в длинных диалогах

КЛЮЧЕВАЯ СУТЬ
Если модель «забывает» что ты говорил в начале диалога — это не баг, а фундаментальная проблема cognitive memory. Исследование LoCoMo-Plus выделило два уровня памяти в диалогах. Factual memory (Level-1) — вспомнить прямой факт: «Как зовут мою кошку?» → «Мурка». Cognitive memory (Level-2) — удержать неявное ограничение и применить его позже: в начале сказал «готовлюсь к экзамену, хочу минимум отвлечений», через 50 сообщений спросил «начать смотреть сериал?» → правильный ответ учитывает цель из прошлого. Модели резко проваливаются на втором уровне. Разрыв между factual и cognitive памятью составляет 30-40 пунктов у всех моделей — от GPT-4o до Qwen.
Адаптировать под запрос

TL;DR

Исследователи обнаружили, что модели работают с двумя уровнями памяти в диалогах. Factual memory (Level-1) — вспомнить факт, который прямо упоминался: "Как зовут мою кошку?" → "Мурка". Cognitive memory (Level-2) — удержать неявное ограничение и применить его позже: в начале диалога ты сказал "готовлюсь к экзамену, хочу минимум отвлечений", через 50 сообщений спросил "начать смотреть новый сериал?" → правильный ответ учитывает твою цель, хотя она не упоминается в вопросе напрямую.

Модели резко проваливаются на cognitive memory. Разрыв между производительностью на factual и cognitive задачах составляет 30-40 пунктов у всех моделей — от GPT-4o до Qwen. Cognitive memory деградирует экспоненциально с ростом длины диалога: чем больше сообщений между "целью в начале" и "вопросом сейчас", тем выше вероятность, что модель проигнорирует контекст. При этом object memory (локальные факты) остаётся стабильной даже в длинных диалогах.

Исследование выделяет четыре типа неявных ограничений, которые модели должны удерживать: причинно-следственный контекст (causal), состояние пользователя (state), цели (goal) и ценности (value). Когда между упоминанием ограничения и триггерным вопросом нет семантического пересечения (авторы называют это "cue-trigger semantic disconnect"), модели теряют контекст и отвечают как будто видят вопрос в вакууме.


📌

Типы памяти и их деградация

Level-1: Factual Memory - Object memory — локальные факты ("моя кошка Мурка") - Episodic memory — события во времени ("вчера ходил к врачу") - Стабильна даже в длинных диалогах

Level-2: Cognitive Memory - Causal — причинно-следственный контекст - State — текущее состояние пользователя - Goal — цели и намерения - Value — ценности и предпочтения - Резко деградирует с ростом длины диалога

Ключевое отличие: factual memory тестируется вопросами с семантическим пересечением с ответом ("Как зовут кошку?" → ищи слово "кошка" в истории). Cognitive memory требует вывода из контекста без прямого пересечения слов.


🚀

Пример применения инсайта

Ситуация: Ты консультируешься с AI по бизнес-задачам в одном длинном чате. В начале месяца обсуждал стратегию: "Фокус на прибыльность, никаких экспериментов до конца квартала". Через 100 сообщений и 2 недели пишешь: "Что думаешь про запуск подкаста для бренда?"

Что происходит: - ❌ Модель ответит в вакууме: "Отличная идея! Подкасты сейчас в тренде, можно..." - ✅ Правильный ответ должен учесть constraint из начала: "Подкаст — долгоиграющий проект с отложенной отдачей. Учитывая твой фокус на прибыльность до конца квартала, это противоречит стратегии. Лучше отложить или пересмотреть приоритеты."

Как применить инсайт:

До исследования (наивный подход):

[В одном чате, через 100 сообщений]
Что думаешь про запуск подкаста?

После исследования (адаптация):

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

Проанализируй это предложение УЧИТЫВАЯ мою стратегию. Укажи если видишь конфликт.

Или просто начни новый чат для нового решения, чтобы не полагаться на память модели через 100+ сообщений.


📌

Почему модели забывают неявный контекст

Слабость: LLM плохо удерживают информацию, которая не имеет семантического якоря в текущем запросе. Если в вопросе нет слов, которые "триггерят" релевантный кусок истории, модель не знает что искать. Factual память работает потому что запрос содержит прямую подсказку: "Как зовут кошку?" → слово "кошка" есть и в вопросе и в ответе из прошлого. Cognitive память требует вывода: "Стоит ли смотреть сериал?" → нужно вспомнить "готовлюсь к экзамену" из начала диалога, хотя в вопросе нет слов "экзамен" или "учёба".

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

Практический вывод: Не полагайся на "память через 100 сообщений" для важных ограничений. Либо резюмируй контекст явно в новом запросе, либо начинай новый чат для новой задачи, где constraint формулируется с нуля.

Рычаги управления: - Длина диалога → короткие чаты (10-20 сообщений) держат контекст лучше, чем марафоны на 100+ - Явное напоминание constraint → вместо надежды, что модель "помнит", перескажи ключевые ограничения в новом промпте - Разделение чатов по задачам → один чат = один контекст, не смешивай цели


📌

Принципы работы с памятью LLM

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

📌

1. Single-Responsibility Chats

Один чат = одна задача с одним набором constraints. Не веди марафон-диалог на 200+ сообщений со сменой контекста.

Применение: - Обсуждение бизнес-идеи → отдельный чат - Редактура текста → отдельный чат - Личная консультация → отдельный чат

📌

2. Explicit Context Refresh

Каждые 20-30 сообщений пиши резюме текущего контекста и ключевых ограничений.

Шаблон:

Резюмирую контекст нашего обсуждения:
- Цель: {твоя цель}
- Ограничения: {что важно учитывать}
- Текущий статус: {где мы сейчас}

С учётом этого, вопрос: {твой новый вопрос}
📌

3. Constraint Declaration

Если решение зависит от неявного ограничения из прошлого — сформулируй его явно в новом запросе, не полагайся на память модели.

Шаблон:

Контекст: {ключевое ограничение из прошлого}

Оцени моё новое предложение УЧИТЫВАЯ этот контекст. 
Укажи если видишь конфликт между предложением и ограничением.

Предложение: {что предлагаешь}
📌

4. Length-Aware Memory

Cognitive memory деградирует экспоненциально. Правило: если между constraint и вопросом больше 50 сообщений — модель скорее всего "забыла".

Применение: - До 20 сообщений: можно полагаться на контекст - 20-50 сообщений: рискованно, лучше напомнить - 50+ сообщений: гарантированно нужно напоминание или новый чат


⚠️

Ограничения

⚠️ Длинные диалоги: После 50+ сообщений cognitive memory почти полностью теряется. Object memory (локальные факты) остаётся стабильной, но неявные ограничения модель не удерживает.

⚠️ Семантический разрыв: Если между cue (где constraint упомянут) и trigger (где нужно применить) нет общих слов — модель с высокой вероятностью проигнорирует контекст. Чем больше семантическое пересечение, тем лучше работает память.

⚠️ RAG не решает проблему: Retrieval-augmented методы показали результаты хуже чем прямой контекст. Embedding-based поиск находит семантически похожие куски, но не "вытаскивает" неявные ограничения без пересечения слов.

⚠️ Memory-системы тоже проваливаются: Специализированные системы (Mem0, A-Mem, SeCoM) показали результаты почти идентичные обычным моделям на cognitive memory — разрыв в 30-40 пунктов сохраняется. Проблема фундаментальная, не архитектурная.


🔍

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

Команда из Xi'an Jiaotong University и Tencent создала LoCoMo-Plus — бенчмарк для тестирования cognitive memory. Взяли оригинальный LoCoMo (бенчмарк для factual memory в длинных диалогах) и добавили задачи, где правильный ответ зависит не от факта, а от неявного ограничения (implicit constraint).

Дизайн эксперимента: Генерировали пары cue-trigger: - Cue — диалог в начале, где неявно выражается constraint (например, "готовлюсь к экзамену, хочу минимум отвлечений") - Trigger — вопрос через 20-100 сообщений, где нужно применить constraint, но в вопросе НЕТ прямого упоминания cue ("стоит ли начать смотреть сериал?")

Специально фильтровали пары с низким семантическим пересечением (BM25 + MPNet embedding) — чтобы модель не могла "угадать" по совпадению слов.

Протестировали 11 моделей (от GPT-4o и Gemini-2.5-Pro до Qwen 3B) + 3 RAG-подхода (с разными embedding-моделями от OpenAI) + 3 специализированные memory-системы (Mem0, A-Mem, SeCoM).

Главная находка: Все модели и системы показали стабильное проседание на 30-40 пунктов на cognitive memory по сравнению с factual. GPT-4o: 62.99% на factual → 21.05% на cognitive. Gemini-2.5-Pro: 71.78% → 26.06%. Даже топовые модели теряют 2/3 производительности.

Дополнительный инсайт про метрики: Проверили как традиционные метрики (BLEU, ROUGE, F1, Exact Match) зависят от длины ответа модели. Обнаружили систематическое length bias — метрики завышают оценку моделям, которые генерируют ответы длиной близкой к эталону, и занижают тем, кто отвечает короче или длиннее. Это значит, что сравнение моделей по BLEU/ROUGE в диалоговых задачах искажено стилем генерации, не точностью памяти.

Почему результаты такие: Модели обучены на паттернах с семантическим пересечением. Во время обучения диалоги обычно содержат явные референсы или повторы ключевых слов. Cognitive memory требует вывода без якоря в текущем запросе — а это паттерн, на котором модели не тренировались массово.

Интересная деталь: исследователи показали, что раскрытие типа задачи в промпте ("это вопрос на temporal reasoning") завышает результаты на 10-15 пунктов на некоторых категориях. Это означает, что модели адаптируют стиль ответа под объявленный тип задачи, а не действительно "вспоминают" из контекста.


💡

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

📌

🔧 Техника: Compact State Summary

Каждые 10-15 сообщений генерируй summary текущего состояния диалога и пинь его в начало чата (если платформа поддерживает) или копируй в новый промпт.

Промпт для создания summary:

Резюмируй наш диалог за последние 15 сообщений в формате:

**Цели:** [чего хочу достичь]
**Ограничения:** [что важно учитывать]
**Контекст:** [ключевые факты]
**Статус:** [где мы сейчас]

Будь лаконичен, только суть.

Используй summary как явный контекст в следующих запросах вместо надежды на memory.


📌

🔧 Техника: Dual-Chat Workflow

Для важных решений веди два параллельных чата: - Чат 1 (Исследование): свободный диалог, сбор информации, генерация идей - Чат 2 (Решение): начинаешь с нуля, переносишь только выжимку из Чата 1 как явный контекст

Шаблон для Чата 2:

Контекст из предыдущего обсуждения:
[копируешь summary или ключевые constraints из Чата 1]

С учётом этого контекста, помоги принять решение: {твой вопрос}

Это обходит проблему cognitive memory через architectural separation — второй чат всегда короткий и фокусированный.


📌

🔧 Техника: Constraint Check Query

Если подозреваешь, что модель "забыла" важный constraint из начала диалога — проверь явно:

В начале нашего разговора я говорил о {constraint}. 
Твой последний ответ учитывает это ограничение? 
Если нет — скорректируй с учётом {constraint}.

Это форсит модель ре-evaluate ответ через призму constraint.


🔗

Ресурсы

LoCoMo-Plus: Beyond-Factual Cognitive Memory Evaluation Framework for LLM Agents

Yifei Li, Weidong Guo, Lingling Zhang, Rongman Xu, Muye Huang, Hui Liu, Lijiao Xu, Yu Xu, Jun Liu

Xi'an Jiaotong University, Tencent

https://github.com/xjtuleeyf/Locomo-Plus

Базовый бенчмарк LoCoMo:

Maharana et al., 2024 — оригинальный фреймворк для factual memory в длинных диалогах

RAG-методы:

OpenAI text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large

Memory-системы:

Mem0 (Chhikara et al., 2025), A-Mem (Xu et al., 2025), SeCoM (Pan et al., 2025)


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

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

Если модель «забывает» что ты говорил в начале диалога — это не баг, а фундаментальная проблема cognitive memory. Исследование LoCoMo-Plus выделило два уровня памяти в диалогах. Factual memory (Level-1) — вспомнить прямой факт: «Как зовут мою кошку?» → «Мурка». Cognitive memory (Level-2) — удержать неявное ограничение и применить его позже: в начале сказал «готовлюсь к экзамену, хочу минимум отвлечений», через 50 сообщений спросил «начать смотреть сериал?» → правильный ответ учитывает цель из прошлого. Модели резко проваливаются на втором уровне. Разрыв между factual и cognitive памятью составляет 30-40 пунктов у всех моделей — от GPT-4o до Qwen.

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

Cognitive память деградирует экспоненциально с длиной диалога. Factual память (локальные факты типа «моя кошка Мурка») остаётся стабильной даже в 100+ сообщений. Cognitive память (неявные ограничения типа «фокус на прибыльность до конца квартала») плывёт уже после 50 сообщений. Ключевая проблема — cue-trigger semantic disconnect: между упоминанием ограничения и вопросом где нужно его применить нет общих слов. Модель не знает что искать в истории. Factual память работает потому что запрос содержит якорь: «Как зовут кошку?» → слово «кошка» есть и в вопросе и в ответе из прошлого. Cognitive память требует вывода без подсказок.

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

LLM плохо удерживают информацию без семантического якоря в текущем запросе. Если в вопросе нет слов которые триггерят релевантный кусок истории — модель отвечает в вакууме. Пример: «Стоит ли смотреть сериал?» требует вспомнить «готовлюсь к экзамену» из начала, хотя в вопросе нет слов «экзамен» или «учёба». Модель как студент без конспекта — если не помнит где искать, не найдёт. При этом LLM отлично работают с явно сформулированным контекстом в текущем промпте. Если constraint прописан прямо в запросе — модель применит его точно. Отсюда решение: не полагайся на память через 100 сообщений, явно напоминай ключевые ограничения.

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

Длинные диалоги — консультации, обсуждения проектов, редактура — когда есть ограничения или договорённости из прошлого которые нужно учитывать сейчас. Особенно критично когда между упоминанием constraint и новым вопросом больше 50 сообщений. НЕ подходит для коротких чатов до 20 сообщений — там контекст держится стабильно.

Мини-рецепт

1. Single-Responsibility Chats: Один чат = одна задача с одним набором ограничений. Не веди марафон на 200+ сообщений со сменой контекста. Обсуждение бизнес-идеи → отдельный чат. Редактура текста → отдельный чат.

2. Explicit Context Refresh: Каждые 20-30 сообщений резюмируй контекст: Резюмирую: цель {X}, ограничения {Y}, статус {Z}. С учётом этого вопрос: {...}

3. Constraint Declaration: Если решение зависит от неявного ограничения из прошлого — сформулируй его явно в новом запросе: Контекст: месяц назад решили фокус на прибыльность. Сейчас думаю про запуск подкаста. Проанализируй УЧИТЫВАЯ стратегию. Укажи если видишь конфликт.

4. Length-Aware Memory: До 20 сообщений — можно полагаться на контекст. 20-50 — рискованно, лучше напомнить. 50+ — гарантированно нужно напоминание или новый чат.

Примеры

[ПЛОХО] : Один чат на 100+ сообщений. В начале обсудил «фокус на прибыльность до конца квартала». Через 100 сообщений пишешь: Что думаешь про запуск подкаста? — модель ответит в вакууме, проигнорирует constraint из начала.
[ХОРОШО] : Контекст: месяц назад мы решили фокусироваться на прибыльность до конца квартала, никаких экспериментов. Сейчас думаю про запуск подкаста. Проанализируй это предложение УЧИТЫВАЯ мою стратегию. Укажи если видишь конфликт. — модель видит ограничение прямо в запросе, применит точно. Или просто начни новый чат для нового решения.
Источник: LoCoMo-Plus: Beyond-Factual Cognitive Memory Evaluation Framework for LLM Agents
ArXiv ID: 2602.10715 | Сгенерировано: 2026-02-12 05:33

Проблемы LLM

ПроблемаСутьКак обойти
Модель теряет ограничения без семантических якорейВ начале диалога ставишь ограничение: "фокус на прибыль, никаких экспериментов до конца квартала". Через 50 сообщений спрашиваешь: "что думаешь про запуск подкаста?". Модель отвечает как будто видит вопрос впервые. Игнорирует ограничение из начала. Почему: слово "прибыль" там и слово "подкаст" тут не связаны напрямую. Модель не понимает что нужно искать в истории. Проблема растёт с длиной диалога — после 50+ сообщений почти гарантированно забудетВ новом запросе явно повтори ключевое ограничение: "Напоминаю: мы решили фокус на прибыль до конца квартала. С учётом этого — что думаешь про подкаст?". Или начни новый чат для новой задачи вместо марафона на 100+ сообщений
📖 Простыми словами

Locomo-Plus: Beyond-Factual Cognitive Memory Evaluation Framework forLLMAgents

arXiv: 2602.10715

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

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

В рамках фреймворка Locomo-Plus ученые доказали, что Level-1 (Factual memory) у топовых моделей вроде GPT-4 или Claude работает почти идеально, но на Level-2 (Cognitive memory) они начинают жестко лажать. Суть в том, что модель должна удерживать неявные ограничения и применять их в динамике. Если в начале диалога ты обронил, что готовишься к экзамену и тебе нельзя отвлекаться, а через час спросил совета по сериалам, правильный ответ — «никаких сериалов, иди учись». Но AI часто радостно вываливает список новинок, потому что забывает про твой глобальный контекст, фокусируясь только на последнем вопросе.

Тестировали этот подход на длинных диалогах, но принцип универсален для любого сложного взаимодействия с AI. Это касается и бизнес-ассистентов, и кодинга, и планирования путешествий. Если модель не тянет когнитивную память, она превращается в обычный поисковик, который просто выдает справку по запросу. Настоящий LLM-агент должен уметь связывать разрозненные факты в единую стратегию поведения, иначе это не помощник, а просто продвинутый блокнот с функцией автозаполнения.

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

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

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

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