本地优先的AI记忆:逐字存储,召回率96.6%,零API调用
MemPalace 把对话历史原样存成文本,不总结不改写。人和项目分成不同“区”,话题是“房间”,内容是“抽屉”,搜索可以限定范围。默认用 ChromaDB,后端可换。LongMemEval 上原始语义搜索召回率 96.6%,全程不调任何 API。
先提醒一件事:MemPalace 只有一个官方网站,就是 mempalaceofficial.com。PyPI 包和这个 GitHub 仓库也是真的。其他任何域名(包括 .tech、.net 或者其他 .com 变种)都是冒充的,可能夹带恶意软件。详情见 docs/HISTORY.md。
另外,如果你在用 Claude Code,它的会话 30 天就过期了,不接自动保存钩子的话会丢数据。下文会讲怎么搞定。
这东西是干嘛的
MemPalace 把你跟 AI 的对话历史存成原始文本,然后用语义搜索把它翻出来。它不总结、不提炼、不改写。
索引是有结构的——人和项目变成不同的区,话题变成房间,原始内容放在抽屉里。搜索的时候可以限定范围,而不是在一整个乱炖的语料库里瞎翻。
检索层是可插拔的。默认用 ChromaDB,接口定义在 mempalace/backends/base.py。换个后端不用动其他代码。
除非你主动同意,否则任何数据都不会离开你的机器。
架构、概念、挖掘流程的完整解释:mempalaceofficial.com/concepts/the-palace。
安装
MemPalace 提供了一个 CLI。建议装在一个隔离的环境里——避免在 Debian/Ubuntu/Homebrew 的 Python 上遇到 PEP 668 错误,也防止依赖(chromadb、numpy、grpcio 等)跟全局包冲突。
用 uv(推荐):
1 | `uv tool install mempalace |
uv tool install 会把 mempalace CLI 放在一个隔离环境里,并且加到你的 PATH 上。
用 pipx(效果一样):
1 | `pipx install mempalace` |
用普通 pip(只能在虚拟环境里,并且你明确需要 import mempalace):
1 | `python -m venv .venv && source .venv/bin/activate |
Docker
也提供了一个容器镜像,用来跑 MCP 服务器或者 CLI,不用本地装 Python。所有数据存在 /data 下(palace、配置、缓存的 embedding 模型),挂个卷就行。
1 | `# 构建 CPU 镜像(打包了 extract 和 spellcheck 扩展) |
把它接到 MCP 客户端(比如 Claude Code)里当 stdio 服务器:
1 | `{ |
docker compose run --rm mcp 也能用(见 docker-compose.yml)。想要 CUDA 加速的 embedding,自己构建 GPU 版:docker build -f Dockerfile.gpu -t mempalace:gpu .,运行时加 --gpus all。构建时可以自定义打包哪些扩展:docker build --build-arg EXTRAS="extract,spellcheck" -t mempalace .
存储后端
默认后端是 ChromaDB。可插拔后端的预览版里,MemPalace 还提供了 sqlite_exact(用来做本地精确向量校验),以及两个可选的外部服务后端——qdrant(REST)和 pgvector(Postgres)。这两个外部后端分别跑在不同的存储基底上(一个 REST/dict 存储,一个 SQL/JSONB 存储),所以它不会无意中被某一个厂商的形状给绑死。
1 | `# 本地无服务后端 |
Qdrant 还可以配 MEMPALACE_QDRANT_API_KEY、MEMPALACE_QDRANT_NAMESPACE、MEMPALACE_QDRANT_TIMEOUT。pgvector 可以配 MEMPALACE_PGVECTOR_NAMESPACE。两个外部后端都用 namespace 做租户隔离(通过 supports_namespace_isolation 能力标识),并且会写一个本地标记文件(qdrant_backend.json / pgvector_backend.json),防止你意外用错的服务器打开 palace。
如果 MEMPALACE_QDRANT_URL 或 MEMPALACE_PGVECTOR_DSN 指向的不是你自己本地或信任的自托管服务,MemPalace 会把原文抽屉里的文本和元数据发过去存。这是你主动选择的后端,不是默认行为。
快速上手
1 | `# 往 palace 里挖掘内容 |
针对 Claude Code、Gemini CLI、MCP 兼容工具以及本地模型的具体用法,见 mempalaceofficial.com/guide/getting-started。
基准测试
下面所有数据都可以在这个仓库里复现,命令在 benchmarks/BENCHMARKS.md。每个问题的完整结果文件也提交在 benchmarks/results_* 下。
LongMemEval —— 检索召回率(R@5,500 个问题)
模式
R@5
是否需要 LLM
原始(纯语义搜索,无启发式,无 LLM)
96.6%
不需要
混合 v4,留出 450 问(在 50 问上调过参,训练时没见过)
98.4%
不需要
混合 v4 + LLM 重排(完整 500 问)
≥99%
任意有能力的模型
原始的 96.6% 不需要任何 API key、不需要云、全阶段不用 LLM。混合管道加了关键词提权、时序邻近提权、偏好模式提取。留出的 98.4% 是诚实的泛化数字。
重排管道用 LLM reader 从检索到的 top-20 会话里挑出最佳候选。任何有基本能力的模型都行——我们用 Claude Haiku、Claude Sonnet 和 Ollama Cloud 上的 minimax-m2.7(不依赖 Anthropic)都复现过。原始和重排之间的差距是模型无关的。我们没把“100%”挂在标题上,因为最后那 0.6% 是通过盯着具体错题改出来的——benchmarks/BENCHMARKS.md 里明确说了那是在“教模型答题”。
其他基准测试(完整结果见 benchmarks/BENCHMARKS.md)
基准
指标
分数
备注
LoCoMo(会话级,top-10,无重排)
R@10
60.3%
1,986 个问题
LoCoMo(混合 v5,top-10,无重排)
R@10
88.9%
同一数据集
ConvoMem(所有类别,250 项)
平均召回
92.9%
每类 50 项
MemBench(ACL 2025,8,500 项)
R@5
80.3%
全类别
我们没有刻意跟 Mem0、Mastra、Hindsight、Supermemory 或 Zep 做并列对比。那些项目在不同数据集上发不同指标,把检索召回率和端到端问答准确率放一起比,是不诚实的。他们自己的数字请去各自的研究页面看。
复现所有结果:
1 | `git clone https://github.com/MemPalace/mempalace.git |
知识图谱
MemPalace 自带一个时间维度的实体关系图——带有效窗口。支持添加、查询、失效、时间线回溯,基于本地 SQLite。用法和工具参考:mempalaceofficial.com/concepts/knowledge-graph。
MCP 服务器
29 个 MCP 工具,覆盖 palace 读写、知识图谱操作、跨区导航、抽屉管理、代理日记。安装和完整工具列表:mempalaceofficial.com/reference/mcp-tools。
代理
每个专门代理在 palace 里拥有自己的区和日记。运行时通过 mempalace_list_agents 可发现——不会在你的系统提示词里塞一堆废话。详情:mempalaceofficial.com/concepts/agents。
自动保存钩子(Claude Code)
MemPalace 提供两个 Claude Code 钩子,一个定期保存,一个在上下文压缩前保存。参考:mempalaceofficial.com/guide/hooks。
如果你时间紧,直接从 Claude Code 会话保留设置检查清单 开始:把钩子接上,备份现有的 JSONL 记录,然后用 mempalace mine ~/.claude/projects/ --mode convos 回填它们。
如果想在钩子产生的文件级 chunk 之上再做每条消息的召回,可以定期跑 mempalace sweep <transcript-dir>——它会为每条 user/assistant 消息存一个独立的原始抽屉,幂等且可恢复。
系统要求
- Python 3.9+
- 一个向量存储后端(默认 ChromaDB)
- 约 300 MB 磁盘空间给 embedding 模型。首次运行时
python -m mempalace.onboarding会提供两个选择:embeddinggemma-300m(多语言,100+ 语言,推荐)或all-MiniLM-L6-v2(仅英语,~30 MB)。详细说明和迁移指南见mempalace/embedding.py的 docstring。 - 核心 benchmark 路径不需要任何 API key。
文档
- 入门指南:
mempalaceofficial.com/guide/getting-started - CLI 参考:
mempalaceofficial.com/reference/cli - Python API:
mempalaceofficial.com/reference/python-api - 完整 benchmark 方法论:
benchmarks/BENCHMARKS.md - 发布说明:
CHANGELOG.md - 更正和公开声明:
docs/HISTORY.md
本文转载自微信公众号,如有侵权请联系删除。
- 标题: 本地优先的AI记忆:逐字存储,召回率96.6%,零API调用
- 作者: lxiol
- 创建于 : 2026-06-20 01:24:37
- 更新于 : 2026-06-20 01:24:37
- 链接: https://blog.lxiol.cn/2026/06/20/本地优先的AI记忆逐字存储召回率966零API调用/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。