> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/MemPalace/mempalace) · [上游 README](https://github.com/MemPalace/mempalace/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
MemPalace # MemPalace 本地优先的 AI 记忆。逐字存储、可插拔后端,LongMemEval 上 R@5 raw 达 96.6% —— 零 API 调用。 [![][version-shield]][release-link] [![][python-shield]][python-link] [![][license-shield]][license-link] [![][discord-shield]][discord-link]
> [!CAUTION] > **谨防仿冒网站。** MemPalace 没有其他官方网站。**唯一**官方来源是本 **[GitHub 仓库](https://github.com/MemPalace/mempalace)**,、**[PyPI 包](https://pypi.org/project/mempalace/)**,以及 **[mempalaceofficial.com](https://mempalaceofficial.com)**. 上的文档。任何其他域名(包括 `.tech`、`.net` 或其他 `.com` 变体)均为仿冒站点,可能分发恶意软件。详情与时间线见 [docs/HISTORY.md](docs/HISTORY.md)。 > [!IMPORTANT] > **若未接入自动保存钩子,Claude Code 会话会在 30 天后过期。** [阅读此文 →](https://github.com/MemPalace/mempalace/discussions/1388) > > 需要最短的恢复/设置路径?使用 [Claude Code 保留设置清单](https://mempalaceofficial.com/guide/claude-code-retention.html). --- ## 它是什么 MemPalace 将你的对话历史以逐字文本形式存储,并通过语义搜索(semantic search)检索。它不进行摘要、抽取或改写。索引是结构化的——人物和项目成为 *wings*(翼),主题成为 *rooms*(房间),原始内容存放在 *drawers*(抽屉)中——因此搜索可以限定范围,而无需在整个扁平语料库上运行。 检索层是可插拔的。当前默认是 ChromaDB;接口定义在 [`mempalace/backends/base.py`](mempalace/backends/base.py),可插入替代后端而无需改动系统其余部分。 除非你主动选择,否则数据不会离开你的机器。 架构、概念与挖掘流程: [mempalaceofficial.com/concepts/the-palace](https://mempalaceofficial.com/concepts/the-palace.html). --- ## 安装 MemPalace 提供 CLI,建议在隔离环境中安装,以避免在 Debian/Ubuntu/Homebrew Python 上出现 PEP 668 错误,并防止 mempalace 的依赖(`chromadb`、`numpy`、`grpcio`、…)与你全局 site-packages 中的其他包冲突。 我们推荐 [`uv`](https://docs.astral.sh/uv/) —— `uv tool install` 会将 `mempalace` CLI 放入 PATH 上的隔离环境中: ```bash uv tool install mempalace mempalace init ~/projects/myapp ``` 若你更偏好它,[`pipx`](https://pipx.pypa.io/) 用法相同: `pipx install mempalace`。 仅在已激活的 virtualenv 中、且你明确希望 `import mempalace` 可用时,才使用纯 `pip`: ```bash python -m venv .venv && source .venv/bin/activate pip install mempalace ``` ### Docker 也提供容器镜像,可在无本地 Python 工具链的情况下运行 MCP server 或 CLI。所有内容持久化在 `/data`(palace、config 及缓存的 embedding 模型)下,因此请在那里挂载卷。 ```bash # Build the image (CPU; bundles the `extract` + `spellcheck` extras) docker build -t mempalace . # MCP server over stdio — note the `-i` flag (JSON-RPC needs stdin) docker run -i --rm -v mempalace-data:/data mempalace # Run any CLI command instead (mount the host directory you want to mine) docker run --rm -v mempalace-data:/data -v /path/to/project:/work mempalace mine /work docker run --rm -v mempalace-data:/data mempalace search "why GraphQL" ``` 作为 stdio server 接入 MCP 客户端(例如 Claude Code): ```json { "mcpServers": { "mempalace": { "command": "docker", "args": ["run", "-i", "--rm", "-v", "mempalace-data:/data", "mempalace"] } } } ``` `docker compose run --rm mcp` 同样可用(见 `docker-compose.yml`)。要启用 CUDA 加速的 embedding,请用 `docker build -f Dockerfile.gpu -t mempalace:gpu .` 构建 GPU 变体,并以 `--gpus all` 运行。可在构建时自定义捆绑的 extras,例如 `docker build --build-arg EXTRAS="extract,spellcheck" -t mempalace .`。 ## 存储后端 ChromaDB 为默认后端,无需配置。MemPalace 还提供可插拔后端契约,并在刻意不同的底层上验证,以免契约无意间围绕单一厂商定型。所有非默认后端均需主动启用。 | Backend | Mode | Install | Namespaces | Lexical | Configure with | | ------- | ---- | ------- | :--------: | :-----: | -------------- | | `chroma` _(默认)_ | 本地(嵌入式) | 内置 | – | ✓ | – | | `sqlite_exact` | 本地(精确) | 内置 | – | ✓ | – | | `milvus` | 本地(Lite)· 服务端可选 | `mempalace[milvus]` | ✓ | ✓ | `MEMPALACE_MILVUS_URI` | | `qdrant` | 服务端(REST) | 内置 | ✓ | ✓ | `MEMPALACE_QDRANT_URL` | | `pgvector` | 服务端(Postgres) | `mempalace[pgvector]` | ✓ | ✓ | `MEMPALACE_PGVECTOR_DSN` | 通过 `--backend `、`MEMPALACE_BACKEND=` 或 `"backend": ""` 在 `config.json` 中选择。连接变量、命名空间行为与部署说明见 [存储后端](/guide/configuration#storage-backends)。 ## 快速开始 ```bash # Mine content into the palace mempalace mine ~/projects/myapp # project files mempalace mine ~/.claude/projects/ --mode convos # Claude Code sessions (scope with --wing per project) # Search mempalace search "why did we switch to GraphQL" # Load context for a new session mempalace wake-up ``` 适用于 Claude Code、Gemini CLI、[Antigravity](https://mempalaceofficial.com/guide/antigravity.html),、兼容 MCP 的工具及本地模型,见 [mempalaceofficial.com/guide/getting-started](https://mempalaceofficial.com/guide/getting-started.html). --- ## 基准测试 以下所有数据均可通过本仓库中的命令复现,见 [`benchmarks/BENCHMARKS.md`](benchmarks/BENCHMARKS.md)。完整逐题结果文件已提交至 `benchmarks/results_*`。 **LongMemEval — 检索召回(R@5,500 题):** | Mode | R@5 | LLM required | |---|---|---| | 原始(语义搜索,无启发式,无 LLM) | **96.6%** | 无 | | Hybrid v4,held-out 450 题(在 50 题 dev 上调优,训练时未见) | **98.4%** | 无 | | Hybrid v4 + LLM rerank(完整 500 题) | ≥99% | 任意能力足够的模型 | 原始 96.6% 在任何阶段都不需要 API key、云服务或 LLM。hybrid 流水线增加了关键词增强、时间邻近增强与偏好模式抽取;held-out 98.4% 是诚实的可泛化指标。 rerank 流水线使用 LLM reader 从检索到的 top-20 会话中提升最佳候选。它可与任意能力足够的模型配合——我们已在 Claude Haiku、Claude Sonnet 以及通过 Ollama Cloud 的 minimax-m2.7 上复现(不依赖 Anthropic)。原始与 rerank 之间的差距与模型无关;我们不以「100%」作为标题数字,因为最后 0.6% 是通过检查特定错误答案达到的,而 `benchmarks/BENCHMARKS.md` 将其标记为对测试集过拟合(teaching to the test)。 **其他基准测试(完整结果见 [`benchmarks/BENCHMARKS.md`](benchmarks/BENCHMARKS.md)):** | Benchmark | Metric | Score | Notes | |---|---|---|---| | LoCoMo(session,top-10,无 rerank) | R@10 | 60.3% | 1,986 题 | | LoCoMo(hybrid v5,top-10,无 rerank) | R@10 | 88.9% | 同一数据集 | | ConvoMem(全类别,250 条) | 平均召回 | 92.9% | 每类 50 条 | | MemBench(ACL 2025,8,500 条) | R@5 | 80.3% | 全类别 | 我们刻意不与 Mem0、Mastra、Hindsight、Supermemory 或 Zep 做并排对比。这些项目在不同划分上发布不同指标,将检索召回与端到端 QA 准确率并列并非诚实比较。请参阅各项目自己的研究页面获取其公布数字。 **复现所有结果:** ```bash git clone https://github.com/MemPalace/mempalace.git cd mempalace uv sync --extra dev # or: pip install -e ".[dev]" # see benchmarks/README.md for dataset download commands uv run python benchmarks/longmemeval_bench.py /path/to/longmemeval_s_cleaned.json ``` --- ## 知识图谱 MemPalace 包含带有效期窗口(validity windows)的时态实体关系图(temporal entity-relationship graph)——支持 add、query、invalidate、timeline——由本地 SQLite 支撑。 用法与工具参考: [mempalaceofficial.com/concepts/knowledge-graph](https://mempalaceofficial.com/concepts/knowledge-graph.html). ## MCP server 35 个 MCP 工具涵盖 palace 读写、knowledge-graph 操作、跨 wing 导航、drawer 管理和 agent diary。安装说明与完整工具列表: [mempalaceofficial.com/reference/mcp-tools](https://mempalaceofficial.com/reference/mcp-tools.html). ## Agents 每位 specialist agent 在 palace 中拥有独立的 wing 和 diary。 运行时可通过 `mempalace_list_agents` 发现——不会让你的 system prompt 臃肿: [mempalaceofficial.com/concepts/agents](https://mempalaceofficial.com/concepts/agents.html). ## Auto-save hooks 面向 **Claude Code、Codex CLI 和 Cursor IDE** 的 Auto-save hooks 会定期保存,并在上下文压缩(context compression)之前保存: - Claude Code + Codex → [mempalaceofficial.com/guide/hooks](https://mempalaceofficial.com/guide/hooks.html) - Cursor IDE(增加 session-start recall,并在压缩前生成 transcript 快照)→ [mempalaceofficial.com/guide/cursor-hooks](https://mempalaceofficial.com/guide/cursor-hooks.html) 如果你是在时间紧迫的情况下安装,请先从 [Claude Code retention setup checklist](https://mempalaceofficial.com/guide/claude-code-retention.html): 开始,配置 hooks,备份现有 JSONL transcript,并用 `mempalace mine ~/.claude/projects/ --mode convos` 回填它们。 若要在 hooks 生成的文件级 chunk 之上实现逐消息 recall,请定期运行 `mempalace sweep `——它为每条 user/assistant 消息存储一个 verbatim drawer,具有幂等性且可安全恢复。 --- ## Requirements - Python 3.9+ - 向量存储后端(vector-store backend,默认 ChromaDB) - 嵌入模型约需 ~300 MB 磁盘空间。入门流程(`python -m mempalace.onboarding`)提供 `embeddinggemma-300m`(多语言,100+ 种语言,推荐)或 `all-MiniLM-L6-v2`(仅英语,约 ~30 MB)。详见 [`mempalace/embedding.py`](mempalace/embedding.py) 中的 docstring 及迁移说明。 核心 benchmark 路径无需 API key。 ## Docs - 入门 → [mempalaceofficial.com/guide/getting-started](https://mempalaceofficial.com/guide/getting-started.html) - CLI 参考 → [mempalaceofficial.com/reference/cli](https://mempalaceofficial.com/reference/cli.html) - Python API → [mempalaceofficial.com/reference/python-api](https://mempalaceofficial.com/reference/python-api.html) - 完整 benchmark 方法论 → [benchmarks/BENCHMARKS.md](benchmarks/BENCHMARKS.md) - 发行说明 → [CHANGELOG.md](CHANGELOG.md) - 勘误与公开说明 → [docs/HISTORY.md](docs/HISTORY.md) ## Contributing 欢迎提交 PR。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## License MIT — 详见 [LICENSE](LICENSE)。 [version-shield]: https://img.shields.io/badge/version-3.5.0-4dc9f6?style=flat-square&labelColor=0a0e14 [release-link]: https://github.com/MemPalace/mempalace/releases [python-shield]: https://img.shields.io/badge/python-3.9+-7dd8f8?style=flat-square&labelColor=0a0e14&logo=python&logoColor=7dd8f8 [python-link]: https://www.python.org/ [license-shield]: https://img.shields.io/badge/license-MIT-b0e8ff?style=flat-square&labelColor=0a0e14 [license-link]: https://github.com/MemPalace/mempalace/blob/main/LICENSE [discord-shield]: https://img.shields.io/badge/discord-join-5865F2?style=flat-square&labelColor=0a0e14&logo=discord&logoColor=5865F2 [discord-link]: https://discord.com/invite/ycTQQCu6kn