LanceDB Hybrid Search Memory Plugin

✨ 混合搜索记忆,召回更精准

LanceDB 混合搜索记忆插件,融合向量语义与 BM25 全文检索,支持 RRF 或线性重排序,显著提升记忆召回精准度。

收藏
11.8k
安装
2.7k
版本
1.2.1
CLS 安全性认证2026-05-17
点击查看完整报告 >

使用说明

核心功能

memory-lancedb-hybrid 是 OpenClaw 官方 LanceDB 记忆插件的增强版本,通过混合搜索技术解决纯向量搜索的语义漂移问题。该插件在保留原有 memory_storememory_recallmemory_forget 三大工具的基础上,为 memory_recall 及自动召回机制增加了 BM25 全文检索 + 向量语义搜索 的混合能力。

显著优点

1. 混合搜索架构:同时利用向量搜索的语义理解能力和 BM25 的精确关键词匹配,召回率与精准度双提升
2. 灵活重排序策略:支持 RRF(Reciprocal Rank Fusion,推荐)和线性加权两种融合算法,适配不同场景

3. 零侵入升级:通过插件覆盖机制(id 同为 memory-lancedb)无缝替换原生插件,保留已有数据

4. 自动降级保障:FTS 索引创建失败时自动回退至纯向量搜索,不影响核心功能

5. 完善的安全防护:内置提示词注入检测、XSS 防护、UUID 格式验证等多重安全机制

潜在局限

  • 依赖 OpenAI API 生成文本嵌入,需配置 OPENAI_API_KEY
  • 首次启用需自动构建 FTS 索引,大数据集可能耗时
  • 作为社区插件(基于官方 PR #7636),非 OpenClaw 核心团队直接维护
  • 混合搜索会增加一定的查询延迟(可配置关闭)

适合人群

  • 需要高精准记忆召回的 AI 应用开发者
  • 已有 LanceDB 记忆数据、希望无损升级搜索能力的用户
  • 对关键词敏感场景(如代码片段、专业术语检索)有强需求的场景

常规风险与缓解

| 风险点 | 缓解措施 |
|--------|----------|
| 外部 API 依赖 | 支持自定义 baseUrl 兼容本地 embedding 服务 |
| 环境变量读取 | 功能必需设计,无硬编码密钥,未设置时报明确错误 |
| 本地文件访问 | 限定在 `~/.openclaw/memory/lancedb` 目录,无遍历风险 |
| 提示词注入 | 内置 `looksLikePromptInjection` 检测函数 |
| 数据隐私 | 完整支持 `memory_forget` GDPR 合规删除 |

配置要点

hybrid: {
  enabled: true,      // 总开关
  reranker: "rrf",    // 或 "linear"
  // vectorWeight: 0.7,  // linear 模式下向量权重
  // textWeight: 0.3     // linear 模式下文本权重
}

建议优先使用 RRF 算法,其无需调参且融合效果稳定;如需精细控制语义/关键词偏向,可切换至线性模式并调整权重。

安全解读

核心功能与定位

memory-lancedb-hybrid 是 OpenClaw 生态的官方级记忆增强插件,通过覆盖内置 memory-lancedb 扩展,为 Agent 引入混合搜索能力。它并非独立服务,而是「插件即配置」的轻量级方案,将语义理解与精确术语匹配无缝融合。

核心用法

安装后通过 openclaw.json 启用,保留原有工具接口(memory_store/memory_recall/memory_forget),无需改动业务代码:

  • 向量搜索:基于 OpenAI text-embedding-3-small 的语义召回
  • BM25 全文搜索:精确匹配关键词,弥补向量对罕见术语的盲区
  • 重排序策略rrf(倒数排序融合,默认推荐)或 linear(可调权重线性组合)

FTS 索引自动创建,失败时优雅降级为纯向量搜索。

显著优点

1. 零侵入升级:复用原有工具名与数据目录,旧数据无缝迁移
2. 双路召回互补:向量捕捉语义关联,BM25 确保专有名词命中,搜索质量显著优于单一模式

3. 配置即代码:所有行为通过 JSON Schema 严格校验的配置文件控制,无隐藏魔法

4. 本地优先架构:数据存储于本地 LanceDB,仅向 OpenAI 发送嵌入请求,隐私边界清晰

潜在局限

  • FTS 索引依赖:自动建索引可能失败(如磁盘权限、文本列异常),需监控日志确认
  • OpenAI 强依赖:嵌入模型固定调用官方 API,暂无本地嵌入方案(如 ollama/mxbai)
  • 权重调参门槛linear 模式需理解 vectorWeight/textWeight 对业务的影响,RRF 虽省心但缺乏细粒度控制
  • 单节点设计:LanceDB 本地文件模式,无分布式或高可用考量

适合人群

  • 已使用 OpenClaw 且对记忆召回质量不满的开发者
  • 需要兼顾语义模糊搜索与精确关键词匹配的知识库场景
  • 注重数据主权、偏好本地存储的隐私敏感用户

常规风险与应对

| 风险点 | 缓解措施 |
|--------|---------|
| FTS 索引创建失败导致搜索降级 | 查看 Gateway debug 日志,确认 `text` 列数据完整性 |
| OpenAI API 密钥泄露 | 强制通过 `${OPENAI_API_KEY}` 环境变量注入,禁止硬编码 |
| 长期记忆膨胀 | 利用 `memory_forget` 主动清理,或定期归档旧数据 |
| 插件冲突 | 确保 `plugins.load.paths` 仅指向本插件目录,避免多版本覆盖 |

技术溯源

代码源自 OpenClaw 社区 PR #7636,由维护者 joeykrug 持续维护,MIT 协议开源,属于可信社区驱动项目。

LanceDB Hybrid Search Memory Plugin 内容

plugin文件夹
手动下载zip · 18.2 kB
config.tstext/plain
请选择文件