摘要:本文记录在将 OpenClaw 与飞书、QQ 机器人渠道联调、升级过程中遇到的典型报错,说明其含义,并给出可复现的解决步骤。适用场景:自建 Gateway、yarn 全局安装 OpenClaw、同时启用
openclaw-lark与openclaw-qqbot等扩展。
一、飞书私聊提示「OpenClaw: access not configured」
现象
在飞书中向机器人发私聊,收到类似回复:
text
OpenClaw: access not configured.
ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pairing code: XXXXXXXX
Ask the bot owner to approve with:
openclaw pairing approve feishu XXXXXXXX
含义
这不是 「OpenClaw 没配好」的系统故障提示,而是私信安全策略下的**配对(pairing)**流程文案:
- 第一行来自 OpenClaw 的配对挑战模板,实际想表达的是:当前发送者尚未被授权私聊该机器人。
ou_...为飞书用户的 Open ID。- Pairing code 是一次性配对码,需由机器人管理员在运行 Gateway 的环境用 CLI 批准。
处理办法(管理员)
在配置目录所在环境执行(将 CODE 换成实际配对码):
bash
openclaw pairing approve feishu CODE
多飞书应用(多 account)时,可能需要指定账号,例如:
bash
openclaw pairing approve feishu CODE --account <accountId>
查看待处理请求:
bash
openclaw pairing list feishu
批准后,该用户通常会写入本地允许列表,同一机器人、同一环境下一舨无需再次配对(除非清理数据、换机或多实例存储不一致)。
延伸:只有我一个人用,不想每次配对
默认 channels.feishu.dmPolicy 常为 pairing,陌生人会反复走配对。若只有固定账号需要访问:
- 将
channels.feishu.dmPolicy设为allowlist。 - 在
channels.feishu顶层 设置allowFrom,填入允许的飞书 Open ID(ou_...)。
这样所有合并了顶层配置的子账号(如 main / coding / docs 等多机器人)都会继承同一套私信白名单,避免「只写在某个 accounts.* 节点却对实际在用的账号不生效」的问题。群聊若使用 groupPolicy: "allowlist",也应把 groupAllowFrom 放在顶层或每个在用账号下,保证策略一致。
修改后需 openclaw gateway restart(或等价重启方式)使配置生效。
注意 :allowlist 下未列入的用户将无法私聊,适合个人或小团队;若需对租户内所有人开放,需改用文档中的 open 策略并按要求配置通配(安全风险更高)。
二、QQ 机器人插件:从旧版升级到 v1.6.7
现象
群内或日志提示有新版本(例如 v1.6.7,当前仍为 v1.6.1),并建议使用 /qqbot-upgrade 升级。
含义
/qqbot-upgrade 本质是触发在扩展目录中安装 @tencent-connect/openclaw-qqbot 的最新 npm 版本,而不是只改 OpenClaw 主程序版本号。
处理办法
在已安装的扩展目录执行(路径以本机 openclaw.json 里 gateway.plugins.installs.openclaw-qqbot.installPath 为准,常见为 ~/.openclaw/extensions/openclaw-qqbot):
bash
cd ~/.openclaw/extensions/openclaw-qqbot
npm install @tencent-connect/openclaw-qqbot@latest
安装完成后:
- 确认
node_modules/@tencent-connect/openclaw-qqbot/package.json中version已为预期(如1.6.7)。 - 重启 Gateway :
openclaw gateway restart。
版本号对齐
扩展根目录常有一份额外的 package.json(包装层),其 version 可能与依赖包不一致。为减少排查时的混淆,可将根目录 package.json 的 version 与已安装的 @tencent-connect/openclaw-qqbot 保持一致。
同时建议在 openclaw.json 的 gateway.plugins.installs.openclaw-qqbot 中更新 version、resolvedVersion、resolvedSpec、npm integrity 等元数据,便于日后用 openclaw 自带能力管理插件时记录准确。
三、全局 OpenClaw(yarn global)加载 QQ 插件失败:Cannot find module 'silk-wasm'
现象
日志类似:
text
[plugins] qqbot failed to load from .../node_modules/openclaw/dist/extensions/qqbot/index.js:
Error: Cannot find module 'silk-wasm'
Require stack:
- .../openclaw/dist/outbound-xxxxx.js
原因
若 OpenClaw 通过 yarn global 安装在例如 ~/.config/yarn/global/node_modules/openclaw,主包的 dependencies 里可能未声明 silk-wasm,而打包后的 outbound 等模块会直接 import silk-wasm (用于 QQ 语音相关编解码)。Node 在解析模块时在该包的 node_modules 中找不到 silk-wasm,导致 qqbot 扩展加载失败。
(同类问题:日志中若出现 @aws-sdk/client-bedrock 缺失,多为内置 amazon-bedrock 扩展需要 AWS SDK,而全局安装同样未附带该依赖。)
处理办法
在全局 openclaw 包目录内补装依赖(路径按本机为准):
bash
cd ~/.config/yarn/global/node_modules/openclaw
npm install silk-wasm mpg123-decoder --save
mpg123-decoder 在同一条音频处理链路中可能被动态引用,一并安装可降低后续再报缺模块的概率。
可用下列方式快速验证:
bash
cd ~/.config/yarn/global/node_modules/openclaw
node -e "import('silk-wasm').then(() => console.log('silk-wasm ok'))"
然后再次 重启 Gateway。
维护提示
对 node_modules/openclaw 内 package.json 的手工增删依赖 ,在下次执行 yarn global upgrade openclaw 等整包覆盖升级 时可能被覆盖 ,若升级后问题复现,需在同一目录重新执行一次 npm install silk-wasm mpg123-decoder(或等待上游在主包中正式声明这些依赖)。
四、小结与建议
| 问题 | 核心原因 | 处理要点 |
|---|---|---|
| 飞书「access not configured」+ 配对码 | 私信 pairing 策略,发送者未批准 |
openclaw pairing approve feishu <CODE>;单人可改用顶层 allowlist + allowFrom |
| QQ 插件版本落后 | npm 包未更新 | 在 extensions/openclaw-qqbot 执行 npm install @tencent-connect/openclaw-qqbot@latest 并重启 Gateway |
silk-wasm 找不到 |
全局 OpenClaw 未安装该传递依赖 | 在全局 openclaw 目录 npm install silk-wasm mpg123-decoder |
| Bedrock 插件加载失败 | 缺少 @aws-sdk/client-bedrock |
同上,在全局包目录安装对应模块(若实际启用该扩展) |
实践建议:
- 变更配置或升级插件后固定动作 :重启 Gateway,并扫一眼
openclaw logs。 - 多飞书应用时,私信/群策略尽量在
channels.feishu顶层 写清allowFrom/groupAllowFrom,避免子账号继承不到。 - 全局安装 OpenClaw 的用户,升级主程序后若扩展突然缺模块,优先在该全局包目录 下 补装报错中的 npm 包,再考虑向项目提 issue 推动上游纳入依赖声明。
本文基于实际环境整理,OpenClaw 与插件版本迭代较快,具体 CLI 与配置键请以当前版本官方文档为准。