MemPalace:本地优先AI记忆系统,原始R@5召回率达96.6%且无需API!
MemPalace:本地优先的AI记忆系统
MemPalace是一款本地优先的AI记忆系统,采用逐字存储方式,具备可插拔后端,在LongMemEval测试中原始R@5召回率达到96.6%,而且无需调用API。这数据可真不错,不是吗?
注意事项
得谨防冒名网站!MemPalace没有其他官方网站,唯一的官方来源是这个GitHub仓库、PyPI软件包,以及mempalaceofficial.com上的文档。任何其他域名(包括.tech、.net或其他.com变体)都是冒名网站,可能会传播恶意软件。详细信息和时间线请查看docs/HISTORY.md。
重要提示
Claude Code会话若未设置自动保存挂钩,30天后将过期。若想实现最短的恢复/设置路径,那就使用Claude Code保留设置清单。
系统介绍
MemPalace以逐字文本形式存储对话历史,并通过语义搜索进行检索,不进行总结、提取或释义。其索引结构独特,人员和项目构成“翼”,主题构成“房间”,原始内容存于“抽屉”中,这样搜索可以限定范围,而非在扁平语料库中进行。检索层是可插拔的,当前默认使用ChromaDB,接口在mempalace/backends/base.py中定义,可在不影响系统其他部分的情况下替换为其他后端。除非你主动选择,否则数据不会离开你的设备。架构、概念和挖掘流程可查看mempalaceofficial.com/concepts/the-palace。
安装方法
MemPalace提供了CLI,建议在隔离环境中安装,以避免在Debian/Ubuntu/Homebrew Python上出现PEP 668错误,并防止mempalace的依赖项(如chromadb、numpy、grpcio等)与全局site-packages中的其他内容冲突。推荐使用uv工具:`uv tool install mempalace`会将mempalace CLI安装到隔离环境并添加到PATH中;也可以使用`uv tool install mempalace mempalace init ~/projects/myapp`。若你更喜欢pipx,可使用`pipx install mempalace`。若想在激活的虚拟环境中使用plain pip,可执行`python -m venv .venv && source .venv/bin/activate`后再执行`pip install mempalace`。
快速开始
- **挖掘内容到记忆库**:
- `mempalace mine ~/projects/myapp`可挖掘项目文件。
- `mempalace mine ~/.claude/projects/ --mode convos`可挖掘Claude Code会话(可通过`--wing`按项目限定范围)。
- **搜索**:`mempalace search "why did we switch to GraphQL"`
- **为新会话加载上下文**:`mempalace wake-up`
对于Claude Code、Gemini CLI、MCP兼容工具和本地模型的使用,可查看mempalaceofficial.com/guide/getting-started。
基准测试
以下所有数据均可通过本仓库中的benchmarks/BENCHMARKS.md中的命令复现。完整的每题结果文件保存在benchmarks/results_*下。
| 模式 | R@5 | 是否需要LLM |
| --- | --- | --- |
| 原始(语义搜索,无启发式方法,无LLM) | 96.6% | 否 |
| 混合v4,保留450个问题(在50个开发问题上调整,训练时未见过) | 98.4% | 否 |
| 混合v4 + LLM重排(完整500个问题) | ≥99% | 任何可用模型 |
原始的96.6%召回率无需API密钥、云服务和LLM。混合管道增加了关键词提升、时间接近性提升和偏好模式提取;保留的98.4%是可推广的真实数据。重排管道使用LLM阅读器从检索到的前20个会话中选出最佳候选。它适用于任何能力合理的模型,如Claude Haiku、Claude Sonnet和通过Ollama Cloud的minimax-m2.7(不依赖Anthropic)。原始和重排结果之间的差距与模型无关,我们未宣传“100%”的结果,因为最后0.6%是通过检查特定错误答案得到的,benchmarks/BENCHMARKS.md指出这存在应试嫌疑。
其他基准测试(完整结果见benchmarks/BENCHMARKS.md):
| 基准测试 | 指标 | 得分 | 备注 |
| --- | --- | --- | --- |
| LoCoMo(会话,前10,无重排) | R@10 | 60.3% | 1986个问题 |
| LoCoMo(混合v5,前10,无重排) | R@10 | 88.9% | 同一组问题 |
| ConvoMem(所有类别,250项) | 平均召回率 | 92.9% | 每个类别50项 |
| MemBench(ACL 2025,8500项) | R@5 | 80.3% | 所有类别 |
我们有意不与Mem0、Mastra、Hindsight、Supermemory或Zep进行并排比较,因为这些项目在不同的分割数据上发布不同的指标,将检索召回率与端到端问答准确率进行比较并不公平。可查看每个项目的研究页面获取其发布的数据。
复现所有结果:
```bash
git clone https://github.com/MemPalace/mempalace.git
cd mempalace
uv sync --extra dev # 或者:pip install -e ".[dev]"
# 查看benchmarks/README.md获取数据集下载命令
uv run python benchmarks/longmemeval_bench.py /path/to/longmemeval_s_cleaned.json
```
知识图谱
MemPalace包含一个带有有效性窗口的时间实体关系图,支持添加、查询、失效和时间线操作,由本地SQLite支持。使用方法和工具参考可查看mempalaceofficial.com/concepts/knowledge-graph。
MCP服务器
29个MCP工具可用于记忆库的读写、知识图谱操作、跨翼导航、抽屉管理和代理日记。安装方法和完整工具列表可查看mempalaceofficial.com/reference/mcp-tools。
代理
每个专业代理在记忆库中有自己的“翼”和日记,可在运行时通过`mempalace_list_agents`发现,不会增加系统提示的负担,详情可查看mempalaceofficial.com/concepts/agents。
自动保存挂钩
两个Claude Code挂钩可定期保存并在上下文压缩前保存,详情可查看mempalaceofficial.com/guide/hooks。若时间紧迫,可从Claude Code保留设置清单开始:设置挂钩,备份现有的JSONL转录文件,并使用`mempalace mine ~/.claude/projects/ --mode convos`回填数据。若想在文件级块的基础上实现每条消息的召回,可定期运行`mempalace sweep`,它会为每个用户/助手消息存储一个逐字抽屉,具有幂等性且可安全恢复。
系统要求
- Python 3.9及以上版本
- 向量存储后端(默认使用ChromaDB)
- 约300 MB磁盘空间用于存储嵌入模型。入门向导(`python -m mempalace.onboarding`)提供embeddinggemma - 300m(多语言,支持100多种语言,推荐)或all - MiniLM - L6 - v2(仅英文,约30 MB)。详细信息和迁移说明可查看mempalace/embedding.py中的文档字符串。核心基准测试路径无需API密钥。
文档
- 入门指南:mempalaceofficial.com/guide/getting-started
- CLI参考:mempalaceofficial.com/reference/cli
- Python API参考:mempalaceofficial.com/reference/python-api
- 完整基准测试方法:benchmarks/BENCHMARKS.md
- 发布说明:CHANGELOG.md
- 更正和公告:docs/HISTORY.md
贡献
欢迎提交PR,详情可查看CONTRIBUTING.md。
许可证
采用MIT许可证,详情见LICENSE。
