memory-lancedb-hybrid
LanceDB long-term memory plugin with BM25 + vector hybrid search (RRF or linear reranking).
LanceDB Hybrid Search (Memory Plugin)
This skill packages a drop-in OpenClaw memory plugin that adds hybrid search to LanceDB memory:
- Vector search (semantic)
- BM25 full-text search (exact terms)
- Configurable reranking:
rrf(Reciprocal Rank Fusion, recommended)linear(weighted combination)
It is based on (and credits) OpenClaw PR openclaw/openclaw#7636.
What you get
A local plugin (extension) located at:
plugin/→ overrides the built-in plugin idmemory-lancedb(adds hybrid search)
Once enabled, it provides the same tools as the bundled LanceDB memory plugin:
memory_storememory_recallmemory_forget
…but memory_recall/auto-recall/forget now use hybrid search when enabled.
Install / Enable
- Ensure the skill folder exists (ClawHub install puts it under your workspace):
~/.openclaw/workspace/skills/memory-lancedb-hybrid/plugin
- Install the plugin dependencies (once):
cd ~/.openclaw/workspace/skills/memory-lancedb-hybrid/plugin
npm install --omit=dev
- Add the plugin to OpenClaw’s plugin load paths.
This plugin keeps the id memory-lancedb, so it will override the bundled memory-lancedb extension when discovered via plugins.load.paths (higher precedence than bundled).
Edit ~/.openclaw/openclaw.json:
{
plugins: {
load: {
// Point at the plugin directory inside this skill
paths: ["~/.openclaw/workspace/skills/memory-lancedb-hybrid/plugin"]
},
// Ensure the memory slot points at LanceDB memory
slots: {
memory: "memory-lancedb"
},
// Configure LanceDB memory (this override adds the `hybrid` config block)
entries: {
"memory-lancedb": {
enabled: true,
config: {
embedding: {
apiKey: "${OPENAI_API_KEY}",
model: "text-embedding-3-small"
},
// Optional
dbPath: "~/.openclaw/memory/lancedb",
// Optional
autoCapture: true,
autoRecall: true,
// Hybrid search options
hybrid: {
enabled: true,
reranker: "rrf"
// If using reranker: "linear", you can also set:
// vectorWeight: 0.7,
// textWeight: 0.3,
}
}
}
}
}
}
- Restart the Gateway.
Hybrid search needs an FTS index on the text column; the plugin will attempt to create it automatically. If FTS setup fails for any reason, the plugin logs a debug message and falls back to vector-only search.
Config reference
All config lives under plugins.entries.memory-lancedb.config.
hybrid.enabled(boolean, defaulttrue)hybrid.reranker(rrf|linear, defaultrrf)hybrid.vectorWeight(number 0–1, default0.7, only used forlinear)hybrid.textWeight(number 0–1, default0.3, only used forlinear)
Notes / troubleshooting
- This plugin does not modify OpenClaw’s install on disk; it overrides the bundled
memory-lancedbat runtime (removeplugins.load.pathsto revert). - If you already have LanceDB memory data on disk, you can keep using the same
dbPath. - If you see no hybrid effect, make sure
hybrid.enabledis true and that the FTS index was created (check Gateway logs).
Files
plugin/index.ts– plugin implementation (hybrid search)plugin/config.ts– config parsing + UI hintsplugin/openclaw.plugin.json– manifest + JSON Schema (used for strict config validation)