OpenClaw(ClawdBot)目前最主流、省 token 的做法就是用 QMD 做本地混合检索(BM25 + 向量 + 重排序),取代把整个 MEMORY.md 或 memory/ 目录反复塞给大模型的笨办法。社区实测能省 70%–97% 的 token 消耗(视你的知识库大小和工作方式而定),尤其是长期使用后效果特别明显。
QMD 是 Tobi(Shopify 创始人)开源的一个本地轻量混合搜索引擎,专为 Markdown 知识库设计,全部跑在你本地(Rust 实现,很快):
- 不需要联网、不烧 API token
- 支持关键词(BM25)+ 语义向量 + LLM rerank 三合一
- 只返回最相关的几段,而不是整个文件或整个记忆
- OpenClaw 2026 年 2 月后的版本已经原生集成 QMD 作为可选 memory backend,叫它 “QMD Memory Plugin” 或直接叫 “QMD skill”
不管哪种方式,都要先安装 Bun(QMD 官方推荐的运行环境,超级快,比 npm/yarn 轻量) Linux / macOS:
curl -fsSL https://bun.sh/install | bash
安装完后,重新打开终端,或运行:
source ~/.bashrc # 或 ~/.zshrc,根据你的 shell
验证:
bun --version
应该看到版本号(如 1.1.x 或更高)。
Windows:直接去 https://bun.sh 下载安装器,或用 PowerShell:
irm bun.sh/install.ps1 | iex
方式1:最简单 — 直接让 OpenClaw 自己装 QMD 并启用(推荐新手)
-
先把 OpenClaw 更新到最新版(2026.2.x 之后基本都支持)
# 在 OpenClaw 聊天框里直接说: Update yourself to the latest version或命令行里跑官方的 update 指令。
-
让它自己安装 QMD 依赖(如果本地能跑 embedding 模型)
请安装 QMD skill 的所有依赖,包括本地 embedding 模型(如果你的机器 GPU 弱或不想跑本地 embedding,可以只用 BM25 模式,也已经很省了)
-
启用 QMD 作为记忆后端
- 在聊天里直接指令:
从现在开始使用 QMD 作为我的主要长期记忆检索方式 不要再每次都加载整个 MEMORY.md 只在必要时用 qmd search / qmd vsearch / qmd query 取相关片段 - 或修改配置文件(~/.openclaw/openclaw.json 或 workspace 里的配置):
{ "memory": { "backend": "qmd", "qmdCollections": ["memory", "life", "workspace"], "experimental": { "useQmdForSession": true } } }
- 在聊天里直接指令:
-
让它初始化索引(非常重要!)
请对我的 memory/ 目录、life/ 目录运行 qmd update && qmd embed 以后每天自动更新一次索引
之后 OpenClaw 就会自动用 qmd 来搜,而不是塞几万 token 上下文了。
方式2:更灵活 — 手动装 QMD + 自己配置 collections(进阶用户推荐)
-
先在终端手动安装 QMD(https://github.com/tobi/qmd)
# 用 bun / cargo / 官方推荐方式安装 bun install -g @tobi/qmd # 或 cargo install qmd
-
创建 collections(对应不同层记忆)
# 日常记忆 / 每日日志 qmd collection add ~/clawd/memory --name memory --mask '**/*.md' # 人生/长期事实(life/items.json 也可以加) qmd collection add ~/clawd/life --name life --mask '**/*.{md,json}' # 工作空间文档 qmd collection add ~/clawd --name workspace --mask '**/*.md' # 可选:清洗过的历史会话 qmd collection add ~/clawd/sessions-clean --name sessions-clean --mask '**/*.md'
-
建索引 & embedding(第一次会慢,之后增量快)
qmd update # 全量更新 qmd embed # 生成向量(如果要语义搜索) # 建议放 crontab 每天凌晨跑一次: # 0 3 * * * cd ~/clawd && qmd update --pull && qmd embed
-
教 OpenClaw 用 QMD(加到 skill 或自定义指令里)
- 让 agent 记住这些指令:
当你需要回忆/查找历史信息时,用以下命令: - qmd search "关键词" -c memory # 关键词搜 - qmd vsearch "自然语言描述" -c life # 语义搜 - qmd query "问题" -c memory,life # 混合搜(最推荐) 只读取返回的片段,不要加载整文件
- 让 agent 记住这些指令:
- OpenClaw ≥ 2026.2.x
- 已启用 QMD backend(聊天里问 “现在用什么 memory backend?” 确认)
- 至少跑过一次 qmd update && qmd embed
- 告诉 agent:“以后用 qmd 搜索记忆,不要再塞整份 MEMORY.md”
- 观察 1–2 天,看 input token 是否明显下降(通常会腰斩甚至更多)
这样设置完,大部分人反馈长期使用能省 80%+ token,尤其是知识库越大越明显。