mempalace 是给 AI agent 的开源记忆系统,做了两个刻意的选择:本地优先(无需 API key,在你的机器上跑),以及逐字存储对话历史而非摘要,然后用语义检索取回。README 以一个 benchmark 数字开场,而这个项目最有意思的不是数字本身,而是它如何谨慎地修正自己的声称。本文讲清设计、安装,以及那份诚实记录:它罕见到可以当卖点。
设计
比喻是记忆宫殿,而且是承重的:
- Palace 是整个记忆库。
- Wing 放人物和项目。
- Room 放话题。
- Drawer 放原始逐字内容。
在此之上是一个知识图谱(实体-关系边,带时间有效窗口和衰减动态),以及一套 29 个 MCP 工具,把 palace 读写、图操作和按 agent 的日记暴露给你的 agent。存储可插拔:默认 ChromaDB,另有 sqlite-exact、Qdrant、pgvector 选项。截至 v3.3.6(2026-06),默认嵌入模型换成了多语言模型,显著改善跨语言检索。
安装
# 推荐,隔离环境
uv tool install mempalace
mempalace init ~/projects/myapp
# 或 pipx / pip
pipx install mempalace
mempalace mine ~/projects/myapp # 采集项目文件
mempalace mine ~/.claude/projects/ --mode convos # 采集 Claude Code 对话
mempalace search "why did we switch to GraphQL"
mempalace wake-up # 加载上下文
有 Docker 镜像把它作为 MCP server 运行,pip install mempalace[pgvector] 加上 Postgres 后端。
那份诚实记录,以及它为何重要
多数项目会夸大 benchmark。mempalace 公开收回了自己的说法,这是信任它最强的理由。据其 HISTORY 和 changelog:早期版本把检索召回(R@5)与竞品的端到端 QA 准确率混为一谈,而这二者不可比;社区审计后它重写了表格、清楚区分两者,现在声明 LongMemEval 上 raw 模式(纯语义、零 LLM 调用)达 96.6% R@5,混合管线在有限集上更高。它撤回了一个通过检查特定错答而达成的 “100%” 声称(应试式作弊),也撤回了一个被夸大的压缩头条。结果可从提交的 JSONL 文件复现。所以当描述说 “best-benchmarked” 时,把它读作一个自我声称:而这个项目至少在限定条件上做得异常严谨。
适合与不适合
适合:需要持久、本地记忆且不想把数据发往云端的 agent 和工作流,以及任何想要逐字召回而非有损摘要的人。不太适合:你想要一个零运维的托管记忆服务(云产品安装更省事),或你无法容忍一个高速迭代的本地优先项目的粗糙边角(见下)。
横向对比
| 项目 | 路子 | Stars(2026-06) |
|---|---|---|
| MemPalace/mempalace | 本地优先、逐字、语义 + 图 | ~55k |
| mem0ai/mem0 | AI 记忆,有云端选项 | ~58k |
| letta-ai/letta(原 MemGPT) | 带长期记忆的 agent 框架 | ~23k |
最干净的对照是和 mem0:使命相近,但 mempalace 本地优先且逐字,而 mem0 提供托管路径。mempalace 刻意不与 mem0 等做正面 benchmark 对比,理由是它们在不同切分上发布不同指标。letta 更像 agent 框架,其记忆基于 token 压缩。
issue 里的坑
它本地优先且高速迭代,所以粗糙边角是运维性的:
- 一个 ChromaDB 压实错误(Rust u64 与 SQL BLOB 不兼容)曾让所有写工具失败(#1714)。
- HNSW 索引文件可能因幂等性问题无界增长(#1712),自修复例程有时把健康的小索引误检疫为损坏(#1716)。
- 单次 MCP 写可能碎成多个 chunk 行,破坏按返回 id 的 get/delete(#1763)。
主线是:检索思路扎实,存储引擎管道(ChromaDB、HNSW、FTS5 重建)才是需要小心的地方。备份你的 palace,运行 repair 时心里有数。
FAQ
mempalace 免费吗? 是。mempalace 是 MIT 许可、本地优先、无需 API key 即可运行,raw 模式没有按次调用成本。
mempalace 会把我的数据发到云端吗? 不会。mempalace 设计上本地优先、数据存在你机器上;raw 模式检索零 API 调用。
mempalace 支持哪些存储后端? 默认 ChromaDB,另有做本地精确检索的 sqlite-exact,以及面向更大或共享部署的 Qdrant、pgvector。
mempalace 比 mem0 好吗? 二者选择不同:mempalace 本地优先且逐字,mem0 提供托管路径。mempalace 刻意不做正面 benchmark 对比,理由是指标不可比,所以按”你要本地掌控还是托管服务”来选。
相关阅读
agent 效率的 token 一侧见 chopratejas/headroom;把记忆用在更广 agent 工作流里见 obra/superpowers。