QMD 是什么

QMD (Quantum Memory Database)是 Shopify 联合创始人兼 CEO Tobias Lütke (Tobi) 开发的本地语义搜索引擎。

核心价值

  • 不要把整个文件塞给 AI,而是先用本地搜索找到最相关的片段(通常只有 2-3 句话),再把这些精准内容传给 AI

  • 解决传统记忆系统把整个 MEMORY.md 文件直接塞进上下文导致的"上下文爆炸"问题

实际效果

  • 📊 Token 削减:60-97%(平均 95% 以上)

  • ⚡ 响应速度提升:5-50 倍

  • 💰 成本降低:90-99%

  • 🎯 精准度:93%(纯语义搜索仅 59%)

底层技术

  • 基于 TypeScript + Bun 开发,使用 node-llama-cpp 运行本地模型

  • 三层混合检索:BM25 全文搜索 + 向量语义搜索 + LLM 重排序

  • 所有模型在本地运行(GGUF 格式),完全离线

核心架构:


在 OpenClaw 中安装 QMD

前提条件

⚠️ OpenClaw 版本需要 ≥ 2026.2.2

检查你的版本:

openclaw --version

如果版本低于 2026.2.2,需要先更新到最新版本。

第一步:安装 QMD

1.1 选择包管理器

推荐使用 Bun(速度更快):

# 使用 Bun 安装
bun install -g @tobilu/qmd

或使用 npm:

# 使用 npm 安装
npm install -g @tobilu/qmd

或直接运行(无需安装):

npx @tobilu/qmd ...
# 或
bunx @tobilu/qmd ...
1.2 安装支持扩展的 SQLite

QMD 需要支持 vector 扩展的 SQLite。

macOS 用户

brew install sqlite

验证安装:

sqlite3 --version
# 应该显示版本号 ≥ 3.40.0

Linux 用户 (Ubuntu/Debian)

sudo apt update
sudo apt install sqlite3

验证安装:

sqlite3 --version

Windows 用户

  1. 访问 SQLite 官网下载页面:https://www.sqlite.org/download.html

  2. 下载 "Precompiled Binaries for Windows" 中的 sqlite-tools-win-x64-*.zip

  3. 解压到任意目录(例如 C:\sqlite

  4. 将该目录添加到系统 PATH 环境变量: - 右键"此电脑" → "属性" → "高级系统设置" - "环境变量" → 编辑"Path"变量 - 添加解压路径(例如 C:\sqlite

  5. 重启终端,验证安装:

sqlite3 --version
1.3 验证 QMD 安装
qmd --version

如果显示版本号,说明安装成功。

第二步:配置 OpenClaw 使用 QMD

2.1 找到配置文件

根据你使用的版本和操作系统,配置文件位置:

OpenClaw 用户

  • macOS/Linux: ~/.openclaw/openclaw.json

  • Windows: C:\Users\你的用户名\.openclaw\openclaw.json

2.2 修改配置

在配置文件中添加或修改以下内容:

{
  "memory":{
    "backend":"qmd",
    "qmd":{
      "limits":{
        "timeoutMs":8000
      }
    }
}
}

配置说明

  • backend: "qmd"

    - 切换到 QMD 记忆后端

  • timeoutMs: 8000

    - 设置超时时间为 8 秒(默认 4 秒可能不够)

💡 提示:所有操作系统的配置内容完全相同,只是文件路径不同

第三步:重启 OpenClaw

所有操作系统使用相同命令:

# 重启 OpenClaw Gateway 服务
openclaw gateway restart

重启后的行为

  • OpenClaw 会自动使用 QMD 进行记忆检索

  • 如果 QMD 出现问题,会自动回退到内置的 SQLite 记忆系统

  • 不影响正常使用

验证 QMD 是否正常工作

查看 OpenClaw 日志,确认 QMD 后端已启用:

openclaw logs --follow

如果看到类似 Using QMD memory backend的日志,说明配置成功。


实测对比效果

我在启用 QMD 前后做了对比测试,结果让人惊喜。

场景一:长期会话记忆查询

测试问题:"我们三个月前讨论的那个项目,最后用的什么方案?"

对比项

启用前

启用后

改善幅度

上下文大小

8 万+ tokens

削减 95%+

-

响应时间

45 秒(超时失败)

2 秒

快 20+ 倍

API 成本

$2.4

$0.01

降低 200+ 倍

成功率

失败

成功

结论:速度快了 20+ 倍,成本降低 200+ 倍,而且不会失败。

场景二:跨文件知识检索

测试问题:"我们之前所有项目用过哪些技术栈?"

对比项

启用前

启用后

改善幅度

上下文大小

15000+ tokens

削减 90%+

-

响应时间

25-30 秒

3 秒

快 10 倍

稳定性

容易触发 rate limit 卡死

从不卡死

结论:速度提升 10 倍,再也没卡死过。

场景三:日常对话

测试问题:"帮我写个函数"

对比项

启用前

启用后

改善幅度

上下文大小

5000+ tokens

削减 95%+

-

响应时间

8-10 秒

1 秒

快 8-10 倍

体验

感觉慢

秒级响应

🚀

结论:日常使用体验天差地别。

技术深度:为什么上下文变小,速度就快那么多?

大模型的推理时间和输入 token 数量基本成正比关系

上下文大小

平均响应时间

成本水平

稳定性

200 tokens

0.5-1 秒

💰

2,000 tokens

5-8 秒

💰💰💰

10,000 tokens

25-40 秒

💰💰💰💰

⚠️

50,000 tokens

1-2 分钟

💰💰💰💰💰💰

❌ 容易超时

100,000+ tokens

2-5 分钟

💰💰💰💰💰💰💰💰

❌ 基本失败

我的极端案例: 那个 20 万 token 的会话,单次请求成本高达 $6-8,而且基本上都是超时失败,钱白花了。

启用 QMD 后: 无论历史记录有多长,每次只提取最相关的几句话(通常削减 95% 以上)。

✅ 响应快了 5-50 倍 ✅ 成本降低 90-99% ✅ 精准度反而更高(因为噪音少了) ✅ 再也不会因为上下文太长而卡死或超时

全面对比:启用 QMD 前后

未启用 QMD

启用 QMD

响应速度

5-120 秒(长会话直接超时)

1-3 秒(快 5-50 倍)

Token 削减

完整上下文(5K-200K tokens)

削减 60-97%(平均 95%+)

单次 API 成本

$0.05-8(长会话)

降低 90-99%

精准度

容易被干扰

93% 准确率

稳定性

长会话必卡死

从不卡死

隐私

数据本地

完全本地

成本

持续消耗 API

完全免费


适用场景

必须启用的情况

🔴 会话历史超过 1 万 token(基本上运行一周就会超过)
🔴 经常被慢速响应或卡死困扰(特别是长期会话)
🔴 单次请求成本超过 $1


常见问题

Q1: QMD 和传统记忆系统的区别是什么?

传统系统

  • 把整个 MEMORY.md 文件直接塞进上下文

  • 其中 90% 的内容可能和当前问题毫无关系

  • 上下文越长,请求越慢,成本越高,AI 还容易被无关信息干扰

QMD 系统

  • 先用本地搜索找到最相关的片段(通常只有 2-3 句话)

  • 再把这些精准内容传给 AI

  • 大幅减少上下文,提升速度和精准度

Q2: QMD 是否安全?

完全安全:

  • ✅ 完全免费

  • ✅ 完全本地运行

  • ✅ 数据永远不出你的电脑

  • ✅ 不消耗任何 API 配额

Q3: QMD 的准确率如何?

根据实测数据:

  • 混合搜索精准度:93%

  • 纯语义搜索精准度:59%

  • 混合搜索明显更准确

Q4: 如果 QMD 出现问题怎么办?

OpenClaw 有自动回退机制:

  • 如果 QMD 出现问题,会自动回退到内置的 SQLite 记忆系统

  • 不影响正常使用

  • 可以查看日志了解具体问题

Q5: QMD 需要联网吗?

不需要:

  • 首次安装时会下载模型(需要联网)

  • 之后完全离线运行

  • 所有处理都在本地完成

Q6: QMD 支持哪些文件格式?

主要支持:

  • ✅ Markdown 文件(.md)

  • ✅ 文本文件(.txt)

其他格式需要先转换为 Markdown 或文本格式。

Q7: QMD 的性能如何?

非常高效:

  • 12 个文件的索引只需几秒钟

  • 搜索响应通常在 1-3 秒内

  • 完全适合实时交互场景

Q8: 如何优化 QMD 的性能?

可以调整以下参数:

{
  "memory":{
    "backend":"qmd",
    "qmd":{
      "limits":{
        "timeoutMs":8000// 根据需要调整超时时间
      }
    }
}
}

Q9: QMD 占用多少存储空间?

存储空间取决于:

  • 索引的文件数量和大小

  • 模型文件(约几百 MB)

  • 通常总占用在 1-2 GB 左右

Q10: 如何卸载 QMD?

如果要卸载 QMD:

  1. 修改配置文件,移除 QMD 配置:

{
  "memory": {
    "backend": "sqlite"  // 改回默认的 SQLite 后端
  }
}
  1. 重启 OpenClaw:

openclaw gateway restart
  1. 卸载 QMD 包(可选):

bun uninstall -g @tobilu/qmd
# 或
npm uninstall -g @tobilu/qmd

相关链接

  • QMD GitHub

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

  • OpenClaw 官网

    : https://openclaw.ai

  • SQLite 官网

    : https://www.sqlite.org/


推荐阅读

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐