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 用于列出、搜索、导出、导入、重新嵌入、升级和迁移数据库。
梦境支持 可选的侧车功能,将“梦境”报告视为公开资产并进行索引。

安装

  1. 一键脚本curl …setup-memory.sh && bash setup-memory.sh(自动处理安装、配置和服务重启)。
  2. OpenClaw CLIopenclaw plugins install memory-lancedb-pro@beta
  3. npmnpm 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_recallmemory_storememory_forgetmemory_update,以及可选的管理工具)。

典型工作流程

  1. 捕获 – 每次助手回复后,插件提取关键事实并作为行存储在 LanceDB 中,同时将原始 Markdown 文件(MEMORY.mdmemory/**/*.md 等)写入以供人类参考。
  2. 召回 – 当下一个用户查询到达时,before_prompt_build 钩子运行:查询被嵌入,进行混合搜索、重排序,然后将最相关的命中结果作为上下文片段插入提示中。
  3. 衰减 – 每个存储的行都带有时间戳和重要性分数;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 驱动的提取,全部封装在一个易于安装的插件中。

相关

  • 项目