什么是 qmd

qmd 是 Shopify 创始人 Tobi 开源的本地语义搜索引擎,基于 Rust 构建,专为 AI Agent 场景设计。核心能力包括:

  • 混合搜索:BM25 全文检索 + 向量语义搜索 + LLM 重排序,三管齐下
  • 零 API 成本:完全本地运行,使用 GGUF 模型,不依赖任何外部服务
  • MCP 集成:agent 可主动调用搜索,自动"回忆"相关上下文,无需手动提醒
  • 搜索对象:markdown 笔记、会议记录、各类文档

三步完成配置

第 1 步:安装 qmd

首次运行会自动下载两个模型:

  • Embedding 模型:jina-embeddings-v3(330MB)
  • Reranker 模型:jina-reranker-v2-base-multilingual(640MB)

下载完成后即可完全离线运行。

第 2 步:创建记忆库并生成 embeddings

索引速度很快,12 个文件仅需几秒,全程本地完成,无需联网。

第 3 步:测试搜索效果

实测数据:混合搜索模式精准度达 93%,纯语义搜索为 59%。混合搜索的优势非常明显。

MCP 集成:让 Agent 自动回忆

通过创建 config/mcporter.json 配置文件,可以让 AI agent 直接调用 qmd。集成后开箱即用 6 个工具:

  • query — 混合搜索(最精准)
  • vsearch — 纯语义搜索
  • search — 关键词搜索
  • get / multi_get — 精准提取指定文档
  • status — 健康检查

配置完成后,agent 会在对话中主动搜索相关上下文,不再需要你手动粘贴背景信息。

实际效果对比

场景 1:回忆用户偏好

提问:"Ray 的写作风格是什么?"

方案 做法 Token 消耗
传统方案 整个 MEMORY.md(约 2000 token)塞进 context,90% 内容无关
qmd 方案 agent 搜索"写作风格",只返回相关段落(约 200 token) 节省 90%

场景 2:跨文件知识检索

提问:"之前讨论过什么?"

  • 传统方案:手动指定文件,或将整个对话历史塞进 context
  • qmd 方案:自动从所有 memory 文件中检索最相关段落,跨文件精准回忆,93% 准确率

索引维护

记忆库需要定期更新索引以保持最新状态,可以将更新命令加入 cron 定时任务或 heartbeat 中自动执行。

小结

对于重度使用 AI Agent 的开发者来说,qmd 解决的是一个很实际的问题:如何让 agent 在不烧 token 的前提下精准获取历史上下文。本地部署、零成本、93% 精准度,加上开箱即用的 MCP 集成,10 分钟就能跑起来。如果你正在构建有长期记忆需求的 Agent 工作流,值得一试。