给 AI 装一个本地大脑:MemPalace 实战指南

MemPalace 是一个开源本地记忆系统,通过宫殿记忆法将项目文件、聊天记录索引为可搜索的知识库,让 AI 瞬间检索历史上下文,唤醒成本仅 600-900 tokens。

你的 AI 助手记不住你上周说过的话。每次对话都像失忆重启。MemPalace 就是来修这个bug的。

一句话介绍

MemPalace 是一个开源的本地记忆系统,把你的项目文件、聊天记录、对话笔记"挖"进一个可搜索的知识宫殿里,让任何 AI 都能瞬间检索到你的历史上下文。

不需要 API Key,不需要云端服务,数据全部存在你自己的机器上。

GitHub: github.com/MemPalace/mempalace

为什么需要它?

大模型的 context window 再大,也装不下你半年的对话记录。你跟 AI 说过的偏好、做过的决策、踩过的坑,下一次对话它全忘了。

传统解法:

  • RAG 框架(LangChain、LlamaIndex)→ 重,复杂,面向开发者
  • 云端记忆服务(Zep、Mem0)→ 要花钱,数据不在本地
  • 自己写向量数据库 → 谁有那个闲工夫

MemPalace 的思路是:一行命令搞定,开箱即用,本地运行

核心方法论:宫殿记忆法

MemPalace 借用了古典的"记忆宫殿"概念,把知识按空间结构组织:

1
2
3
4
5
宫殿 (Palace)
├── 侧翼 (Wing) — 项目/领域
│   ├── 房间 (Room) — 主题分类
│   │   ├── 衣柜 (Closet) — 压缩摘要(AAAK格式)
│   │   └── 抽屉 (Drawer) — 原文片段(向量索引)

这不是简单的向量数据库。它有三层结构协同工作:

① 向量索引(ChromaDB)

把每段文本变成向量,支持语义搜索。问"我们为什么换 GraphQL?“能直接定位到当时的讨论,不用记关键词。

② 知识图谱(SQLite)

存储实体关系:谁做了什么、什么时候做的、关系什么时候变了。支持时间过滤——“2025年1月时,Max 在做什么?“这种问题能回答。

③ AAAK 压缩方言

把长文本压缩成结构化符号:实体、情感标记、关键引用、权重标记。任何 LLM 都能直接读懂,不需要解码器。

四层记忆栈

MemPalace 把记忆分为四层,按需加载,不浪费 context:

层级内容Token 开销加载时机
L0身份(我是谁)~100始终
L1关键事实摘要~500-800始终
L2特定主题/项目~200-500按需
L3全文语义搜索无上限按需

唤醒成本仅 600-900 tokens(L0+L1),把 95% 以上的 context 留给真正的对话。你的 128K 窗口不会被记忆塞满。

怎么用?

安装

1
pip install mempalace

导入项目文件

1
2
3
4
5
# 初始化(自动识别目录结构,生成房间)
mempalace init ~/projects/my_app

# 挖掘(把文件内容索引进宫殿)
mempalace mine ~/projects/my_app

MemPalace 会自动扫描目录,按文件夹结构生成 Wing(项目)和 Room(主题),把每个文件按段落切分成 Drawer,存入 ChromaDB。

导入聊天记录

1
2
# 支持 Claude Code、ChatGPT、Slack 导出
mempalace mine ~/.claude/projects/xxx --mode convos --wing my_app

搜索

1
2
3
4
5
# 语义搜索(不用记精确关键词)
mempalace search "为什么选 PostgreSQL 而不是 MongoDB"

# 指定范围
mempalace search "定价讨论" --wing my_app --room costs

唤醒

1
2
3
4
5
# 生成 L0+L1 上下文,注入到 AI 对话开头
mempalace wake-up

# 只唤醒特定项目
mempalace wake-up --wing my_app

压缩

1
2
# 把抽屉压缩成衣柜摘要(约30倍压缩)
mempalace compress

接入 AI 工具

1
2
# MCP 模式——暴露 19 个工具给 Claude Code / Cursor 等
mempalace mcp

支持通过 MCP 协议直接接入 Claude Code、Cursor、Windsurf 等 AI 编码工具,AI 可以自主决定何时搜索记忆。

实测数据

以下是我用 Hermes Agent(一个本地 AI 助手)的实际使用数据:

嵌入模型对比测试(18个中文查询):

指标all-MiniLM-L6-v2Qwen3-Embedding-0.6B
命中率9/18 (50%)18/18 (100%)
平均相似度-0.180.60
单次查询耗时217ms449ms

换上中文优化模型后,近义词、描述性查询全部命中。Ollama 本地跑 Qwen3-Embedding,不依赖任何外部 API。

OpenClaw(三省六部制 AI 系统)接入:

  • 13 个 Agent 共享同一个 MemPalace 实例
  • 索引了 854 个文件(195 closets + 659 drawers)
  • 每天凌晨自动增量索引
  • Agent 们通过 mempalace search 检索历史上下文

优点

  • 零配置起步pip install + mempalace init + mempalace mine,三行命令跑起来
  • 完全本地:数据存在你机器上,ChromaDB + SQLite,不需要网络,不需要 API Key
  • 语义搜索:不是关键词匹配,是理解意思。说"定价讨论"能找到提到"价格策略"的内容
  • 记忆分层:L0-L3 按需加载,不会撑爆 context window
  • 多格式支持:项目文件、Claude Code 对话、ChatGPT 导出、Slack 记录都能吃
  • 知识图谱:有时间线的关系数据库,知道事实"什么时候是真的”
  • AAAK 压缩:30倍压缩比,任何 LLM 直接读懂
  • MCP 协议:19个工具暴露给 AI,让 AI 自己管理记忆
  • 增量索引mine 命令幂等,只处理新文件,不重复索引
  • 多实例隔离:支持多个 AI Agent 各用各的宫殿,互不干扰

缺点

  • ⚠️ 嵌入模型依赖:默认用 all-MiniLM-L6-v2,中文效果很差(命中率仅50%)。中文场景必须换模型(如 Qwen3-Embedding),但换模型需要重建整个索引
  • ⚠️ 首次索引慢:大项目首次 mine 比较耗时,尤其本地跑大嵌入模型时。我 854 条数据用 Qwen3-Embedding 跑了近 5 小时(纯 CPU)
  • ⚠️ ChromaDB 限制:不支持多进程并发写入。多 Agent 共享一个宫殿需要做实例隔离,否则会锁冲突
  • ⚠️ 没有内置嵌入模型管理:换模型要自己写脚本重建,没有官方的 migrate 工具(虽然有 mempalace migrate 但只处理 ChromaDB 版本升级)
  • ⚠️ AAAK 压缩是有损的:官方文档明确说不是无损压缩,原文无法从 AAAK 输出还原。压缩前确保原始 Drawer 保留
  • ⚠️ 文档偏少:README 够用,但深入使用(嵌入模型切换、多实例隔离、MCP 高级配置)基本靠读源码
  • ⚠️ 单机方案:没有分布式/同步机制,不适合团队协作场景

适合谁?

  • 个人 AI 助手用户:希望 AI 记住你的偏好、项目历史、重要决策
  • AI Agent 开发者:给你的 Agent 加一个持久化的长期记忆层
  • 重度 AI 对话用户:积累了大量 ChatGPT/Claude 对话,想建立可检索的档案库
  • 隐私敏感用户:不想把记忆数据上传到任何云端服务

不适合谁?

  • 需要团队协作共享记忆的团队(考虑 Zep/Mem0)
  • 只用 AI 做简单问答,不需要上下文延续
  • 没有本地服务器或不愿意折腾 CLI

技术栈

  • 语言:Python
  • 向量数据库:ChromaDB(本地嵌入式)
  • 知识图谱:SQLite
  • 嵌入模型:可插拔(默认 all-MiniLM-L6-v2,支持 Ollama、OpenAI 兼容 API)
  • 协议:MCP(Model Context Protocol)
  • 协议:MIT 开源

MemPalace v3.3.3 | 作者: milla-jovovich | GitHub: github.com/MemPalace/mempalace