Mnemosyne
Mnemosyne 🧠
Промышленный, локально-ориентированный иерархический движок памяти для автономных AI-агентов.
Mnemosyne предоставляет AI-агентам (Hermes, OpenClaw, OpenManus, Claude Desktop, Cursor, Windsurf, CrewAI, LangChain) постоянную структурированную долговременную память. Он соединяет человекочитаемые Obsidian Markdown Vaults с высокоскоростными PostgreSQL + pgvector (HNSW) или SQLite без настройки, обеспечивая гибридный поиск Reciprocal Rank Fusion (RRF), графы знаний на вики-ссылках, временное затухание Эббингауза, общий доступ между агентами флота и асинхронную облачную синхронизацию Google Drive.
📑 Содержание
Related MCP server: Synapto
⚡ Полная матрица возможностей
Возможность | Описание | Преимущество | ||
🤖 MCP Native (v2024-11-05) | Стандартизированный сервер протокола stdio JSON-RPC | Бесшовная интеграция для Claude, Cursor, Windsurf, Hermes, OpenClaw | ||
🔎 Векторный поиск HNSW с высокой полнотой | Индексация HNSW через | Субмиллисекундный векторный поиск без переобучения кластеризации | ||
⚖️ Гибридный поиск RRF | Reciprocal Rank Fusion плотных эмбеддингов (1.0) + GIN FTS (0.8) + граф (0.6) + значимость (0.2) | Захватывает точные технические ключевые слова (CVE, токены кода) и нечёткую семантику | ||
🏛️ Область Wing и Room | Двухуровневая таксономия ( | Устраняет раздувание контекстного окна и междоменные галлюцинации | ||
🌐 Общая память между агентами | Центральная | Коллективный интеллект флота без ущерба для частных баз данных | ||
☁️ Асинхронная синхронизация Google Drive | Локально-ориентированный двунаправленный движок синхронизации с MD5-диффингом и разрешением веток | Субмиллисекундный ввод-вывод агента локально + автоматическое облачное резервное копирование и командный обмен | ||
⏳ Временное затухание Эббингауза | Экспоненциальное затухание $Salience_t = Salience_0 \times (0.95)^{\Delta t}$ с автоматическим архивированием через 90 дней | Автоматически отсеивает временный шум, сохраняя активные воспоминания чёткими | ||
📌 Иммунитет закреплённых воспоминаний | Постоянный иммунитет к затуханию через | Гарантирует, что фундаментальные инструкции и основные правила никогда не исчезнут | ||
📖 Obsidian Zettelkasten | Записывает человекочитаемые заметки Markdown с YAML frontmatter и | Прямой визуальный просмотр, редактирование и визуализация графа в Obsidian | ||
📜 Приёмник с учётом реплик | Разбиение скользящим окном на 1500 символов с перекрытием 200 символов по границам реплик | Сохраняет всю историю разговора, не разрывая блоки кода | ||
🛡️ Защита от инъекций в промпты | Нейтрализует управляющие токены (`< | im_start | > | Предотвращает отравление памяти и атаки захвата контекста |
⚡ Поддержка FastEmbed ONNX | Сверхлёгкий движок эмбеддингов на ONNX runtime (~30MB RAM) | Снижение потребления памяти на 90% по сравнению с тяжёлыми PyTorch | ||
🔄 Резервный SQLite без настройки | Автоматический переход на локальный SQLite, когда PostgreSQL недоступен | 100% паритет функций для автономных рабочих станций разработчиков |
🏗️ Системная архитектура
┌──────────────────────────────────────────────┐
│ AI Agents & LLM Frameworks │
│ Hermes • OpenClaw • Claude • Cursor • Manus │
└──────────────────────┬───────────────────────┘
│ JSON-RPC (stdio) / Python SDK
▼
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Mnemosyne Core (v3.4.0) │
│ │
│ ┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────────────────────────┐ │
│ │ Admission & Security │ │ Multi-Backend Embedder │ │ Turn-Aware Session Ingestor │ │
│ │ - Secret Regex Guard │ │ - FastEmbed (ONNX 30MB) │ │ - Turn boundary splitting │ │
│ │ - Injection Neutralizer │ │ - Remote Microservice │ │ - 1500-char linear sliding window │ │
│ │ - Path Traversal Guard │ │ - SentenceTransformers │ │ - Sequential [[Wiki Link]] chaining │ │
│ └─────────────────────────┘ └─────────────────────────┘ └─────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Hybrid RRF Retrieval & Graph Ranker │ │
│ │ RRF Score = 1.0 * Dense(HNSW) + 0.8 * Keyword(FTS) + 0.6 * Graph + 0.2 * Salience │ │
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────┬───────────────────────────────────────┬─────────────────────────────┘
│ │
┌───────────────────────┴───────────────────────┐ │
▼ ▼ ▼
┌─────────────────────────────┐ ┌─────────────────────────────────────────────┐
│ PostgreSQL + pgvector │ │ Obsidian Markdown Vault (Local) │
│ - HNSW vector_cosine_ops │ │ - Human-Readable Markdown + YAML Frontmatter │
│ - GIN tsvector English FTS │ │ - [[Wikilink]] Knowledge Graph Visualizer │
│ - Self-Healing DB Pool │ │ - Atomic Writes with EXDEV Fallback │
│ - Private DB + shared_db │ └──────────────────────┬──────────────────────┘
└─────────────────────────────┘ │ Async Background Sync
▼
┌─────────────────────────────────────────────┐
│ Google Drive Cloud │
│ - Service Account / OAuth2 Authentication │
│ - MD5 Checksum Verification │
│ - Sibling .conflict-TIMESTAMP.md Resolution │
└─────────────────────────────────────────────┘🧠 Подробный разбор ключевых возможностей
1. Иерархическая таксономия Wing и Room
Перекрёстное загрязнение памяти — основной режим отказа во флотах мультиагентов. Mnemosyne структурирует память как двухуровневый физический дворец:
wing(Domain/Project): Граница домена верхнего уровня (например,ecommerce,pentest,devops,shared).room(Topic/Channel): Детализированное разделение тем (например,database,firewall,stripe_api).
Запросы можно строго ограничивать конкретным wing или room, предотвращая обращение маркетинговых промптов к результатам тестирования на проникновение.
2. Гибридный поиск Reciprocal Rank Fusion (RRF)
Стандартный векторный поиск не справляется с точными техническими строками (например, CVE-2024-38077, 0x7fff5fbff8c0), а поиск по ключевым словам — с семантическими концепциями. Mnemosyne выполняет многокандидатный поиск и объединяет результаты с помощью взвешенного RRF:
$$\text{RRF Score}(d) = \sum_{m \in \text{modes}} w_m \cdot \frac{1}{k + \text{rank}_m(d)} + 0.2 \cdot \text{Salience}(d)$$
Плотный векторный поиск HNSW: Вес $1.0$ (косинусное расстояние по 384-мерным эмбеддингам).
Полнотекстовый поиск PostgreSQL: Вес $0.8$ (
tsvectorс весом заголовка какAи содержимого какB).Рекурсивный обход графа: Вес $0.6$ (рекурсивный CTE, обнаруживающий
[[Wiki Links]]на 1 и 2 хопа).Движок значимости памяти: Вес $0.2$ (оценка важности от $0.0$ до $1.0$).
3. Общий слой памяти между агентами (shared_db)
В автономных мультиагентных средах агенты поддерживают изолированные частные базы данных (toy_db, old_db, candy_db и т.д.), чтобы предотвратить повреждение состояния. Однако коллективный интеллект требует обмена глобальными политиками и проверенными фактами.
Публикация: С помощью
memory_publish_sharedпроверенные заметки публикуются вshared_db.Проверка учётных данных: Содержимое сканируется строгими regex-фильтрами на ключи Anthropic (
sk-ant-), ключи Google Gemini (AIza...), токены HuggingFace (hf_...), ключи OpenAI (sk-proj-...), ключи доступа AWS (AKIA...), токены Slack (xox-) и приватные ключи.Мягкий отказ при поиске: Когда агент запрашивает память,
memory_recallобращается и к частному хранилищу, и кshared_db. Если общая база данных временно недоступна, система плавно деградирует, не прерывая работу агента.
4. Временное затухание Эббингауза и иммунитет закреплённых заметок
Воспоминания естественным образом теряют актуальность со временем. Mnemosyne реализует экспоненциальную кривую забывания Германа Эббингауза:
$$\text{Salience}(t) = \text{Salience}0 \times (0.95)^{\Delta t{\text{days}}}$$
Обратная связь при обращении: Обращение к воспоминанию обновляет
last_accessed_at, сбрасывая его затухание.Ночное автоматическое архивирование: Консолидация автоматически переводит заметки с $\text{Salience} < 0.05$ и без обращений более $>90\text{ дней}$ в
status = 'archived'.Иммунитет закреплённых: Системные правила, основные политики или заметки, отмеченные
pinned=Trueили тегом#pinned, получают постоянный иммунитет от временного затухания ($\text{Salience} = 1.0$).
5. Obsidian Markdown Vault и двунаправленный граф
Каждое воспоминание, созданное агентом, одновременно записывается как человекочитаемый файл .md внутри вашего Obsidian vault:
Zettelkasten Frontmatter: Содержит
title,date,tags,type,salience,wingиroom.Граф знаний: Целевые заметки, упомянутые как
[[Target Note]], автоматически разбираются в двунаправленные рёбра в PostgreSQL.Живой просмотр: Откройте Obsidian на рабочем столе или мобильном устройстве и исследуйте коллективную память вашего флота агентов в интерактивном Graph View Obsidian.
6. Дословный приёмник сессий с учётом реплик
Транскрипты разговоров часто содержат важные нюансы, теряемые при сжатом суммаризации. memory_ingest_session:
Разбивает сырые транскрипты по границам реплик (
User:,Assistant:,### Turn,**Human**:).Для реплик длиннее 1500 символов применяет линейное скользящее окно (1500 символов с перекрытием 200 символов).
Связывает последовательные фрагменты вики-ссылками
[[Session ... Turn 01 Part 02]], сохраняя блоки кода, трассировки выполнения и поток разговора.
7. Асинхронная облачная синхронизация Google Drive
Надёжно храните резервные копии ваших агентных vault и синхронизируйте их между несколькими машинами или мобильными устройствами:
Скорость локального хранения: Вызовы инструментов агента выполняются на скорости локального SSD (<1 мс) без блокировки из-за сетевой задержки Google Drive.
Фоновый демон / синхронизация по Cron: Сканирует файлы хранилища, вычисляет MD5-контрольные суммы и двунаправленно синхронизирует изменения с Google Drive.
Разрешение конфликтов: Если файл изменён одновременно и на Google Drive, и в локальном хранилище агента, Mnemosyne сохраняет входящую версию как
NoteName.conflict-YYYYMMDD-HHMMSS.md, предотвращая потерю данных.Аутентификация: Поддерживает JSON сервисного аккаунта Google Cloud (
GOOGLE_APPLICATION_CREDENTIALS,GDRIVE_SERVICE_ACCOUNT_JSON) и пользовательские токены OAuth2 (GDRIVE_TOKEN_JSON).
8. Гибкие бэкенды эмбеддингов (FastEmbed / микросервис / локальный)
Mnemosyne адаптируется к любому бюджету ресурсов развёртывания:
FastEmbed ONNX Runtime (рекомендуется для автономных узлов): Использует выполнение через C++ в ONNX Runtime (~30 МБ ОЗУ). Ноль накладных расходов PyTorch.
Централизованный микросервис (
mnemosyne.embed_service): Размещает sentence-transformers в одном выделенном контейнере, обслуживающем несколько контейнеров агентов по HTTP (MEMORY_EMBED_URL).Локальные SentenceTransformers: Автономное выполнение PyTorch (
all-MiniLM-L6-v2, 384-мерные).Детерминированный хеш как запасной вариант: Математический векторный хеш с нулевым использованием ОЗУ для сред с экстремальными ограничениями ресурсов.
9. Эшелонированная безопасность и защита от инъекций
Неуязвимость к обходу пути: Двойная проверка канонических путей (
is_relative_to) гарантирует, что файловые операции не могут выйти за пределы корня хранилища.Атомарная запись в соседние файлы: Файлы записываются во временные файлы рядом с целевыми (
.note.pid.tmp) и атомарно переименовываются, с автоматическим запасным вариантом для сквозных монтирований томовEXDEV.Нейтрализация управляющих токенов: Нейтрализует токены инъекций LLM (
<|im_start|>,<|system|>,[INST],<<SYS>>) в прозе, сохраняя блоки кода дословно.Структурированное XML-обрамление контекста: Извлечённые воспоминания оборачиваются в теги
<recalled_memory_context id="..." title="..." source="...">с экранированием внутренних тегов, что гарантирует, что хост-LLM никогда не перепутают извлечённые воспоминания с активными системными директивами.
🛠️ Справочник инструментов MCP (8 инструментов)
Все 8 инструментов изначально предоставляются агентам через стандартный MCP JSON-RPC stdio:
1. memory_remember
Сохраняет приватную заметку памяти в хранилище с семантическим эмбеддингом, тегами и иерархической областью видимости.
{
"title": "PostgreSQL HNSW Tuning",
"content": "For datasets >10,000 vectors, use HNSW with m=16 and ef_construction=64 for optimal recall.",
"tags": ["database", "pgvector", "performance"],
"wing": "engineering",
"room": "databases",
"salience": 0.8,
"pinned": true
}2. memory_publish_shared
Публикует очищенную и проверенную находку или политику в общую память флота, разделяемую между агентами (shared_db).
{
"title": "Fleet Security Policy: SSL Verification",
"content": "All internal agent HTTP requests must enforce SSL certificate validation.",
"tags": ["security", "policy"],
"wing": "shared",
"room": "general"
}3. memory_recall
Ищет воспоминания в приватных и общих базах данных флота, используя гибридный RRF, векторы HNSW, ключевые слова или граф.
{
"query": "HNSW index configuration parameters",
"mode": "hybrid",
"top_k": 5,
"scope": {
"wing": "engineering",
"room": "databases"
},
"include_shared": true
}4. memory_ingest_session
Принимает полную стенограмму разговора и разбивает её на фрагменты дословно по границам реплик.
{
"transcript": "User: How do we configure pgvector?\nAssistant: Use CREATE EXTENSION vector; then create an HNSW index.",
"wing": "engineering",
"room": "sessions"
}5. memory_timeline
Просматривает недавние операции с памятью (запоминание, извлечение, напоминание, консолидация) в хронологическом порядке.
{
"limit": 20
}6. memory_history
Просматривает историю версий и снимки прошлых правок конкретной заметки памяти до обновлений.
{
"title": "PostgreSQL HNSW Tuning",
"limit": 5
}7. memory_remind_me
Планирует будущее проактивное напоминание или повторяющуюся задачу.
{
"title": "Rotate Database Credentials",
"content": "Verify that all 5 agent connection pools are refreshed with new passwords.",
"trigger_at": "2026-09-01T00:00:00Z",
"recurring": "monthly"
}8. memory_audit
Получает метрики состояния памяти в реальном времени, статус бэкенда хранилища, количество запросов и активные крылья.
{}🌐 Продакшен-архитектура мультиагентного флота
В мультиагентных продакшен-конфигурациях (таких как флот Hermes из 5 агентов) Mnemosyne изолирует базы данных агентов во внутренней сети Docker, предоставляя при этом общий интеллект:
┌─────────────────────────────────────────┐
│ Production VPS (${VPS_HOST}) │
└────────────────────┬────────────────────┘
│
┌───────────────────┬──────────────────┼───────────────────┬──────────────────┐
▼ ▼ ▼ ▼ ▼
┌──────────────────┐┌──────────────────┐┌──────────────────┐┌──────────────────┐┌──────────────────┐
│ hermes-agent ││ hermes-assistant ││ hermes-marketing ││ hermes-pentest ││ hermes-trader │
│ (Toy) ││ (Old) ││ (Candy) ││ (Pencil) ││ (Coin) │
│ Database: ││ Database: ││ Database: ││ Database: ││ Database: │
│ toy_db ││ old_db ││ candy_db ││ pencil_db ││ trader_db │
└────────┬─────────┘└────────┬─────────┘└────────┬─────────┘└────────┬─────────┘└────────┬─────────┘
│ │ │ │ │
└───────────────────┴──────────────────┼───────────────────┴──────────────────┘
│
▼
┌───────────────────────────────────┐
│ PostgreSQL + pgvector (HNSW) │
│ - Private DBs: toy_db, old_db.. │
│ - Shared DB: shared_db │
└───────────────────────────────────┘🚀 Быстрый старт и установка
1. Установка
# Standard installation
pip install mnemosyne-memory
# With Google Drive Cloud Synchronization support
pip install "mnemosyne-memory[gdrive]"
# With lightweight FastEmbed ONNX support (~30MB RAM)
pip install "mnemosyne-memory[fastembed]"
# Full installation (All extras + Dev dependencies)
pip install "mnemosyne-memory[dev,gdrive,fastembed,embed-service]"2. Запуск с Docker Compose
Запустите контейнер PostgreSQL + pgvector:
docker compose up -d3. Запуск MCP-сервера
# Standalone with local SQLite (Zero configuration)
python -m mnemosyne server
# With PostgreSQL + pgvector
MEMORY_DB_DSN="postgresql://mnemosyne:***@localhost:5432/my_agent_db" python -m mnemosyne server🤖 Рецепты интеграции с агентными фреймворками
1. Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"mnemosyne": {
"command": "python3",
"args": ["-m", "mnemosyne", "server"],
"env": {
"MEMORY_VAULT_PATH": "/Users/username/Documents/Obsidian/AgentVault",
"MEMORY_DEFAULT_WING": "claude"
}
}
}
}2. Cursor IDE (.cursor/mcp.json)
{
"mcpServers": {
"mnemosyne": {
"command": "python3",
"args": ["-m", "mnemosyne", "server"],
"env": {
"MEMORY_VAULT_PATH": "./.vault",
"MEMORY_DEFAULT_WING": "codebase"
}
}
}
}3. Агент Hermes (~/.hermes/config.yaml)
mcp_servers:
obsidian_memory:
command: python3
args: ["-m", "mnemosyne", "server"]
env:
MEMORY_DB_DSN: "postgresql://mnemosyne:***@${DB_HOST}:5432/toy_db"
MEMORY_SHARED_DSN: "postgresql://mnemosyne:***@${DB_HOST}:5432/shared_db"
MEMORY_VAULT_PATH: "/opt/data/vault"4. OpenClaw (openclaw-config.yaml)
plugins:
mcp_servers:
mnemosyne:
command: "python3"
args: ["-m", "mnemosyne", "server"]
env:
MEMORY_VAULT_PATH: "~/.openclaw/vault"
MEMORY_DEFAULT_WING: "openclaw"5. Python SDK и скрипты автономных агентов
from mnemosyne import UnifiedMemorySystem
mem = UnifiedMemorySystem(
vault_path="~/.agent/vault",
dsn="postgresql://mnemosyne:***@localhost:5432/agent_db",
shared_dsn="postgresql://mnemosyne:***@localhost:5432/shared_db"
)
# Remember fact
mem.remember(
title="Kubernetes Cluster Policy",
content="Deployments in staging must specify resource memory limits.",
wing="infrastructure",
room="k8s",
tags=["kubernetes", "policy"],
pinned=True
)
# Hybrid recall
results = mem.recall(
query="staging memory limits",
mode="hybrid",
scope={"wing": "infrastructure"}
)
for r in results:
print(r["title"], "->", r["formatted_context"])💻 Полный справочник команд CLI
Mnemosyne включает полнофункциональный управляющий CLI:
# 1. Store a memory note
python -m mnemosyne remember "API Architecture" "Uses Bearer JWT auth." --tags security auth --wing backend --room api --salience 0.8 --pinned
# 2. Publish shared fleet memory
python -m mnemosyne publish-shared "Global Production Policy" "Always check SSL certs." --wing devops
# 3. Search memories
python -m mnemosyne recall "JWT authentication" --mode hybrid --top-k 5 --wing backend
# 4. View activity timeline
python -m mnemosyne timeline --limit 20
# 5. Trigger Ebbinghaus decay & link reconciliation
python -m mnemosyne consolidate --decay-rate 0.95 --archive-threshold 0.05
# 6. Check system statistics & health
python -m mnemosyne stats
# 7. Synchronize with Google Drive (One-off pass)
python -m mnemosyne sync-gdrive --folder "My-Agent-Vault" --credentials service-account.json
# 8. Run Google Drive Sync as a background daemon
python -m mnemosyne sync-gdrive --daemon --interval 60
# 9. Run standalone Centralized Embedding Microservice
python -m mnemosyne embed-service --host 0.0.0.0 --port 8000 --model all-MiniLM-L6-v2⚙️ Справочник переменных окружения
Переменная | По умолчанию | Описание |
|
| Путь в файловой системе к локальному каталогу хранилища Obsidian Markdown |
| (нет) | DSN PostgreSQL (например, |
| (нет) | DSN PostgreSQL для опциональной общей базы данных флота, разделяемой между агентами |
|
| Идентификатор агента-источника в мультиагентных развёртываниях флота |
| (нет) | URL удалённого централизованного микросервиса эмбеддингов (например, |
|
| Установите |
| (нет) | Путь к JSON-файлу сервисного аккаунта Google Cloud для синхронизации Google Drive |
| (нет) | Строковое JSON-содержимое учётных данных сервисного аккаунта Google Cloud |
| (нет) | Строковое JSON-содержимое авторизованного пользовательского токена Google OAuth2 |
|
| Отключает форки токенизатора HuggingFace для сохранения целостности потока stdio JSON-RPC |
|
| Отключает индикаторы прогресса в stdio, чтобы потоки MCP оставались чистыми |
|
| Установите |
|
| Установите |
🧪 Тестирование и бенчмарки
Mnemosyne поддерживает комплексный набор тестов (модульные тесты, тесты безопасности на инъекции, тесты SQLite и интеграционные тесты с работающим PostgreSQL pgvector):
# Run all unit tests
pytest tests/ -v -m "not integration"
# Run full test suite including live PostgreSQL + pgvector tests
MEMORY_DB_DSN="postgresql://mnemosyne:***@localhost:5432/test_db" pytest tests/ -v📄 Лицензия
Лицензия Apache-2.0. Создано для экосистемы открытых автономных агентов. Полные условия см. в LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGives AI agents persistent memory with semantic search, automatic extraction, and memory decay, accessible via MCP protocol.12MIT
- AlicenseNot gradedqualityAmaintenanceProvides persistent, searchable memory for MCP-compatible agents, enabling recall by meaning, automatic decay, trust scoring, and cross-agent handoffs.5MIT
- AlicenseAqualityDmaintenanceProvides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.41MIT
- FlicenseNot gradedqualityBmaintenanceProvides persistent, causal memory for AI agents with semantic recall, causal tracking, and importance-based forgetting through MCP tools.
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Shared long-term memory vault for AI agents with 20 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/M4F-S/gomaa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server