因受不了刚安装好的openclaw又笨又慢,搜索发现OpenClaw 又慢还费钱,你需要给它安装这个 Skill 技能:本地语义搜索引擎 QMD,于是没做比较就跳进去了,
结果发现@tobilu/qmd真是一个大坑,连咨询的GeMini一直建议我换其他记忆体。
无奈,头铁不撞破南墙不回头,含泪总结了下面保姆级@tobilu/qmd安装,也算是血泪教训吧。看到这里还是建议大家装官方的Memory-JSON。
确认要拯救整个宇宙,开始死磕QMD?
第一阶段
1、确认安装环境,这个非常重要,不然你要哭死在厕所里。
#下面安装路径为举例所用,请自行替换
window 10 profession
openclaw-cn 0.2.0 #安装路径:D:\openclaw\
node 24.14.0-x64 #这个版本太新,安装报错,需要降级到22版本(小版本不限,我是22.22.2,我的全局路径为D:\npm\global\);
python 3.12 #miniconda自带,安装路径D:\Program Files\miniconda3)
python 3.9+(可以miniconda等集成环境,我的路径D:\Program Files\miniconda3\python.exe,
Visual Studio 2022 #不能2026版,在2019-2022之间选择,要求选择“使用 C++ 的桌面开发”,关键的个组件必须选择(默认是勾选的):MSVC v143 (或更高) 、Windows 10/11 SDK、用于 Windows 的 C++ CMake 工具。安装路径:D:\Program Files\Microsoft Visual Studio\2022
@tobilu/qmd #版本是2.0.1
2、注入所有变量 (在PowerShell执行):
激活 Conda (Miniconda 路径):
& 'D:\Program Files\miniconda3\shell\condabin\conda-hook.ps1' ; conda activate 'D:\Program Files\miniconda3'
# 打通 CMake (VS 内核路径):路径
$env:Path += ";D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
# Python
$env:PYTHON = "D:\Program Files\miniconda3\python.exe"
# 构建标记
$env:npm_config_msvs_version = "2022"
$env:GYP_MSVS_VERSION = "2022"
$env:NODE_LLAMA_CPP_SKIP_CMAKE_DOWNLOAD = "true"
3、环境验证命令(在Developer PowerShell for VS 窗口中执行):
cmake --version # 应该输出 3.31.6
cl # 应该输出 Microsoft 编译器信息
python --version # 应该输出 Python 3.x
第二阶段:强攻编译流程 (精准指令,在Developer PowerShell for VS 窗口中执行)
cd D:\npm\global\node_modules\@tobilu\qmd\node_modules\node-llama-cpp
#源码拉取:
node ./dist/cli/cli.js source download
#物理编译 (核心):
node ./dist/cli/cli.js source build --gpu false --arch x64
#注:CPU 模式最稳,适合生物试剂数据处理等 OCR 文本提取任务
第三阶段:成果上线与验证
node "D:\npm\global\node_modules\@tobilu\qmd\dist\cli\qmd.js" --help帮助内容输出代表安装成功。
第四阶段:接入 OpenClaw:
修改 .openclaw/openclaw.json ,也可以在web ui的对话导入
"memory": {
"backend": "qmd",
"qmd": {
"command": "node",
"limits": {
"timeoutMs": 8000
}
}
},
💡 后来人避坑终极总结
报错 msvs_version? 别管 npm,直接用 $env 环境变量。
报错 cmake 找不到? 去 VS 的 CommonExtensions 文件夹里搜。
编译秒回? 因为没下源码,先跑 source download。
DLL 初始化失败? 因为预编译版不兼容,源码编译是唯一的救赎。


Comments | NOTHING