QMD 本地語義搜尋工具
QMD(Quick Markdown Search)是一個完全在本機運行的 Markdown 筆記搜尋工具,解決 AI Agent 在大量筆記中找到正確資訊的問題。可作為 OpenClaw 的 Skill 安裝。
三層搜尋架構
QMD 結合三種搜尋技術,而非只用其中一種:
| 搜尋層 | 適用場景 | 類比 |
|---|---|---|
| Keyword Search | 知道確切的關鍵字 | Ctrl+F |
| Semantic Search | 只有模糊的概念 | 「找跟 X 有關的東西」 |
| Smart Re-ranker | 多筆結果需要排序 | 把最相關的排到最前面 |
對應 CLI 指令:
| 指令 | 功能 | 使用場景 |
|---|---|---|
qmd search | BM25 關鍵字搜尋 | 知道精確名詞時 |
qmd vsearch | 向量語意搜尋 + query expansion | 只有模糊描述時 |
qmd query | 組合搜尋 + re-ranking | 一般查詢(推薦預設使用) |
Agent 會自動判斷使用哪種搜尋方式(也可以手動指定 deep search 來強制使用語義搜尋 + 重排)。
安裝與架構
安裝需要 Bun runtime:
curl -fsSL https://bun.sh/install | bash
bun install -g github:tobi/qmdqmd 不需要 Ollama。它自帶三個 GGUF 模型,透過 node-llama-cpp 在本機推論,首次使用時自動下載至 ~/.cache/qmd/models/:
| 模型 | 用途 | 大小 |
|---|---|---|
| embedding-gemma-300M | 向量嵌入 | ~300MB |
| qwen3-reranker-0.6b | 結果重排 | ~640MB |
| qmd-query-expansion-1.7B | 查詢擴展(fine-tuned) | ~1.1GB |
索引流程:
qmd collection add notes/ --name my-collection --mask "*.md" # 首次建立
qmd embed # 建向量嵌入
qmd update # 後續更新索引為什麼重要
這解決了 AI Agent 記憶系統的檢索瓶頸:
- 根據 AI Agent 的記憶系統設計,記憶的關鍵是「寫下來」
- 但當筆記累積到成千上萬篇,找到對的那篇比寫下來更困難
- 不用把整個 vault 丟進 context window(昂貴且低效),而是精準檢索需要的段落
這相當於給 AI Agent 一個**「你個人筆記的 Google」**,完全本地運行,不需雲端。
連結
- 上層:Clawdbot MOC
- 相關:AI Agent 的記憶系統設計、Agent Skills 模式
- 類比:RAG 檢索增強生成 — QMD 本質上是本地化的 RAG
參考
- GitHub:https://github.com/tobi/qmd
- YouTube - OpenClaw use cases by VelvetShark — QMD 介紹與使用演示