最近在折腾 OpenClaw 的记忆优化时,发现切换到 QMD 后端能让 AI “真正记住一切”,召回率提升 30–50%,token 消耗也更省。下面分享一个针对腾讯云 + 宝塔环境的保姆级、一步步完整流程,专为默认安装路径设计(OpenClaw 在 /root 下),无需自定义路径。
系统环境
- 系统:腾讯云服务器 + 宝塔面板(预装支持扩展的 SQLite)。
- OpenClaw 已安装在 /root/.openclaw/(默认路径)。
- 记忆文件夹:/root/.openclaw/workspace/memory(存放 daily logs 等 md 文件)。
步骤 1: 安装 Bun(QMD 依赖)
# 安装 Bun(QMD 需要它)
curl -fsSL https://bun.sh/install | bash
# 加载 Bun 到当前 shell(或重启终端)
source ~/.bashrc
# 验证
bun --version
步骤 2: 安装 QMD CLI
# 全局安装 QMD(会自动下载 embedding 模型 ~330MB,需网络通畅)
bun install -g github:tobi/qmd
# 验证安装(首次运行可能下载模型,稍等)
qmd --version
步骤 3: 验证 SQLite 扩展(宝塔通常已 OK)
# 检查 sqlite3 版本
sqlite3 --version
# 检查 vec 扩展(QMD 依赖)
sqlite3 :memory: "SELECT vec_version();"
如果输出类似 "vec0.x.x" → OK。
如果报错 "no such function: vec_version" → 宝塔可能没启用 vec 扩展(极少见),去宝塔面板 → 软件商店 → 搜索 sqlite → 重装或启用扩展。
步骤 4: 配置 OpenClaw 使用 QMD
编辑配置文件:
nano /root/.openclaw/openclaw.json
添加/修改 memory 段为:
{
"memory": {
"backend": "qmd",
"citations": "auto",
"qmd": {
"includeDefaultMemory": true,
"update": {
"interval": "5m",
"debounceMs": 15000,
"onBoot": true
},
"limits": {
"maxResults": 6,
"timeoutMs": 8000
},
"scope": {
"default": "deny",
"rules": [
{ "action": "allow", "match": { "chatType": "direct" } }
]
},
"paths": [] // 空数组即可,默认会用 workspace/memory
}
}
}
保存退出(Ctrl+O → Enter → Ctrl+X)。
说明:paths 留空 → QMD 会自动索引默认的 /root/.openclaw/workspace/memory/**.md 文件(你的 daily logs)。
步骤 5: 初始化 QMD 索引(关键!)
之前我也看了很多教程,有的有这一步,有的没有,非常的混乱,经过多方研究后强烈推荐做 collection add + embed。
如果你想用 QMD 的高级功能:BM25 关键词 + 向量 semantic + LLM reranking(准确率远高于默认),尤其适合:
- 记忆文件很多(几十/上百个 daily logs + 项目笔记)
- 经常搜“很久以前的决定/事实”,默认检索容易漏
- 追求最高隐私(全本地,无云 embedding provider)
- 长会话/重度任务,需要 recall 更准
使用默认路径:
# 创建 collection qmd collection add /root/.openclaw/workspace/memory --name agent-memory --mask "**/*.md" # 添加上下文描述(推荐) qmd context add /root/.openclaw/workspace/memory "OpenClaw agent workspace memory files: daily logs, decisions, states, notes" # 生成 embeddings qmd embed # 更新索引 qmd update
步骤 6: 重启 OpenClaw
openclaw gateway restart # 或在聊天里发 /restart
等 10–30 秒,让 QMD 初始化(首次可能建 DB 和索引)。
步骤 7: 验证
- 查看日志:bash
openclaw logs --follow
- 看到类似 "Using QMD memory backend" 或 "QMD initialized" → 成功!
- 如果有 fallback 警告 → 检查步骤 5 是否跑了 collection/embed。
-
在聊天里测试:
- 问 AI 一个之前会话里的细节(比如“记得我上周跟你说的项目 blocker 吗?”)。
- 如果能准确从 memory 拉回 → QMD 生效了。
- 或者用命令:/memory status --deep(看 indexed chunks 数量 >0)。
后续维护
- 定时更新(加 cron):
crontab -e # 每天凌晨2点 0 2 * * * qmd update && qmd embed >> /root/qmd-update.log 2>&1
- 如果 QMD 出问题:日志会显示,OpenClaw 会自动 fallback 到内置 memory(不影响使用)。
- 升级 OpenClaw 后:重新跑步骤 5 的 qmd embed 即可。
这样就完整了!直接复制命令,按顺序执行就行。
升级后,OpenClaw 的 memory_search 会用 BM25 + 向量 + rerank,记忆更准、token 更省!!有问题欢迎评论交流~
本站分享的WordPress主题/插件均遵循 GPLv2 许可协议(开源软件)。相关介绍资料仅供参考,实际版本可能因版本迭代或开发者调整而产生变化。涉及第三方原创图像、设计模板、远程服务等内容的使用,需获得作者授权。

评论0