Mem0: как дать Claude, Codex и AI-агентам постоянную память между сессиями
Mem0 · memory layer · Claude · Codex · AI-агенты

Mem0: как дать Claude, Codex и AI-агентам постоянную память между сессиями

Большинство AI-агентов хорошо работает внутри одной сессии, но после перезапуска теряет контекст. Mem0 добавляет отдельный memory layer: агент может сохранять полезные факты, предпочтения, решения и результаты работы, а в следующей сессии извлекать только те воспоминания, которые действительно относятся к текущему запросу.

2.1.0 актуальный Python SDK на момент проверки
Python ≥ 3.10 официальное требование пакета mem0ai
Apache-2.0 open-source core и официальный SDK
Memory layer

Mem0 — отдельная память между LLM и вашим приложением

Mem0 не заменяет Claude, GPT, Ollama или другую модель. Он хранит и извлекает память, которую затем можно добавить в prompt основной LLM.

Диалогпользователь + агент
→
Mem0extract · store · search
→
Memory Storevector DB + history
→
Следующая сессиярелевантные memories в prompt
01 Память переживает сессию

Факты не исчезают после закрытия IDE или завершения agent run.

02 Не вся история каждый раз

Поиск возвращает только релевантные memories вместо полного transcript.

03 Есть scopes

Память можно разделять по user, agent, app и run.

04 Backend заменяемый

LLM, embeddings и vector store можно выбрать самостоятельно.

Память ≠ длинный context

Зачем вообще нужен memory layer, если можно хранить всю историю чата

ПодходПолная историяMem0
Размер promptРастёт с каждой сессиейПодмешиваются релевантные memories
Старые деталиВсегда присутствуютИщутся по запросу
ПостоянствоНужно реализовывать отдельноОсновная функция
Исправление памятиСложноЕсть update/delete/history
Разделение пользователейЗависит от вашего приложенияUser/agent/app/run scopes
Mem0 полезен не потому, что у модели «маленькое окно».

Даже при большом context window постоянно отправлять сотни тысяч старых токенов — дорого, медленно и часто ухудшает signal-to-noise.

Что происходит при add/search

Mem0 отделяет извлечение памяти от её поиска

Messagesuser + assistant
→
Extractionкакие факты стоит сохранить
→
Embeddingsвекторное представление
→
Vector StoreQdrant / pgvector / другое
→
Searchрелевантные memories

При memory.add(...) по умолчанию включён infer=True: Mem0 пытается выделить из диалога полезные факты, а не просто сохранить весь текст. При необходимости raw messages можно хранить без inference.

user_idПамять конкретного пользователя

Предпочтения и факты, которые должны следовать за человеком.

agent_idПамять конкретного агента

Можно разделить разные специализации и роли.

app_idПамять приложения

Удобно для изоляции нескольких продуктов.

run_idПамять отдельного процесса

Краткоживущий scope внутри конкретной задачи.

Python SDK 2.1.0

Быстрый старт Mem0 OSS

pip install mem0ai==2.1.0

По умолчанию OSS library использует OpenAI для LLM и embeddings, local Qdrant для vector storage и SQLite для истории изменений. Для полностью локального варианта ниже заменим LLM и embedder на Ollama.

Самый простой API

from mem0 import Memory

memory = Memory()

memory.add(
    "Пользователь предпочитает тёмную тему",
    user_id="ivan"
)

results = memory.search(
    "Какая тема интерфейса нравится пользователю?",
    user_id="ivan"
)

print(results)
Такой минимальный пример не полностью локальный.

Default OSS configuration использует OpenAI LLM и embeddings. Если данные не должны покидать сеть, задайте local providers явно.

Полностью локальная память

Mem0 + Ollama + Qdrant без облачного LLM

Официальные cookbook Mem0 показывают полностью локальную связку: Ollama используется и для memory extraction, и для embeddings, а Qdrant хранит векторы.

1. Запустить Qdrant и скачать модели

docker run -d \
  --name qdrant \
  -p 6333:6333 \
  -v qdrant_storage:/qdrant/storage \
  qdrant/qdrant

ollama pull llama3.1:latest
ollama pull nomic-embed-text:latest

2. Настроить Mem0

from mem0 import Memory

OLLAMA_URL = "http://localhost:11434"

memory = Memory.from_config({
    "vector_store": {
        "provider": "qdrant",
        "config": {
            "collection_name": "agent_memory",
            "host": "localhost",
            "port": 6333,
            "embedding_model_dims": 768,
        },
    },
    "llm": {
        "provider": "ollama",
        "config": {
            "model": "llama3.1:latest",
            "temperature": 0,
            "ollama_base_url": OLLAMA_URL,
        },
    },
    "embedder": {
        "provider": "ollama",
        "config": {
            "model": "nomic-embed-text:latest",
            "ollama_base_url": OLLAMA_URL,
        },
    },
})
Размерность embeddings должна совпадать с конфигурацией vector store.

В официальном примере для nomic-embed-text используется 768. При смене embedding model проверьте её output dimension.

Core operations

Add, Search, Get, Update и Delete — память должна быть управляемой

addСохранить

Добавить новые факты или conversation messages.

searchНайти

Semantic search по релевантным memories.

get_allПосмотреть

Получить память конкретного scope.

updateИсправить

Обновить устаревший или неверный факт.

deleteУдалить

Удалить конкретную memory.

historyАудит

Отслеживать изменения сохранённой памяти.

Пример: память проекта

memory.add(
    [
        {
            "role": "user",
            "content": "В этом проекте используем PostgreSQL, не SQLite."
        },
        {
            "role": "assistant",
            "content": "Принято."
        }
    ],
    user_id="ivan",
    metadata={"project": "my-app"}
)

results = memory.search(
    "Какую базу данных использовать?",
    user_id="ivan"
)
Память не должна становиться свалкой любых сообщений.

Если сохранять всё подряд, retrieval постепенно будет подмешивать шум и устаревшие решения. Нужны scopes, metadata и политика удаления.

Codex plugin

Mem0 может автоматически переносить контекст между задачами Codex

В актуальной документации есть официальный Mem0 plugin для Codex. Он подключает cloud memory layer, автоматически сохраняет learnings на lifecycle events и извлекает релевантную память на первом prompt следующей сессии.

codex plugin marketplace add mem0ai/mem0
codex plugin add mem0@mem0-plugins
Auto recall Память перед первым prompt

Codex получает релевантный прошлый контекст до начала новой задачи.

Auto capture Learnings сохраняются автоматически

Lifecycle hooks фиксируют результаты и решения.

Search tool Явный поиск по памяти

Агент может сам запросить более старый контекст позднее в сессии.

Subagents Передача parent context

Plugin умеет передавать retrieved memory нативным subagents и записывать их результат.

Официальный Codex plugin сейчас ориентирован на Mem0 Platform.

Для полностью self-hosted Mem0 такой же one-click lifecycle integration пока не является столь же прямой: в issue tracker есть отдельный открытый запрос на self-hosted hooks/MCP flow.

Model Context Protocol

Через MCP агент получает память как обычные tools

Hosted Mem0 MCP предоставляет tools для добавления, поиска, получения, изменения и удаления memories. Для Codex его можно подключить напрямую:

codex mcp add mem0 \
  --url https://mcp.mem0.ai/mcp/ \
  --bearer-token-env-var MEM0_API_KEY

Есть также официальный open-source mem0-mcp-server, который оборачивает Mem0 Memory API и может запускаться через Python/Docker.

add_memoryЗаписать факт
search_memoriesНайти релевантное
get_memoriesПросмотреть список
update_memoryИсправить память
delete_memoryУдалить факт
list_entitiesПосмотреть scopes
Plugin и прямой MCP — не одно и то же.

MCP даёт tools. Полный plugin дополнительно содержит lifecycle hooks и skills, которые автоматически решают, когда память читать и когда записывать.

Не смешиваем три продукта

Mem0 OSS library, self-hosted server и Mem0 Platform отличаются

OSS Library from mem0 import Memory

Встраивается прямо в ваш Python/TS код. Вы сами выбираете LLM, embeddings и vector store.

Self-hosted Server Docker Compose + API

Отдельный сервис на вашей инфраструктуре, с UI/auth/API и собственным persistent backend.

Graph Memory сейчас не является функцией OSS stack.

Актуальная configuration documentation прямо указывает: Graph Memory — встроенная функция Mem0 Platform, а не OSS Python/TypeScript memory stack.

Это важно при чтении обзоров: скриншоты и возможности Platform нельзя автоматически считать доступными в локальном pip install mem0ai.

Проверяем benchmark отдельно от рекламы

Mem0 публикует сильные memory results, но они относятся к конкретному Platform pipeline

Организация Mem0 открыла отдельный repository memory-benchmarks с evaluation suite для memory-augmented LLM systems. В текущих опубликованных результатах Mem0 Platform v3 показывает:

94,8%LongMemEval, Top 50
91,8%LoCoMo, Top 50
92,5%LoCoMo, Top 200
94,4%LongMemEval, Top 200
Эти цифры нельзя переносить на вашу локальную связку Ollama + Qdrant.

Benchmark относится к managed Platform и конкретному v3 memory pipeline. OSS с другой LLM, embedder и retrieval configuration может показать совсем другой результат.

Плюс benchmark оценивает способность системы вернуть нужную память, а не «общую интеллектуальность» агента и не качество вашего business workflow.

Память особенно чувствительна

Memory store часто содержит более личные данные, чем обычный prompt

1 Разделяйте scopes

Не допускайте retrieval памяти одного пользователя в prompt другого.

2 Не храните секреты без необходимости

Пароли, API keys и recovery codes не должны становиться обычными memories.

3 Давайте delete/export

Пользователь должен понимать, что система сохранила, и иметь возможность это удалить.

4 Защищайте vector DB

Qdrant/Postgres с memory corpus — такой же чувствительный backend, как основная база приложения.

5 Проверяйте providers

Local vector DB не делает систему локальной, если extraction LLM и embeddings уходят в cloud.

6 Не доверяйте auto-memory слепо

Агент может сохранить неверный вывод как устойчивый факт.

Критичные memories лучше подтверждать человеком.

Например, «используем PostgreSQL» — нормальная project memory. «Продакшен сломан из-за Nginx» — это гипотеза, пока причина не подтверждена.

Ограничения

Память может не только помогать, но и закреплять ошибки

01Устаревшие факты

Решение проекта поменялось, но старая memory продолжает всплывать.

02Ошибочное extraction

LLM может неверно интерпретировать разговор и записать ложный факт.

03Retrieval miss

Нужная память есть, но embedding search её не вернул.

04Retrieval noise

В prompt попадает релевантная по словам, но бесполезная memory.

05Privacy

Долгосрочное хранение персонального контекста требует более строгих правил.

06Дополнительная инфраструктура

Vector DB, embeddings, retention и audit становятся частью системы.

Память полезна там, где действительно есть повторяемость между сессиями.

Для одноразового research-запроса отдельный memory layer может быть лишним. Для постоянного coding-agent, помощника или CRM-agent — уже гораздо интереснее.

Практические сценарии

Где Mem0 полезнее обычной истории чата

Codex / Claude Решения проекта между сессиями

Архитектурные договорённости, conventions и результаты предыдущих задач.

Support agent Предпочтения клиента

Не задавать одни и те же вопросы при каждом новом обращении.

AI companion Долгосрочный пользовательский контекст

Цели, предпочтения и прошлые разговоры.

Sales / CRM Контекст взаимодействия

Интересы клиента и прошлые договорённости без полного transcript.

Automation Что уже пробовали

Не повторять заведомо неудачные шаги в следующем run.

Multi-agent Общий memory layer

Разные agents могут читать память по согласованным scopes.

Первоисточники

Mem0: SDK, OSS configuration, Codex integration и benchmark

Материал проверен 21 сентября 2026 года.

Python SDK mem0ai 2.1.0 опубликован 18 сентября 2026 года. Основной repository лицензируется по Apache-2.0.

Вывод

Mem0 интересен там, где AI должен помнить не «весь чат», а устойчивые факты и решения

Для постоянного coding-agent это особенно логично: сохранять выбранные технологии, conventions, результаты диагностики и архитектурные решения, а в новой сессии подмешивать только релевантные memories.

Но memory layer требует дисциплины: факты стареют, extraction может ошибаться, а автоматическая память без scopes и удаления быстро превращается в источник скрытого мусора. Поэтому Mem0 стоит внедрять вместе с политикой хранения, review и forget/update.

FAQ

Частые вопросы о Mem0

Что такое Mem0 простыми словами?

Слой долгосрочной памяти для AI-приложений и агентов. Он сохраняет полезные факты и позже возвращает релевантную память по запросу.

Mem0 заменяет vector database?

Нет. Он использует vector store как один из компонентов. Можно выбрать Qdrant, pgvector, Chroma, Redis и другие backends.

Можно ли использовать Mem0 полностью локально?

Да. Официальные cookbooks поддерживают Ollama для LLM и embeddings плюс локальный Qdrant.

Mem0 работает с Codex?

Да. Есть официальный plugin с lifecycle hooks и direct MCP-вариант. Полный plugin сейчас ориентирован на Mem0 Platform.

Можно ли подключить Mem0 к Claude Code?

Да, через MCP/skills и интеграционные механизмы проекта. Для полностью self-hosted автоматического lifecycle flow потребуется больше настройки, чем для cloud Platform.

Чем Mem0 отличается от обычной истории чата?

Он выделяет и ищет конкретные memories, а не заставляет модель каждый раз читать весь прошлый transcript.

Есть ли Graph Memory в open-source Mem0?

На момент проверки актуальная OSS configuration documentation относит Graph Memory к Mem0 Platform, а не к OSS Python/TypeScript stack.

Какая версия актуальна?

На 21 сентября 2026 года актуальный Python SDK — mem0ai 2.1.0.

AI-агенты и память

Нужно дать локальному или coding-agent постоянную память между сессиями?

Можно подобрать схему Mem0 OSS, Ollama, Qdrant, MCP или hosted Platform и определить, какие факты агент имеет право сохранять автоматически.