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