OpenClaw 微信插件安装踩坑记:从"钳"摆不定到游刃有余
🦞 报告:本虾历时N小时,终于把微信插件搞定了!过程堪比深海捉蟹——看着近,摸起来全是泡沫。
一、事情是这样的
某天早上,我心血来潮想给 OpenClaw 加个微信通道。毕竟都在 2026 年了,怎么能没有微信呢?于是…
# 简单,不就是装个插件嘛openclaw plugins install "@tencent-weixin/openclaw-weixin"
卸载?不可能的,我这种虾从来不会半途而废。装!
安装命令:
openclaw plugins install "@tencent-weixin/openclaw-weixin"openclaw config set plugins.entries.openclaw-weixin.enabled trueopenclaw channels login --channel openclaw-weixin # 扫码openclaw gateway restart
一套操作下来,行云流水。 我都很佩服自己。
二、然后…它就炸了
错误现场直击
重启后查看日志,一串红色错误疯狂刷屏:
2026-03-22T14:51:30.253 [plugins] openclaw-weixin failed to load:TypeError: (0 , _pluginSdk.resolvePreferredOpenClawTmpDir) is not a function
🤔 嗯?is not a function?这意思是 SDK 里没这个函数?
我的第一反应: 这插件怕不是写错了?
实际情况: 错的是我自己的 OpenClaw 版本。
三、深挖问题:版本错位的罗生门
3.1 查版本对比
# 当前运行的版本openclaw gateway status# 输出:2026.3.13# 配置文件的"最后接触版本"cat ~/.openclaw/openclaw.json | grep lastTouchedVersion# 输出:"2026.3.22"
发现问题: 配置版本(2026.3.22)> 运行版本(2026.3.13)
这就好比你的车是 2023 款的,但说明书是 2025 版的——里面说的功能你的车根本没有,可不就报错嘛!
3.2 谁动了我的配置?
翻看 ~/.openclaw/logs/config-audit.jsonl,时间线如下:
2026-03-22 06:51 - 首次安装插件2026-03-22 06:58 - 第一次 update(来自 QClaw.app)2026-03-22 07:59 - 第二次 update(还是 QClaw.app)2026-03-23 01:52 - 第三次 update(来自 moltbot 环境)2026-03-23 01:57 - 第四次 update2026-03-23 02:26 - 重新安装
罪魁祸首找到了: 多个版本的工具混用,把配置文件”升级”到了 2026.3.22 的格式,但实际运行的 Gateway 还是 2026.3.13。
3.3 那个神秘的函数
resolvePreferredOpenClawTmpDir 是 OpenClaw 2026.3.22 在 plugin-sdk 里新增的辅助函数,用于插件获取推荐的临时目录路径。
2026.3.13 的 SDK 里根本没这函数,所以插件一调用就炸:is not a function。
四、解决方案:三种路,选一条
方案 A:升级核心(我选的)
# Homebrew 升级brew upgrade openclaw# 或openclaw self-update
升级到 2026.3.22+ 后重启,世界安静了。
方案 B:降级配置(适合不想动的懒人)
# 1. 卸载插件openclaw plugins uninstall openclaw-weixin# 2. 手动编辑 ~/.openclaw/openclaw.json# 找到 meta.lastTouchedVersion,改成 "2026.3.13"# 删除 plugins.installs.openclaw-weixin 字段# 3. 重启 Gatewayopenclaw gateway restart# 4. 重新安装(如果还有旧版本的话)openclaw plugins install "@tencent-weixin/openclaw-weixin@1.0.1"
方案 C:让 Doctor 帮你擦屁股
openclaw doctor --fix
这个命令会:
-
✅ 清理过时的配置字段 -
✅ 修复权限问题 -
✅ 重置不兼容的插件配置
五、验证胜利果实
升级后查看日志:
2026-03-23T09:58:01.322 [openclaw-weixin] [ce8a85c5d8cc-im-bot] starting weixin provider (https://ilinkai.weixin.qq.com)2026-03-23T09:58:01.325 [openclaw-weixin] weixin monitor started (https://ilinkai.weixin.qq.com, account=ce8a85c5d8cc-im-bot)
无错误 ✅插件初始化 ✅长轮询连接建立 ✅
查看已登录账号:
cat ~/.openclaw/openclaw-weixin/accounts.json
["ce8a85c5d8cc-im-bot","fba4a2a57e8c-im-bot","d98a0337fd68-im-bot"]
3个微信账号成功接入! 🎉
六、经验总结:虾的几点人生感悟
1. 版本对齐:别让新旧混搭
规则: 插件依赖的 API 需要 OpenClaw 核心版本 ≥ 配置版本
检查三件套:
# 运行版本openclaw gateway status# 配置版本grep lastTouchedVersion ~/.openclaw/openclaw.json# 插件版本cat ~/.openclaw/extensions/openclaw-weixin/package.json | grep version
2. 工具来源:别当”多面手”
我在日志里发现了两种不同的 openclaw 命令:
/opt/homebrew/bin/openclaw
(Homebrew 安装,统一管理) /Users/mac0553/Documents/moltbot/node_modules/.bin/openclaw
(项目本地)
建议: 选一个主力工具,别换来换去。我选 Homebrew,因为懒。
# 确保 PATH 里只有一个 openclawwhich openclaw # 应该是 /opt/homebrew/bin/openclaw
3. 插件加载的前置检查清单
遇到插件不加载?按这个流程过一遍:
-
[ ] Gateway 在跑吗? openclaw gateway status -
[ ] 插件启用了吗? openclaw config get plugins.entries.openclaw-weixin.enabled -
[ ] Node 版本够吗?插件需要 Node ≥ 22,我 v25.8.1 ✅ -
[ ] 配置文件版本没超前吧? -
[ ] 插件目录有 TypeScript 编译后的 dist/吗? -
[ ] 权限对不对?(目录 700,文件 600)
4. Doctor 是个好医生
openclaw doctor --fix 就像给机器做全身检查,会自动修复:
-
无效的配置字段 -
权限问题 -
插件引用错误 -
文件路径冲突
建议每次升级后都跑一次。
5. 插件安全:allowlist 要用起来
当前配置:
"plugins":{"allow":[],"entries":{ ... }}
allow 为空意味着任何发现的插件都会自动加载(虽然会警告)。建议明确列出信任的插件:
openclaw config set plugins.allow '["openclaw-weixin","qqbot"]'
七、微信通道使用指南
搞定插件后,就可以愉快地在微信里和 AI 聊天了。
登录多账号
# 每次扫码添加一个新账号openclaw channels login --channel openclaw-weixin# 支持同时登录多个微信,每个独立会话
功能一览
| 消息类型 | 支持状态 | 备注 | |———|———|——| | 文本 | ✅ | 全双工对话 | | 图片 | ✅ | 自动下载 + 加密上传 | | 语音 | ✅ | silk-wasm 编解码 | | 视频 | ✅ | CDN 传输 | | 文件 | ✅ | 任意格式 |
所有媒体走微信 CDN,AES-128-ECB 加密,插件自动处理。
消息架构
用户 → Gateway → openclaw-weixin → 微信服务器 ↓ 长轮询 getUpdates ↓ 返回加密的 CDNMedia
插件会帮你处理:
-
上传文件的 AES 加密 -
获取微信 CDN 预签名 URL -
上下文 token 管理 -
输入状态指示(typing)
插件内部日志
tail -f ~/.openclaw/logs/gateway.log | grep "\[openclaw-weixin\]"
可以看到类似:
[openclaw-weixin] [ce8a85c5d8cc-im-bot] starting weixin provider[openclaw-weixin] weixin monitor started (https://ilinkai.weixin.qq.com, account=xxx)[openclaw-weixin] Connecting to CDN with upload_param...
八、踩坑地图:给后来虾的导航
坑 1:is not a function
现象:TypeError: xxx is not a function
原因: 插件需要的 API 在当前 OpenClaw 版本中不存在
治疗:
-
查插件 package.json 的 engines.openclaw -
升级到要求的版本或更高
坑 2:配置版本被”绑架”
现象: 配置文件被各种工具改来改去,lastTouchedVersion 飙升
治疗:
-
统一使用一个 openclaw 命令(建议 Homebrew) -
别在 moltbot 里也用 openclaw(版本可能不同) -
定期运行 openclaw doctor --fix
坑 3:网关启动失败
现象:Port 18789 is already in use 或 Gateway failed to start: gateway already running
治疗:
# 先 Kill 掉旧进程ps aux | grep openclawkill <pid># 或直接openclaw gateway stop # 如果命令可用# 再重启openclaw gateway start
留心: 很多时候 Gateway 已经在后台跑着,不需要重复启动。
坑 4:插件不加载
现象: 日志里只有 failed to load,没有其他信息
治疗:
# 检查插件是否启用openclaw config get plugins.entries.openclaw-weixin# 检查插件是否在 allowlistopenclaw config get plugins.allow# 检查插件编译ls ~/.openclaw/extensions/openclaw-weixin/dist/# 如果 dist 不存在,手动编译cd ~/.openclaw/extensions/openclaw-weixinnpm run build
九、最佳实践总结
1. 版本管理
-
保持 OpenClaw 核心版本最新 -
升级后运行 openclaw doctor --fix -
定期检查插件更新: openclaw plugins update
2. 配置安全
# 显式声明信任的插件openclaw config set plugins.allow '["openclaw-weixin","qqbot"]'# 启用多账号上下文隔离(如果有多个用户)openclaw config set agents.mode per-channel-per-peer
3. 监控与维护
# 实时监控插件状态tail -f ~/.openclaw/logs/gateway.log | grep openclaw-weixin# 检查账号状态openclaw channels list# 查看健康检查openclaw health # 如果有这个命令
4. 故障快速定位
遇到问题先问自己:
-
Gateway 在跑吗? openclaw gateway status -
插件日志在哪? tail -f ~/.openclaw/logs/gateway.log -
版本匹配吗? openclaw versionvslastTouchedVersion -
权限对吗?插件目录 700,文件 600
十、后记
这次折腾让我深刻体会到:版本一致是多重要。
就像虾的钳子必须左右对称才能夹住猎物,OpenClaw 的插件和核心版本也必须对齐才能正常工作。
现在我的 OpenClaw 成功接入了 3 个微信账号,微信、QQ、Discord trio 集合完毕。🎉
下一步: 试试在微信里让 AI 帮我订咖啡?☕
参考资料
-
OpenClaw 文档:https://docs.openclaw.ai -
微信插件 README: ~/.openclaw/extensions/openclaw-weixin/README.zh_CN.md -
插件 API 定义: ~/.openclaw/extensions/openclaw-weixin/src/api/ -
网关日志: ~/.openclaw/logs/gateway.log -
配置审计: ~/.openclaw/logs/config-audit.jsonl
夜雨聆风