《生化危机》女主Milla Jovovich开源的MemPalace项目刷屏了,在LongMemEval基准测试上拿了全球首个满分,GitHub 17.9k星。作为一个在OpenClaw本地模型环境下折腾了很久的开发者,看看怎么在本地复现这套”记忆宫殿”方案,以及实际使用体验。 一、先说说MemPalace的核心思路
MemPalace解决的是一个很真实的痛点:每次和AI开新会话,之前的上下文全部清零。 它的解决方案很有古典味道——借鉴古希腊的”记忆术”(Method of Loci),把信息结构化存储: | 概念 | 作用 | | 🏛️ 翼楼 (Wing) | 按项目/人/主题划分 | | 🚪 房间 (Room) | 每个主题下的具体分类 | | 🛤️ 走廊 (Hall) | 按记忆类型串联:决策、里程碑、偏好、建议、发现 | | 🔗 隧道 (Tunnel) | 跨翼楼关联同名房间 | | 🗄️ 衣柜+抽屉 (Closet+Drawer) | 存摘要索引和原始对话 |
核心优势: - 搜索时先定位翼楼→房间→抽屉,召回率从60.9%提升到94.8%
- 数据存在本地ChromaDB,不上云、不花钱
- 重度用户一年成本约0.7美元(主要是Embedding API费用)
二、在OpenClaw本地模型中如何实现?
OpenClaw本身支持本地模型部署,配合MemPalace的思路,我们可以搭建一套完全本地运行、零云端依赖的记忆系统。 方案架构
┌─────────────────────────────────────────────────────────┐│ OpenClaw Gateway ││ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││ │ Local LLM │◄──►│ MCP工具 │◄──►│ MemPalace │ ││ │ (Ollama等) │ │ 接口 │ │ 记忆系统 │ ││ └─────────────┘ └─────────────┘ └──────┬──────┘ │└────────────────────────────────────────────────┼────────┘ │ ┌──────────────────┼──────────┐ ▼ ▼ ▼ ┌─────────┐ ┌──────────┐ ┌─────────┐ │ChromaDB │ │ 本地文件 │ │ 历史会话 │ │(向量库) │ │ 索引 │ │ 存档 │ └─────────┘ └──────────┘ └─────────┘
具体实施步骤
1. 环境准备
# 安装OpenClaw(如未安装)curl -fsSL https://openclaw.ai/install.sh | bash# 安装MemPalacepip install mempalace# 安装本地向量数据库pip install chromadb
2. 初始化记忆宫殿
# 创建工作空间mempalace init ~/mempalace/workspace# 配置你的"翼楼"——项目、团队、个人知识库mempalace wing create --name "我的项目"mempalace wing create --name "技术学习"mempalace wing create --name "日常笔记"
3. 导入历史数据
# 挖掘OpenClaw历史会话mempalace mine ~/.openclaw/sessions/ --mode convos# 挖掘项目代码和文档mempalace mine ~/projects/ --mode projects# 自动分类:决策、里程碑、问题mempalace mine ~/projects/ --mode convos --extract general
4. 接入OpenClaw MCP
这是最关键的一步,让OpenClaw本地模型能够自动调用记忆系统: # 添加MCP服务器(一次性配置)openclaw mcp add mempalace -- python -m mempalace.mcp_server# 验证连接openclaw mcp list
配置完成后,OpenClaw会自动获得19个记忆相关工具,包括: - mempalace_search - 搜索历史记忆
- mempalace_remember - 记录新信息
- mempalace_status - 查看记忆状态
三、实际使用体验
场景1:跨会话上下文保持
以前: 我:昨天说的那个数据库优化方案呢?
AI:抱歉,我是新的会话,没有之前的上下文… 现在: 我:继续优化昨天的方案
AI:(自动调用mempalace_search)找到了,昨天我们在”我的项目/数据库优化”房间讨论了索引优化方案,你倾向于使用复合索引… 场景2:AAAK压缩格式
MemPalace发明的AAAK压缩(AI-Optimized Abstract Knowledge)确实有点东西: 原始文本(约1000 token): Priya是Driftwood团队的负责人,团队成员包括Kai(后端,3年经验)、Soren(前端)、Maya(基础设施)和Leo(初级,刚入职)。他们正在做一个SaaS数据分析平台。当前sprint是把鉴权迁移到Clerk。Kai基于价格和开发体验推荐了Claude而非Auth0。 AAAK压缩后(约120 token): TEAM RI(lead)|KAI(backend,3yr)SOR(frontend)MAY(infra)LEO(junior,new)PROJ RIFTWOOD(saas.analytics)|SPRINT:auth.migration→clerkDECISION:KAI.rec:clerk>auth0(pricing+dx)
压缩率约8倍,任何文本模型都能直接理解。 四、成本对比:为什么选本地方案?
| 方案 | 年费 | 隐私 | 可控性 | | 云端AI+记忆服务 | ~500 | ❌ 数据上云 | ❌ 依赖第三方 |
| MemPalace云端版 | ~50 | ⚠️ Embedding走API | ⚠️ 部分依赖 | | OpenClaw+本地MemPalace | ~0.7** | ✅ 完全本地 | ✅ 完全可控 |
**成本构成:**
- Embedding模型:使用本地部署的__CODE_INLINE_12__或__CODE_INLINE_13__,**0 | | |
- 向量数据库:ChromaDB本地运行,$0
- 电费:忽略不计
五、踩坑记录
1. AAAK压缩率被高估
社区实测发现,官方最初的”30倍无损压缩”有水分。实际使用raw模式(96.6%准确率)比AAAK模式(84.2%)效果更好。建议: # 推荐:使用raw模式存储完整信息mempalace mine ~/data/ --mode raw# 对token敏感的场景再考虑AAAK
2. 本地模型性能要求
OpenClaw本地模型建议使用: - 最低:7B参数模型(如Qwen2.5-7B)
- 推荐:14B以上(如DeepSeek-R1-Distill-Qwen-14B)
- Embedding模型:bge-m3或piccolo-base-zh
3. 初始化耗时
首次导入大量历史数据时,生成embedding会比较慢: # 建议分批导入mempalace mine ~/sessions/2024/ --batch-size 100
六、总结
MemPalace + OpenClaw本地模型的组合,真正体会到了“AI记住一切”的感觉: ✅ 隐私绝对安全 - 数据不出本机
✅ 成本几乎为零 - 不远的将来,deepseek都不再免费了 ✅ 上下文真正连贯 - 跨会话、跨项目、跨时间
✅ 完全开源可控 - 不用看厂商脸色 正如Milla Jovovich说的:“如果没有我们的想象力和永不满足的好奇心,AI就仅仅是个搜索引擎而已。” 给AI装上记忆,才是真正的人机协作开始。
相关链接: - MemPalace GitHub:github.com/milla-jovovich/mempalace
- OpenClaw文档:docs.openclaw.ai
|