开源项目

mempalace

mempalace

本地优先的 AI 记忆系统,直接将对话历史原文存入向量库并通过语义搜索检索,不做摘要或改写。在 LongMemEval 上以纯语义搜索达到 96.6% R@5,无需任何 LLM 调用,混合策略可达 98.4%。后端可插拔(默认 ChromaDB),提供 CLI、Python API 和 MCP 服务器,还能构建时序知识图谱。适合需要长期上下文的 LLM 应用(如 Claude Code、自定义 agent),且数据完全本地可控。

README

MemPalace

MemPalace

本地优先的 AI 记忆。原文存储、可插拔后端、LongMemEval 原始 R@5 达到 96.6%——无需任何 API 调用。

[!CAUTION] 警惕假冒网站。 MemPalace 没有其他官方网站。唯一官方来源是本 GitHub 仓库、PyPI 包 以及 mempalaceofficial.com 上的文档。任何其他域名(包括 .tech、.net 或其他 .com 变体)均为假冒,可能分发恶意软件。详情与时间线: docs/HISTORY.md。

[!IMPORTANT] Claude Code 会话在 30 天后过期,除非挂接了自动保存钩子。 阅读此文 →

需要最短的恢复/设置路径?请使用 Claude Code 保留设置清单。


它是什么

MemPalace 将对话历史以原文形式存储,并通过语义搜索进行检索。它不会进行摘要、提取或转述。索引是结构化的——人和项目成为 wing(翼),主题成为 room(房间),原始内容存在于 drawer(抽屉) 中——因此搜索可以限定范围,而不是针对扁平化的语料库进行。

检索层是可插拔的。当前默认使用 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 CLI 安装到 PATH 上的隔离环境中:

uv tool install mempalace
mempalace init ~/projects/myapp

如果您偏好 pipx,它也能实现相同效果:pipx install mempalace。

仅当您在激活的 virtualenv 中并明确希望 import mempalace 可用时,才使用纯 pip:

python -m venv .venv && source .venv/bin/activate
pip install mempalace

快速开始

# 将内容挖掘到 palace 中
mempalace mine ~/projects/myapp                    # 项目文件
mempalace mine ~/.claude/projects/ --mode convos   # Claude Code 会话(使用 --wing 按项目限定范围)

# 搜索
mempalace search "我们为什么改用 GraphQL"

# 为新会话加载上下文
mempalace wake-up

有关 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% 不需要
Hybrid v4,保留 450q(在 50 个开发集上调优,未在训练中见过) 98.4% 不需要
Hybrid 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(会话,top-10,无重排序) R@10 60.3% 1,986 个问题
LoCoMo(hybrid 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 的并排比较。这些项目在不同的数据集划分上发表不同的指标,将检索召回率与端到端 QA 准确性直接比较并非诚实的对比。请参阅各项目自己的研究页面以获取其公布的数据。

重现所有结果:

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 工具涵盖 palace 读写、知识图谱操作、跨 wing 导航、drawer 管理和 agent 日记。安装及完整工具列表: mempalaceofficial.com/reference/mcp-tools。

智能体(Agents)

每个专业 agent 在 palace 中都拥有自己的 wing 和日记。可通过 mempalace_list_agents 在运行时发现——不会在系统提示中引入臃肿代码: mempalaceofficial.com/concepts/agents。

自动保存钩子

两个 Claude Code 钩子会在上下文压缩前以及定期执行保存: mempalaceofficial.com/guide/hooks。

如果您时间紧迫,建议从 Claude Code 保留设置清单 开始: 挂接钩子,备份现有 JSONL 转录,并使用 mempalace mine ~/.claude/projects/ --mode convos 回填它们。

如需在钩子产生的文件级块之上实现每条消息的召回功能,请定期运行 mempalace sweep <transcript-dir>——它为每条用户/助手消息存储一个原文 drawer,操作幂等且支持断点续传。


系统要求

  • Python 3.9+
  • 一个向量存储后端(默认为 ChromaDB)
  • 约 300 MB 磁盘空间用于嵌入模型。首次启动(python -m mempalace.onboarding)提供 embeddinggemma-300m(多语言,支持 100+ 种语言,推荐)或 all-MiniLM-L6-v2(仅英文,约 30 MB)。详情及迁移说明见 mempalace/embedding.py 的文档字符串。

核心基准测试路径无需 API 密钥。

文档

贡献

欢迎提交 PR。请参阅 CONTRIBUTING.md。

许可协议

MIT —— 参见 LICENSE。

开源项目MemPalace2026-06-05原文

相关内容