OpenClaw 的记忆系统:QMD 如何让 AI 助手在本地搜索你的笔记
拆解 OpenClaw 的 QMD 记忆后端 - 一个本地优先的混合搜索引擎,用 BM25 + 向量 + 重排序三级流水线检索 Markdown 笔记,全程离线,不需要 API key。
OpenClaw 是一个跑在本地的个人 AI 助手,能连接 WhatsApp、Telegram、Slack 等消息平台帮你处理日常任务。但一个 AI 助手如果没有”记忆”,每次对话都从零开始,用处就很有限。
OpenClaw 的记忆系统有两套后端:默认的内置 SQLite 方案,和一个实验性的外部方案 - QMD。QMD 是值得单独聊的那个。
QMD 是什么
QMD 全称 Query Markup Documents,是 Shopify 创始人 Tobi 写的一个本地搜索引擎。它专门用来搜索 Markdown 文件 - 笔记、文档、会议记录、知识库,基本上你用 Markdown 写的一切。
QMD 有意思的地方在于,它把三种搜索方式塞进了一个 CLI 工具里:
BM25 全文搜索 - 经典的关键词匹配,基于 SQLite FTS5
向量语义搜索 - 理解语义而不只是匹配关键词,基于 sqlite-vec
LLM 重排序 - 用小模型对结果做精排
三个能力分别对应三个命令:qmd search、qmd vsearch、qmd query。其中 qmd query 会把三者串成一条完整的检索流水线。
全程本地运行,不需要任何 API key。模型通过 node-llama-cpp 加载 GGUF 格式,首次使用时从 HuggingFace 自动下载。
混合搜索流水线
qmd query 的完整流程是 QMD 最核心的设计,分七步:

