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 驅動的提取,全部封裝在一個易於安裝的插件中。

相關

  • 專案