概述

QMD 是一个本地优先的搜索 sidecar,与 OpenClaw 并行运行。它将 BM25、向量搜索和重排序集成在单一二进制中,可索引工作区记忆文件之外的内容,并在 QMD 不可用时自动回退到内置引擎。

核心要点

  • 超越内置引擎的能力:重排序与查询扩展提升召回质量;可索引额外目录(项目文档、团队笔记);可索引会话转录以回忆历史对话
  • 完全本地:使用可选的 node-llama-cpp 运行时包,自动下载 GGUF 模型
  • 自动回退:QMD 不可用时无缝回退到内置 SQLite 引擎
  • 搜索模式:search(BM25 纯词法)、vsearch(向量)、query(混合+重排序)
  • 多集合优化:新版 QMD 支持单命令搜索多集合,减少子进程开销
  • 冷启动慢:首次搜索会自动下载约 2GB 的 GGUF 模型

配置/使用

启用 QMD 后端:

{
  memory: {
    backend: "qmd"
  }
}

索引额外路径:

{
  memory: {
    backend: "qmd",
    qmd: {
      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }]
    }
  }
}

启用会话转录索引:

{
  memory: {
    backend: "qmd",
    qmd: {
      sessions: { enabled: true }
    }
  }
}

模型环境变量覆盖:

export QMD_EMBED_MODEL="hf:Qwen/Qwen3-Embedding-0.6B-GGUF/..."
export QMD_RERANK_MODEL="/path/to/reranker.gguf"

常见问题排查:

  • QMD 找不到:确保二进制在 gateway 的 PATH 中,或用 memory.qmd.command 指定绝对路径
  • 搜索超时:增大 memory.qmd.limits.timeoutMs(默认 4000ms)
  • 群聊无结果:检查 memory.qmd.scope,默认只允许 direct 和 channel 会话

相关页面