TL;DR
«Явная память» (explicit memory) — это когда агент после каждого разговора превращает переписку в конспекты, выжимки фактов и связанные заметки, а потом ищет по ним. Альтернатива: хранить переписку как есть и при вопросе находить в ней нужные реплики (это называется RAG по сырой истории). Исследователи сравнили шесть известных систем явной памяти (Mem0, A-Mem, MemoryBank, LightMem, SimpleMem, HyperMem) с таким простым поиском.
Главная находка: ни одна из «умных» систем стабильно не обыграла простой поиск по исходным репликам. При этом построение памяти стоит дорого: до часов вычислений на один диалог. Часть систем теряет нужные факты ещё при составлении конспектов, и потом их нечем найти. Другие факты сохраняют, но не могут достать. Вариант «засунуть всю историю в контекст» оказался хуже всех: модель тонет в лишнем.
Вывод для практики: не усложняй память, а улучшай поиск. Храни исходные реплики, ищи по ним хорошим поиском и отдавай модели только релевантный кусок. Сложная память полезна в узких случаях: вопросы «а этого мы вообще обсуждали?», маленькие модели и очень жёсткий лимит контекста.
Схема метода
Это не техника промптинга, а схема эксперимента. Она же показывает, где у агента с памятью может сломаться.
ШАГ 1. ПОСТРОЕНИЕ памяти:
явная память → LLM делает конспекты / факты / заметки (дорого, часы)
сырая история → реплики просто сохраняются как есть (бесплатно)
ШАГ 2. ПОИСК: по вопросу достаём нужные куски (ключевые слова, смысловой поиск или оба)
ШАГ 3. ОТВЕТ: модель отвечает по найденным кускам (лимит контекста)
Что варьировали: способ поиска, размер контекста, модель-отвечающая
Оракул: подсунули «идеальные» куски, чтобы понять, где потеря — в памяти или в поиске
Пример применения
В статье готового промпта нет: исследование про устройство систем памяти. Но вывод можно применить руками. Ниже ручная версия «поиска по сырой истории» вместо «пересказа истории».
Задача: вы ведёте клиента в онлайн-школе. Переписка в Telegram и почте тянется уже 4 месяца. Перед созвом нужно вспомнить, что именно клиент говорил про бюджет и сроки. Раньше вы просили модель «сделай саммари всей переписки», и из саммари пропадали нужные детали: например, что бюджет «до 300 тысяч, но только если запуск до 1 марта».
Промпт:
Ниже — выгрузка переписки с клиентом (реплики с датами). Не пересказывай её и не делай саммари.
Вопрос: что клиент говорил про бюджет и сроки запуска, менялись ли условия со временем?
Правила:
1. Сначала найди в переписке ВСЕ реплики, где упоминаются деньги, бюджет, цены, сроки, даты запуска. Выведи их дословно, с датой и автором, списком.
2. Только потом, на основе этих цитат, ответь на вопрос. Если условия менялись, покажи последнюю актуальную версию и что было раньше.
3. Если в переписке об этом ничего нет, прямо напиши: «в переписке этого нет». Не додумывай.
Переписка:
{текст_переписки}
Результат: модель сначала выдаст список дословных цитат с датами, а затем короткий ответ, который на них опирается. Если условия менялись, в ответе будет видна история изменений. Если информации нет, модель так и скажет, а не придумает.
Почему это работает
Слабость. Пересказ теряет детали. Когда модель сжимает переписку в конспект, она сама решает, что важно, а нужный вопрос заранее неизвестен. Часть деталей пропадает навсегда. Обратная крайность тоже плоха: если вывалить всю историю в контекст, модель отвечает хуже. В исследовании «вся история целиком» дала лишь около 22% точности против 63–78% у поиска.
Сильная сторона. Модель хорошо отвечает, когда перед ней небольшой набор точных цитат по вопросу. Исходные реплики не искажены, и из них можно собрать и ответ, и хронологию.
Как это использует метод. Сначала поиск находит нужные куски в сырой истории, потом модель отвечает по ним. «Узким местом» оказывается именно поиск: смена поисковика подняла точность на 14,8 пункта, больше, чем любая «умная» память.
Что можно менять и какой эффект это даёт: - Что искать: реплики пользователя или пары «вопрос-ответ». Поиск только по репликам пользователя в среднем работал лучше, пары были слабее. Если ведёте историю сами, индексируйте то, что говорил человек. - Размер контекста. Чем модель меньше и жёстче лимит, тем больше пользы от готовых выжимок. Для больших моделей лучше дать больше сырых цитат. - Вопросы «было или не было». Здесь явная память реально помогает. Если в задаче важно отвечать «этого не обсуждали», добавляйте явное правило отказа, как в пункте 3 промпта.
Шаблон промпта
В тексте статьи готового промпта нет: промпт ответа вынесен в приложение, а в предоставленной части его нет. Практическую инструкцию для агента на основе выводов см. в блоке ниже. Это моя адаптация, а не метод авторов.
Ограничения
⚠️ Неполный текст: во входных данных обрезан конец статьи. Разделы про «оракульный» поиск (RQ3) и стоимость (RQ4) я пересказываю по аннотации и введению, без таблиц.
⚠️ Это не промпт-техника: выводы относятся к устройству систем памяти. Читателю без разработки они помогают выбирать и не усложнять, но не дают готовой настройки.
⚠️ Явная память не бесполезна: она выигрывала на вопросах «об этом не говорили» (на одном из наборов до +15 пунктов), на маленьких моделях и при очень жёстком лимите контекста.
⚠️ Проверено в узких рамках: основная модель — Qwen3-30B (средний размер, не флагман), оценка ответов — через GPT-4o mini, два набора вопросов по диалогам. Для топовых моделей с огромным контекстом картина может отличаться.
⚠️ Системы памяти берут в готовом виде: возможно, их можно было настроить лучше. Авторы честно проверили разные поисковики, но разработчики тоже могли подбирать настройки под свои тесты.
Как исследовали
Идея простая: честно сравнить «умную память» с «глупым поиском» при одинаковых условиях. Раньше системы памяти сравнивали целиком: у каждой свой поиск, свой размер контекста, свои промпты. Победа ничего не доказывала: непонятно, помогла память или просто лучший поиск.
Поэтому авторы разделили конвейер на три этапа: построение памяти, поиск и ответ. Память каждой из шести систем построили один раз и заморозили. Дальше меняли только поиск (8 вариантов: ключевые слова, смысловой, смешанный) и размер контекста (8 вариантов). Получилось по 64 конфигурации на метод. Проверяли на двух наборах: LongMemEval-S (500 вопросов к длинным диалогам) и BEAM-100K (400 вопросов).
Лучший простой поиск набрал 78,0% против максимум 64,0% у «умных» систем на LongMemEval-S. Смена поисковика сама дала +14,8 пункта. Так что часть «преимуществ» памяти в чужих статьях могла быть просто слабым поиском в базовом варианте. В среднем сырой поиск выигрывал примерно 4 пункта на каждом наборе. Сильнее всего память проигрывала на вопросах про обновление знаний и рассуждения по нескольким сессиям. Именно для них её и придумывали.
Любопытная деталь: «оракульная» проверка (когда системе дают идеальные куски) показала два разных типа провала. Одни системы теряют факты при построении памяти, а другие сохраняют, но не умеют найти. Для практики это значит: сначала выясни, где у тебя дыра, и только потом чини.
Адаптации и экстраполяции
🔧 Техника: «цитаты сначала, вывод потом» → защита от потерь при пересказе
В примере выше промпт заставляет модель сначала вытащить дословные реплики, а потом отвечать. Это ручная версия «поиска по сырой истории». Если убрать шаг 1, модель вернётся к пересказу, и детали начнут теряться.
Это моё применение вывода статьи, а не метод авторов.
Инструкция для агента (CLAUDE.md, системный промпт кастомного GPT):
Правила работы с историей и заметками:
1. Исходные материалы (переписка, протоколы, логи) храни и используй как есть. Не заменяй их своим пересказом.
2. Если нужна информация из прошлого, сначала найди и процитируй дословные фрагменты с датой и автором, потом отвечай.
3. Если в материалах нужного нет, напиши «в материалах этого нет». Не достраивай по общим соображениям.
4. Если вопрос касается изменений («что решили в итоге»), покажи, как менялось решение по датам, и назови последнюю версию.
5. Саммари можно делать только как оглавление. В качестве источника фактов используй исходные реплики.
Ресурсы
- Статья: Do Conversational Agents Need Explicit Memory? A Controlled Comparison with Raw-History Retrieval
- Авторы: Yongjie Zhou, Shuai Wang, Bevan Koopman, Guido Zuccon — Университет Квинсленда (Брисбен), CSIRO, Google
- Код: https://github.com/ielab/memory-systems-vs-rag
- Рассматриваемые системы: MemoryBank, A-Mem, Mem0, LightMem, SimpleMem, HyperMem
- Наборы: LongMemEval-S, BEAM-100K
