qmd:让 AI agent 精准回忆、几乎零 token 成本(本地语义搜索)

如果你在用 OpenClaw / Claude 这类 agent,你大概率已经感受到了 token 消耗的速度:

  • 聊几轮就 hit limit
  • 为了“记住上下文”,agent 往 context 里塞一堆无关信息
  • 不仅更贵,还会降低回答精度(噪音越多,越容易跑偏)

有没有办法让 agent 只回忆最相关的那几段,同时 完全零 API 成本

答案是:qmd

qmd 是 Shopify 创始人 Tobi 做的一个本地语义搜索引擎(Rust),专为 AI agent 场景设计:

  • 搜索 markdown 笔记、会议记录、文档
  • 混合检索:BM25 全文 + 向量语义 + LLM 重排序
  • 完全本地运行(GGUF 模型),零 API 成本
  • 可用 MCP 集成,让 agent 主动“精准回忆”

GitHub:https://github.com/tobi/qmd

3 步配置(10 分钟搞定)

第 1 步:安装 qmd

按官方文档安装:https://github.com/tobi/qmd

首次运行会自动下载模型(之后可完全离线):

  • jina-embeddings-v3(约 330MB)
  • 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

索引速度很快:十来个文件通常就是几秒级(纯本地,不联网)。

第 3 步:测试搜索

# 混合搜索(关键词 + 语义,通常最稳)
qmd search daily-logs "关键词" --hybrid

# 纯语义搜索
qmd search daily-logs "关键词"

# 查看所有 collections
qmd list

实测体感:

  • 混合搜索可到 90%+ 精准度
  • 纯语义在一些场景会明显飘一些

进阶:MCP 集成(让 agent 主动回忆)

把 qmd 作为 MCP server 接进去,agent 就能“先搜再答”,而不是把整个 MEMORY.md 塞进上下文。

示例:创建 config/mcporter.json

{
  "mcpServers": {
    "qmd": {
      "command": "/Users/你的用户名/.bun/bin/qmd",
      "args": []
    }
  }
}

开箱即用的工具通常包括:

  • query:混合搜索(一般最精准)
  • vsearch:纯语义
  • search:关键词
  • get / multi_get:精准提取段落
  • status:健康检查

为什么它能省 90% token?

传统“回忆”方式是:把一整份 MEMORY.md(甚至对话历史)塞进 context。

qmd 的方式是:

  1. 先搜「你要的那一小段」
  2. 只把相关段落(比如 200 token)喂给模型

结果就是:

  • 成本更低
  • 噪音更少
  • 回答更准

维护:定期更新索引

qmd embed daily-logs memory/*.md
qmd embed workspace *.md

你甚至可以把它加到 heartbeat / cron 里自动执行。

如果你已经在 OpenClaw 上跑了一段时间,我强烈建议你试一下 qmd:

本地、免费、可持续、能把“回忆”变成一件工程化的事。

抢沙发

评论前必须登录!

立即登录   注册