mnemosyne-oss/mnemosyne
Zero-cloud AI memory that works everywhere. SQLite-backed. One pure-Python dependency.
Mnemosyne – 代理的本地优先 AI 记忆
它是什么
Mnemosyne 是一个开源、以 SQLite 为后端的记忆层,任何 LLM 驱动的代理都可以使用。它将事实、嵌入和时间三元组存储在本地,并可通过以下方式访问:
- MCP 服务器(一个简单的 JSON-over-STDIO / SSE / HTTP 协议),可与许多现有代理(Claude Code、Cursor、Codex、OpenWebUI 等)配合使用,
- Python SDK(
remember、recall),或 - Hermes 插件,用于 Hermes 代理框架。
所有这些只需单一 pip install mnemosyne-memory 即可运行,且不需要外部向量数据库或云服务 – 唯一的依赖是 SQLite 数据库文件。
核心概念
| 组件 | 角色 |
|---|---|
| 工作记忆 | 在 LLM 调用前自动注入的热上下文;项目在 TTL 后过期。 |
| 情景记忆 | 使用 SQLite-vec + FTS5 进行混合向量关键词搜索的长期存储。 |
| TripleStore | 带版本化的时间知识图谱(主语-谓语-宾语)。 |
| BEAM(双层情景-关联记忆) | 结合三层的整体架构,并将结果评分为 50% 向量相似度 + 30% FTS5 排名 + 20% 重要性。 |
向量是二进制(MIB) – 384 维浮点嵌入被压缩为 48 字节,实现 32 倍大小缩减,并允许直接在 SQLite 内进行汉明距离搜索。
如何使用
CLI(快速开始)
pip install mnemosyne-memory # 核心
pip install "mnemosyne-memory[all]" # 完整功能集
# 启动 MCP 服务器(默认 stdio)
mnemosyne mcp
# 存储和检索事实
mnemosyne store "User prefers dark mode"
mnemosyne recall "preferences"
Python SDK(嵌入任何代理)
from mnemosyne import remember, recall
remember("User prefers dark mode", importance=0.9)
results = recall("dark mode", top_k=3)
您也可以设置范围、过期时间、提取实体,或让 LLM 提取事实(extract=True)。
集成示例
| 平台 | 集成方式 |
|---|---|
| Cursor、Claude Code、Codex、Windsurf | 在平台的 *.json 配置文件中添加 MCP 条目。 |
| OpenWebUI | 将单行桥接文件放入 data/tools/。 |
| OpenClaw | 安装 mnemosyne-memory[openclaw] 并在配置中引用提供者。 |
| Hermes Agent | 安装 mnemosyne-hermes;插件会自动注册记忆提供者。 |
| 任何 Python 代理 | import mnemosyne 并调用 SDK。 |
完整的集成指南位于 docs/integrations/。
基准测试(如报告所述)
- BEAM 端到端问答(100K 项目):65.2%(v3.0.0,2026 年 5 月)– 与其他开源记忆系统相当。
- BEAM 纯检索:Recall@10 在 100K 到 10M 项目间保持约 20%,而延迟在 10M 时降至 35 毫秒,存储空间次线性增长(10M 条目为 7.2 MB)。
- LongMemEval:先前声称 98.9% 的召回率,但该运行已撤回,等待可重现的重新运行。
关键要点是,随着语料库增长,检索质量保持稳定,且系统使用情景压缩来保持存储空间极小。
安全与隐私模型
- 本地优先:默认情况下,没有任何数据离开机器。
- 可选同步:设备之间的双向增量同步,具有客户端加密(AES-128-CBC 或 XSalsa20-Poly1305)。服务器只看到元数据。
- 无遥测:除非您启用远程嵌入 API,否则没有分析或云调用。
- 可配置的 TLS,用于任何远程同步或嵌入端点。
配置重点
| 变量 | 默认值 | 控制内容 |
|---|---|---|
MNEMOSYNE_DATA_DIR |
~/.hermes/mnemosyne/data |
SQLite 文件的位置 |
MNEMOSYNE_VEC_TYPE |
int8 |
向量压缩格式(float32、int8、bit) |
MNEMOSYNE_EMBEDDING_API_URL |
OpenRouter 端点 | 远程嵌入服务(如果您不运行本地嵌入) |
MNEMOSYNE_EMBEDDING_MODEL |
BAAI/bge-small-en-v1.5 |
要使用的嵌入模型 |
MNEMOSYNE_WM_MAX_ITEMS |
10000 |
热工作记忆缓存的大小 |
环境变量可让您调整权重(MNEMOSYNE_VEC_WEIGHT、FTS_WEIGHT、IMPORTANCE_WEIGHT)和近期衰减。
谁可能使用它?
- 构建自定义 LLM 代理的开发者,他们想要持久、可搜索的记忆,而无需运行单独的向量数据库。
- 在本地或边缘设备部署的团队(Raspberry Pi、低 RAM VPS),因为整个堆栈只需几百 MB。
- 注重隐私的用户,他们需要跨设备的加密同步。
当前状态
Mnemosyne 是一个真实、积极维护的开源项目(MIT 许可证),目标是解决与 Mem0、Letta、Honcho 等相同的问题领域,但其区别在于:
- 纯 Python,单一 SQLite 文件,
- 内置 MCP 服务器,可即插即用于许多现有代理,以及
- 客户端加密同步作为核心功能。
以上所有细节均直接取自存储库的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目