CortexReach/memory-lancedb-pro
Enhanced LanceDB memory plugin for OpenClaw — Hybrid Retrieval (Vector + BM25), Cross-Encoder Rerank, Multi-Scope Isolation, Management CLI
memory-lancedb-pro – OpenClaw 代理人的长期记忆插件
是什么 – 一个生产级的 OpenClaw 插件,为 AI 代理提供持久的“大脑”。它将对话片段、偏好、决策和其他上下文存储在 LanceDB 向量存储中,并在代理回复时自动回忆最相关的内容。
核心功能
| 特性 | 工作方式 |
|---|---|
| 自动捕获 | 每次聊天轮次都会发送到插件;无需手动调用 memory_store。 |
| 智能提取 | LLM 将每个捕获的片段分类为六类(资料、偏好、实体、事件、案例、模式)。 |
| 混合检索 | 查询被嵌入后,通过 ANN 向量相似性 和 BM25 全文搜索进行检索。结果融合,并可选地由交叉编码器重新排序。 |
| 智能遗忘 | Weibull 衰减模型降低旧或低重要性记忆的权重,使噪声逐渐消退。 |
| 上下文注入 | 在代理构建回复前,插件会自动将排名最高的记忆注入提示中。 |
| 作用域隔离 | 记忆按代理、用户和项目分区,防止跨域泄露。 |
| 提供者无关嵌入 | 支持 OpenAI、Jina、Gemini、Ollama 或任何 OpenAI 兼容 API。 |
| 工具链 | 提供 CLI 用于列出、搜索、导出、导入、重新嵌入、升级和迁移数据库。 |
| 梦境支持 | 可选的侧车功能,将“梦境”报告视为公开资产并进行索引。 |
安装
- 一键脚本 –
curl …setup-memory.sh && bash setup-memory.sh(自动处理安装、配置和服务重启)。 - OpenClaw CLI –
openclaw plugins install memory-lancedb-pro@beta。 - npm –
npm i memory-lancedb-pro@beta(然后将绝对插件路径添加到plugins.load.paths)。
配置快照(README 的默认 JSON):
{
"plugins": {
"slots": { "memory": "memory-lancedb-pro" },
"entries": {
"memory-lancedb-pro": {
"enabled": true,
"config": {
"embedding": {
"provider": "openai-compatible",
"apiKey": "${OPENAI_API_KEY}",
"model": "text-embedding-3-small"
},
"autoCapture": true,
"autoRecall": true,
"smartExtraction": true,
"canonicalCorpus": { "enabled": true, "syncOnSearch": true },
"dreaming": { "enabled": false },
"extractMinMessages": 2,
"extractMaxChars": 8000,
"sessionMemory": { "enabled": false }
}
}
}
}
}
为何这些默认值? – 它们启用了免操作学习(autoCapture + smartExtraction)和自动召回(autoRecall)。低 extractMinMessages 使得在正常两轮对话后即可触发提取,而禁用会话记忆可避免临时摘要污染长期存储。
运行时架构(如 README 所述):
index.ts将插件注册到 OpenClaw 并连接生命周期钩子(before_prompt_build)。store.ts与 LanceDB 通信(向量+BM25 索引,CRUD 操作)。embedder.ts抽象嵌入提供者。retriever.ts执行混合搜索、融合、交叉编码器重排序并应用衰减增强。smart-extractor.ts运行 LLM 分类。tools.ts暴露代理端工具(memory_recall、memory_store、memory_forget、memory_update,以及可选的管理工具)。
典型工作流程
- 捕获 – 每次助手回复后,插件提取关键事实并作为行存储在 LanceDB 中,同时将原始 Markdown 文件(
MEMORY.md、memory/**/*.md等)写入以供人类参考。 - 召回 – 当下一个用户查询到达时,
before_prompt_build钩子运行:查询被嵌入,进行混合搜索、重排序,然后将最相关的命中结果作为上下文片段插入提示中。 - 衰减 – 每个存储的行都带有时间戳和重要性分数;Weibull 衰减引擎会逐渐降低其相关性,除非它被频繁访问。
硬件注意 – LanceDB 的原生余弦 ANN 需要 AVX/AVX2。在不支持这些指令的 CPU 上,可以禁用原生余弦(retrieval.disableNativeCosine: true 或环境变量 MEMORY_LANCEDB_DISABLE_NATIVE_COSINE=1)。
生态系统辅助工具
- 安装脚本 – 处理全新安装、升级、配置修复和卸载。
- 技能包 –
memory-lancedb-pro-skill允许 Claude-Code 或 OpenClaw 代理通过自然语言命令配置插件。 - 视频教程 – YouTube 和 Bilibili 上的视频教程涵盖安装、混合检索内部机制和调试。
谁会使用它?
- 需要在会话间记住用户偏好、过去决策或项目上下文的长期运行 OpenClaw 助手的开发者。
- 希望为 AI 代理提供“大脑”但不想自行构建向量存储或遗忘逻辑的团队。
- 偏好单一、可配置插件,且能与任何 OpenAI 兼容嵌入提供者协同工作的任何人。
总结 – memory-lancedb-pro 是一个功能完整、生产就绪的 OpenClaw 代理记忆层,结合了语义向量搜索、经典关键词搜索、基于衰减的遗忘和 LLM 驱动的提取,全部封装在一个易于安装的插件中。
相关
- 项目