Mem0: память, с которой агент помнит пользователя
Mem0 - open-source слой памяти для агентов: автоматически извлекает факты из диалогов, хранит их и подмешивает релевантное в контекст. Агент помнит пользователя между сессиями.
Контекстное окно - это краткосрочная память. Сессия кончилась - агент всё забыл. "Меня зовут Анна, я люблю короткие ответы" придётся повторять при каждой встрече, и это бесит. Mem0 - open-source слой памяти (Apache-2.0), который извлекает из диалогов durable-факты, хранит их между сессиями и подмешивает релевантное обратно в промпт.
Как это работает
pip install mem0ai - и дальше два вызова. memory.add(messages) сохраняет факты из диалога. memory.search(query) находит релевантное. Внутри - извлечение фактов через LLM, дедупликация, эмбеддинги и векторный поиск. Есть graph memory, раскладывающая память в сущности и связи. Память делится по скоупам: user, session, agent - можно помнить и про пользователя, и про конкретную задачу. Развёртывание на выбор: библиотека в своём процессе, self-host через Docker со своей векторной базой или облачная Mem0 Platform. Интеграции - OpenAI SDK, LangChain, Vercel AI SDK.
Факты вместо чанков
Извлечение вместо складирования - ключевое отличие. В память едут высокосигнальные факты ("пользователь предпочитает короткие ответы"), а не сырые куски переписки. Контекст не забивается мусором, релевантность выше. Второй плюс - простота встройки: API из двух методов, скоупы из коробки. Базовое "помни меня" собирается за вечер, а не за спринт.
Подводные камни
Векторный поиск не умеет multi-hop рассуждения - запросы вида "друг моего коллеги, который..." ему не по зубам. Для связных запросов есть graph memory, но он сложнее в настройке. Саммаризация при извлечении может терять детали: критичные факты дублируйте явно, не надейтесь на экстрактор. Экстракция гоняет LLM на каждую запись - это latency и деньги; на больших объёмах считайте экономику. И приватность: факты о пользователях - чувствительные данные. Удаление по запросу и data residency продумайте до продакшена, а не после.
Кому подходит
Чат-ботам, ассистентам и агентам, которым нужно помнить предпочтения и факты о пользователе между сессиями. Knowledge-intensive системы со сложными связями между сущностями - не сюда: там графовые решения вроде Zep или Cognee. Разовым диалогам без продолжения память не нужна вовсе. А если пользователи жалуются "ты же уже знал" - это прямой сигнал ставить Mem0.