### [OpenClaw 记忆系统升级:从 memory-core 迁移到 memory-lancedb-pro](https://www.zuoshipin.com/article/6080) **Published:** 2026-07-17T10:40:47 **Author:** 17600879176 **Excerpt:** OpenClaw 明明保存了规则却经常召回不到?本文完整对比四种记忆插件,并整理 memory-lancedb-pro 的混合检索、智能提取、安装配置、迁移验证和 AVX 排错。 使用 OpenClaw 一段时间后,很多人会遇到一种很恼火的情况:明明已经在 `MEMORY.md` 写过规则,Agent 到了新对话还是忘记调用指定 Skill,或者只记得大概意思,却召回不到那条真正重要的指令。 例如,写歌词时忘记调用歌词 Skill,总结视频时跳过指定工具,下载内容前也不检查 Cookie。问题往往不是“完全没有记忆”,而是**记忆召回不够精准**。这也是从 memory-core 升级到 [memory-lancedb-pro](https://www.zuoshipin.com/link/5958.html) 的主要原因。 ![memory-lancedb-pro 为 OpenClaw 提供长期记忆与混合检索](https://admin.zuoshipin.com/wp-content/uploads/2026/07/openclaw-memory-lancedb-pro-migration-cover.webp) memory-lancedb-pro 为 OpenClaw 提供长期记忆与混合检索 **核心变化:**memory-lancedb-pro 不只做向量相似度搜索,还加入 BM25 关键词检索、Cross-Encoder 重排序、智能提取、记忆衰减和多作用域隔离,让“语义相近”与“精确命中规则”同时参与召回。 ## 为什么 memory-core 容易“记得但想不起来”? 纯向量检索擅长找到语义相似内容,却不一定能优先命中强规则。比如搜索“删除操作必须使用 trash”,模型可能召回大量与删除文件相关的对话,却没有把真正的安全规则排在最前面。 当记忆数量越来越多,普通聊天、临时信息和重要规范混在一起,结果就会被噪音淹没。要解决这一问题,需要的不只是换一个向量数据库,而是一整套更精细的检索与生命周期管理。 ## 四种 OpenClaw 记忆方案对比 | 特性 | memory-core | memory-wiki | memory-lancedb | memory-lancedb-pro | | --- | --- | --- | --- | --- | | 存储 | SQLite | Wiki 格式 | LanceDB | LanceDB | | 检索 | 纯向量 | 关键词+向量 | 纯向量 | 向量+BM25 混合 | | 重排序 | 无 | 无 | 无 | Cross-Encoder | | 智能提取 | 无 | 无 | 无 | LLM 六类分类 | | 遗忘机制 | 无 | 无 | 无 | Weibull 衰减 | | 多作用域 | 无 | 无 | 无 | agent/user/project | | 管理工具 | 基础 | CLI | 基础 | 完整 CLI + MCP 工具 | | 数据迁移 | 原生 | 需手动 | 可迁移 | 迁移与导入工具 | ## 选择 memory-lancedb-pro 的三个理由 ### 1\. 混合检索更适合规则与工作流 Pro 版可以同时执行向量搜索与 BM25 全文检索,再经过融合与 Cross-Encoder 重排序。向量负责理解语义,BM25 负责命中具体词语,重排序则重新判断哪些结果最符合当前查询。 **向量检索** 找到表达方式不同但含义相近的记忆。 **BM25** 精确命中工具名、项目名、命令和强约束关键词。 **Cross-Encoder** 对候选结果重新评分,把最相关内容推到前面。 原配置采用向量 70%、BM25 30% 的权重,可作为起点,但不是所有数据集的最佳答案。规则型记忆较多时,可以适当提高 BM25 权重;自然语言偏好较多时,则保留更高的向量权重。 ### 2\. 智能提取与记忆衰减 Pro 版可以借助 LLM 将重要信息归入六类: - **profiles:**用户画像、技术栈与长期背景。 - **preferences:**代码风格、回复格式与个人习惯。 - **entities:**人物、地址、项目和具体对象。 - **events:**事故、决策和阶段性事件。 - **cases:**踩坑记录、解决方法与案例经验。 - **patterns:**常见问题、重复行为和工作流模式。 同时,Weibull 衰减模型会结合时间、访问频率和重要性调整记忆权重,让低价值噪音逐渐淡出。这里的“遗忘”通常是降低召回优先级,不应理解为未经确认就直接删除源文件。 ### 3\. 可控的数据导入与作用域 `canonicalCorpus` 可以索引 `MEMORY.md` 和 `memory/**/*.md`,并按需加入会话记录。多作用域则允许按照 Agent、用户和项目隔离记忆,避免不同客户或项目之间互相污染。 **推荐原则:**把 `MEMORY.md` 和 Markdown 记忆文件保留为可读、可备份的事实源,让 LanceDB 充当语义索引。数据库负责“找到”,文件负责“审计和恢复”。 ## 一键安装:先下载,再执行 项目提供社区维护的安装脚本。为了便于审查,不建议直接把远程脚本通过管道送进 Shell;先下载、查看,再执行: ``` curl -fsSL https://raw.githubusercontent.com/CortexReach/toolbox/main/memory-lancedb-pro-setup/setup-memory.sh -o setup-memory.sh less setup-memory.sh bash setup-memory.sh ``` 脚本会检测环境、选择 Embedding Provider、写入配置并重启 Gateway,可使用 Jina、SiliconFlow、OpenAI、Ollama 等方案。执行前仍应备份现有配置与记忆数据。 ## 手动安装方式 当前项目文档优先推荐通过 OpenClaw CLI 安装测试版: ``` openclaw plugins install memory-lancedb-pro@beta ``` 如果需要跟踪仓库源码,也可以使用源文中的手动方式: ``` git clone https://github.com/CortexReach/memory-lancedb-pro.git ~/.openclaw/workspace/plugins/memory-lancedb-pro cd ~/.openclaw/workspace/plugins/memory-lancedb-pro npm install npm run build ``` **注意:**如果通过 npm 或源码安装,`plugins.load.paths` 必须填写插件的**绝对路径**。不要照抄他人的用户名路径,也不要在公开配置中明文保存 API Key。 ## 配置 openclaw.json 下面保留源配置的核心结构,并将密钥改为环境变量占位符。请根据自己的系统用户名、模型和服务商调整: ``` { "plugins": { "slots": { "memory": "memory-lancedb-pro" }, "load": { "paths": ["/Users/你的用户名/.openclaw/workspace/plugins/memory-lancedb-pro"] }, "entries": { "memory-lancedb-pro": { "enabled": true, "config": { "embedding": { "provider": "openai-compatible", "model": "BAAI/bge-m3", "apiKey": "${SILICONFLOW_API_KEY}", "baseURL": "https://api.siliconflow.cn/v1", "dimensions": 1024 }, "autoCapture": true, "autoRecall": true, "smartExtraction": true, "extractMinMessages": 2, "extractMaxChars": 8000, "retrieval": { "mode": "hybrid", "vectorWeight": 0.7, "bm25Weight": 0.3, "rerank": "cross-encoder", "rerankApiKey": "${SILICONFLOW_API_KEY}", "rerankModel": "BAAI/bge-reranker-v2-m3", "rerankEndpoint": "https://api.siliconflow.cn/v1/rerank" }, "canonicalCorpus": { "enabled": true, "syncOnSearch": true, "includeSessionTranscripts": true }, "sessionMemory": { "enabled": false } } } } } } ``` 配置中几个关键开关: - `autoCapture`:自动捕获值得长期保存的信息。 - `autoRecall`:回答前自动召回相关记忆。 - `smartExtraction`:使用 LLM 进行分类、合并和去重。 - `canonicalCorpus.enabled`:索引现有 Markdown 记忆文件。 - `includeSessionTranscripts`:把会话记录加入索引,数据量较大时应谨慎开启。 - `sessionMemory.enabled: false`:初期避免会话摘要污染长期检索。 ## 从 memory-core 迁移前先做什么? 源环境从 memory-core 迁移了 4243 条记忆、涉及 387 个文件,并通过自定义脚本生成迁移清单。这个数字是个案,不代表每个人都能直接“一键迁移”。memory-core、memory-lancedb 与不同版本 Pro 的数据结构并不完全相同。 1. **备份配置:**保存当前 `openclaw.json`。 2. **备份事实源:**复制 `MEMORY.md`、`memory/` 和现有数据库目录。 3. **先开 canonicalCorpus:**确认 Markdown 文件可以被索引和召回。 4. **小批量导入:**先迁移一部分数据,检查重复、乱码和作用域。 5. **再切换 memory slot:**确认新插件稳定后,将其设为唯一活动记忆插件。 从旧版 memory-lancedb 迁移时,可结合项目当前 CLI 和迁移文档;从 memory-core 迁移则应依据实际数据结构选择导出、清单或自定义脚本。 ## 验证配置与召回效果 ``` openclaw config validate openclaw gateway restart openclaw logs --follow --plain | grep "memory-lancedb-pro" ``` 项目文档建议进一步检查插件信息和统计: ``` openclaw plugins info memory-lancedb-pro openclaw memory-pro stats ``` 不要只看“插件已注册”,还要设计可重复测试: - 保存一条包含明确工具名的规则,换一种表达方式搜索。 - 同时放入多条“删除”相关内容,确认强规则是否排在前面。 - 切换项目或用户作用域,检查是否发生跨项目泄漏。 - 关闭外部 Rerank API,观察降级后的召回是否仍可接受。 ## CPU 不支持 AVX 怎么办? 部分 Linux x64 环境中的 LanceDB 原生向量搜索可能依赖 AVX/AVX2。如果出现 `SIGILL` 或相关崩溃,可先检查 CPU: ``` grep -o 'avx[^ ]*' /proc/cpuinfo | head -1 ``` 项目文档提供了兼容开关: ``` "retrieval": { "disableNativeCosine": true } ``` 也可以使用环境变量: ``` export MEMORY_LANCEDB_DISABLE_NATIVE_COSINE=1 ``` 开启后会改用范围受控的行扫描和 JavaScript 余弦排序,兼容性更好,但大型记忆库的性能可能下降。 ## 升级后的实际变化 切换 Pro 版后,最明显的目标不是“记忆数量变多”,而是以下几件事更可控: - 搜索删除规则时能优先命中明确约束,而不是泛泛的相似内容。 - 新对话中的重要信息被自动提取、分类和去重。 - 低价值旧记忆逐渐降低权重,避免检索越来越嘈杂。 - 历史文件、会话和手动导入范围可以分别控制。 - 通过 CLI 和管理工具查看、搜索、导出或删除记忆。 项目地址:[CortexReach/memory-lancedb-pro GitHub](https://github.com/CortexReach/memory-lancedb-pro)。准备体验前,可先查看 [memory-lancedb-pro 站内详情页](https://www.zuoshipin.com/link/5958.html);尚未安装主程序的用户可进入 [OpenClaw 站内工具页](https://www.zuoshipin.com/link/916.html)。 **我的观点:**长期记忆系统最重要的不是“永远不忘”,而是可解释地记住正确内容。混合检索和重排序提升召回,多作用域降低污染,Markdown 事实源和导出工具负责审计。只有这三部分同时存在,Agent 记忆才适合进入长期工作流。 ## 总结 如果只是保存少量个人偏好,memory-core 仍然够用;如果已经积累大量规则、项目决策和会话记录,并且经常出现“有记忆但召回不到”,memory-lancedb-pro 更值得尝试。 迁移时不要急着覆盖旧系统。先备份,再安装和验证,最后分批导入。把可读文件作为事实源,把 LanceDB 作为检索索引,才能让 OpenClaw 的记忆从黑盒变成真正可管理的基础设施。 说明:插件处于持续开发中,安装命令、配置字段和版本兼容性可能变化;实际操作前请核对 GitHub 当前 README、版本说明与 OpenClaw 插件架构。 **Tags:** AI长期记忆, LanceDB, memory-lancedb-pro, OpenClaw **Categories:** AI资讯 ---