QMD:OpenClaw 的本地语义搜索解决方案
文章背景 / 问题引入
如果你在用 OpenClaw,应该已经感受到了 token 消耗的速度 🔥 尤其 Claude 用户,没谈几轮下来就 hit limit 了。而且,很多时候 agent 塞了一堆无关信息进 context,不仅费钱,还影响精准度。
有没有办法让 agent “精准回忆”,同时完全零成本?
有。qmd —— 本地运行,免费永久,精准度 95% 以上。
核心概念解析
什么是 qmd?
qmd 是 Shopify 创始人 Tobi 做的本地运行的语义搜索引擎,基于 Rust,专为 AI Agent 设计。
GitHub 地址: https://github.com/tobi/qmd
核心功能
🔍 强大的搜索能力
- 搜索 markdown 笔记、会议记录、文档
- 混合搜索:BM25 全文 + 向量语义 + LLM 重排序
- 零 API 成本,完全本地运行(GGUF 模型)
- MCP 集成,agent 主动回忆,不用手动提醒
技术实现细节
快速开始(3 步配置,10 分钟搞定)
第 1 步:安装 qmd
bun install -g https://github.com/tobi/qmd
首次运行会自动下载模型(完全免费,本地运行):
- Embedding 模型: jina-embeddings-v3 (330MB)
- Reranker 模型: jina-reranker-v2-base-multilingual (640MB)
下载完成后,完全离线运行,无需网络连接。
第 2 步:创建记忆库 + 生成 embeddings
# 进入 OpenClaw 工作目录
cd ~/clawd
# 创建记忆库(索引 memory 文件夹)
qmd collection add memory/*.md --name daily-logs
# 生成 embeddings
qmd embed daily-logs memory/*.md
# 也可以索引根目录的核心文件
qmd collection add *.md --name workspace
qmd embed workspace *.md
索引速度:12 个文件 ≈ 几秒(本地运行,不联网)
第 3 步:测试搜索
# 混合搜索(关键词 + 语义,最精准)
qmd search daily-logs "关键词" --hybrid
# 纯语义搜索
qmd search daily-logs "关键词"
# 查看所有 collections
qmd list
实测结果:混合搜索 93% 精准度,纯语义 59%。
进阶配置
MCP 集成
让 AI agent 直接调用 qmd,创建 config/mcporter.json:
{
"mcpServers": {
"qmd": {
"command": "/Users/你的用户名/.bun/bin/qmd",
"args": ["mcp"]
}
}
}
6 个工具开箱即用
| 工具 | 功能 |
|---|---|
query | 混合搜索(最精准) |
vsearch | 纯语义搜索 |
search | 关键词搜索 |
get / multi_get | 精准提取文档 |
status | 健康检查 |
现在 agent 会主动"回忆"相关上下文,不再靠你手动提醒。
实战案例
场景 1:回忆用户偏好
用户问题: “Ray 的写作风格是什么?”
传统方案:
- 整个 MEMORY.md(2000 token)塞进 context
- 90% 内容无关
qmd 方案:
- agent 搜索:“Ray 写作风格”
- 只返回相关段落(~200 token)
- 省 90% token,精准度更高
场景 2:跨文件知识检索
用户问题: “之前讨论过什么?”
传统方案:
- 手动指定文件
- 或整个对话历史塞进 context
qmd 方案:
- 自动从所有 memory 文件中找最相关段落
- 跨文件精准回忆,93% 准确率
最佳实践
定期更新索引
# 定期更新索引
qmd embed daily-logs memory/*.md
qmd embed workspace *.md
可以加到 heartbeat 或 cron 里自动执行。
总结
qmd 为 OpenClaw 提供了一个完美的本地语义搜索解决方案,它:
- 完全免费:无需支付任何 API 费用
- 极速响应:本地运行,搜索秒级返回
- 精准度高:混合搜索模式达到 93% 准确率
- 零依赖:完全离线运行,不担心网络波动
- MCP 集成:agent 主动回忆,无需手动管理
如果你想要体验真正的智能记忆功能,qmd 是你不容错过的工具。
参考资料
💡 下期预告:将介绍如何在 OpenClaw 中集成 qmd 的实际案例
📬 订阅更新:关注我的博客获取最新技术文章