Mnemosyne — zero-cloud память для AI-агентов в одном SQLite-файле

· 2 мин чтения
ai-agents memory mcp knowledge-graph self-hosted
📂 Исходный код на GitHub

Универсальный слой памяти для AI-агентов, работающий без облака: один pip install, один SQLite-файл, ноль внешних сервисов. Архитектура BEAM — рабочая память с автоинжекцией контекста, эпизодическая память с гибридным поиском sqlite-vec + FTS5 и темпоральный TripleStore. Бинарные векторы MIB сжимают эмбеддинги в 32 раза, гибридный скоринг считается целиком внутри SQLite. Встроенный MCP-сервер (stdio/SSE), Python SDK, CLI, двунаправленная синхронизация между устройствами с опциональным шифрованием на клиенте. Совместим с Claude Code, Cursor, Codex CLI, Windsurf, OpenWebUI, OpenClaw и Hermes Agent. Python 3.10+, MIT.

Mnemosyne — zero-cloud память для AI-агентов в одном SQLite-файле

Mnemosyne — это открытый слой памяти для AI-агентов с философией zero-cloud: один pip install, один файл SQLite и никаких внешних сервисов. Проект задуман как Hermes-first, но работает с любым агент-фреймворком — Claude Code, Cursor, OpenAI Codex CLI, Windsurf, OpenWebUI, OpenClaw или собственным агентом на Python — через встроенный MCP-сервер или прямой SDK. Написан на чистом Python (3.10+), распространяется под лицензией MIT и собрал около 2,5 тысяч звёзд на GitHub.

Проблема, которую решает Mnemosyne, знакома каждому, кто работает с агентами: у моделей нет долговременного состояния. Каждая сессия начинается с нуля — агент забывает предпочтения пользователя, выводы прошлых задач и контекст проекта. Mnemosyne даёт агенту память, не требуя ни облака, ни развёртывания отдельной инфраструктуры вроде PostgreSQL, Qdrant или Docker-стека: всё помещается в один SQLite-файл на машине пользователя.

Архитектура BEAM: три уровня памяти

В основе лежит BEAM (Bilevel Episodic-Associative Memory) — трёхуровневая схема памяти, напоминающая организацию памяти человека:

  • Working Memory (рабочая память) — «горячий» контекст, который автоматически инжектируется перед вызовами LLM; переполнение контролируется лимитом элементов и вытеснением по TTL.
  • Episodic Memory (эпизодическая память) — долгосрочное хранилище с гибридным поиском на связке sqlite-vec + FTS5; рабочая память периодически консолидируется в неё, сжимая сырые детали в выводы.
  • TripleStore — темпоральный граф знаний с цепочками версий: факты вида «субъект–предикат–объект» хранятся с временными границами (valid_from, запросы as_of), так что история изменений не теряется.

Все три уровня живут в одном SQLite-файле. Никаких ANN-индексов и внешних векторных баз — расстояние Хэмминга считается прямо внутри SQLite.

Гибридный поиск и бинарные векторы

Ранжирование воспоминаний — гибридное: 50% векторного сходства + 30% ранга FTS5 + 20% важимости (importance). Каждое воспоминание получает вес важимости при записи, а при поиске можно добавить временно́е затухание с настраиваемым периодом полураспада.

Отдельного внимания заслуживает техника MIB (information-theoretic binarization): 384-мерные float32-эмбеддинги сжимаются в 48 байт — в 32 раза — и сравниваются расстоянием Хэмминга целиком внутри SQLite. Это позволяет хранить миллионы воспоминаний в считанные мегабайты: на бенчмарке BEAM корпус из 10 млн сообщений занял 7,2 МБ благодаря эпизодической компрессии с экономией 9,4x.

Бенчмарки

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

LongMemEval (ретрив, апрель 2026): 98,9% Recall@All@5 на 100 инстансах с моделью bge-small-en-v1.5 — выше, чем у Mempalace (96,6% Recall@5) и Hindsight (91,4%), хотя авторы сами предупреждают, что метрики Recall@All@5 и Recall@5 не идентичны и прямое ранжирование некорректно.

BEAM (end-to-end QA, v3.0.0, май 2026): 65,2% на масштабе 100K против 63,0% у Honcho и 73,4% у Hindsight. Авторы отмечают, что их прогон судился другой моделью-джаджем, чем прогон Hindsight, поэтому цифры в одной строке напрямую несравнимы.

BEAM retrieval (чистый ретрив): абсолютные 20% Recall@10 невысоки, но ключевое свойство — метрика не деградирует при росте корпуса на два порядка (от 100K до 10M сообщений), а точность воздержания (abstention accuracy) равна 100%: система скорее откажется отвечать, чем выдумает.

Работает со всем

Платформа Метод Подключение
Claude Code MCP блок в claude.json
Cursor MCP .cursor/mcp.json
OpenAI Codex CLI MCP .codex/mcp.json
Windsurf MCP .windsurf/mcp_config.json
OpenWebUI нативный @tool bridge-файл в data/tools/
OpenClaw нативный провайдер pip install mnemosyne-memory[openclaw]
Hermes Agent MCP + плагин поставляется включённым
Любой MCP-клиент MCP (stdio/SSE) одна строка конфигурации
Любой Python-агент SDK import mnemosyne

Python API и CLI

Сводится к двум функциям:

from mnemosyne import remember, recall

remember("User prefers dark mode interfaces",
         importance=0.9, source="preference")

results = recall("interface preferences", top_k=3)

Помимо базового цикла есть запись с областью видимости (scope="global"), сроком годности (valid_until), извлечением сущностей, LLM-извлечением фактов, темпоральными тройками для графа знаний и «банками памяти» — изолированными доменами для разных проектов или ролей.

CLI повторяет те же операции и добавляет эксплуатационные команды:

mnemosyne mcp               # MCP server (stdio)
mnemosyne store "fact"      # direct write
mnemosyne recall "query"    # search
mnemosyne sleep             # run consolidation
mnemosyne export backup.json

Приватность и синхронизация

Модель безопасности последовательна: local-first по умолчанию (данные не покидают машину, пока не включён sync), ноль телеметрии, BYOK через системный keychain.

Для сценариев «десктоп + VPS» есть Mnemosyne Sync — двунаправленная дельта-синхронизация с опциональным шифрованием на клиенте (Fernet AES-128-CBC или PyNaCl SecretBox). При включённом шифровании удалённый сервер видит только метаданные — ID событий и таймстемпы, — а содержимое памяти, веса важимости и эмбеддинги шифруются до отправки. Авторы утверждают, что это единственная система памяти с клиентским шифрованием sync-нагрузок как основной фичей.

Установка и профили

pip install mnemosyne-memory              # ядро, ~50 МБ RAM
pip install "mnemosyne-memory[all]"       # локальные эмбеддинги + LLM-консолидация

Ядро хватит даже на Raspberry Pi 4; профиль [embeddings] (~800 МБ) добавляет локальную генерацию векторов через fastembed, [all] (~1,5 ГБ) — ещё и локальную LLM-консолидацию.

Важно для неанглоязычного использования: эмбеддинги по умолчанию (bge-small-en-v1.5) оптимизированы под английский. Для русского и других языков авторы предписывают сменить модель через MNEMOSYNE_EMBEDDING_MODEL — например, на paraphrase-multilingual-MiniLM-L12-v2 или multilingual-e5-large.

Итог

Mnemosyne — зрелый и прагматичный ответ на вопрос «где агент хранит память»: без облака, без Docker-оркестрации, в одном файле, который можно скопировать, забэкапить и зашифровать. Трёхуровневая архитектура BEAM, гибридный поиск и бинарные векторы делают систему компактной, а встроенный MCP-сервер — совместимой практически с любым агентом. Проект активно развивается, сопровождается подробной документацией и честными бенчмарками.

Источник: https://github.com/mnemosyne-oss/mnemosyne