令人崩溃的循环:现象重现
用户tester第一次私聊机器人:

text
tester: 你好!
Openclaw: 访问未配置。
Your Feishu user id: ou_50cc257c81601199950693287ed699a9
配对码: M2FNAF8E
请让机器人所有者执行以下命令批准:
openclaw-cn pairing approve feishu M2FNAF8E
管理员Alex执行批准命令:

bash
openclaw-cn pairing approve feishu M2FNAF8E
# 命令执行成功,提示用户已授权
然而tester再次私聊时:

text
tester: 测试
Openclaw: 访问未配置。
Your Feishu user id: ou_50cc257c81601199950693287ed699a9
配对码: HYNWBPYC  // 注意:配对码变了!
请让机器人所有者执行以下命令批准:
openclaw-cn pairing approve feishu HYNWBPYC
无论执行多少次配对命令,下次私聊总会生成新的配对码,陷入无限循环。

为什么配对码会失效?深度解析
1. 配对模式的本质
OpenClaw的配对模式(pairing)设计初衷是临时授权,而非永久解决方案。当管理员执行配对命令时,系统确实会记录这次授权,但这种授权有以下几个特点:

临时性:配对授权通常只在当前会话或短时间内有效

状态易失:某些情况下(如服务重启、会话超时)授权状态可能会重置

单次有效:部分实现中,一次配对仅允许一次私聊

2. 根本原因:配置策略不当
真正的问题是机器人当前处于pairing模式,而不是适合长期使用的allowlist模式。查看配置文件会发现:

json
"feishu": {
  "dmPolicy": "pairing",  // 这就是问题的根源
  "allowFrom": [],        // 白名单为空
  "accounts": { ... }
}
在pairing模式下,每次私聊都相当于一个新的"会话请求",需要重新配对。这就像每次进公司都要临时登记,而不是办理长期门禁卡。

解决方案:从Alex到tester的白名单改造
要彻底解决这个问题,需要将机器人配置从配对模式改为白名单模式,并将用户tester永久加入白名单。

第一步:获取tester的Open ID
从私聊回复中提取tester的飞书Open ID:

text
Your Feishu user id: ou_50cc257c81601199950693287ed699a9
第二步:修改配置文件
Alex登录服务器,编辑OpenClaw配置文件:

bash
vim /home/test/.openclaw/openclaw.json
找到飞书配置部分,进行以下修改:

json
"feishu": {
  "dmPolicy": "allowlist",  // 将pairing改为allowlist
  "allowFrom": [
    "ou_50cc257c81601199950693287ed699a9"  // 加入tester的ID
  ],
  "accounts": { ... }
}
第三步:重启网关使配置生效
bash
openclaw gateway restart
验证效果
完成上述配置后,tester再次私聊机器人:

text
tester: 你好!
Openclaw: 你好!有什么可以帮你的?
终于!不再需要配对码,可以直接对话了。

其他可能的陷阱和排查方法
如果按照上述步骤操作后问题仍未解决,可以检查以下几点:

1. 确认配置是否被覆盖
某些自动化部署工具可能会定期覆盖配置文件。检查是否有cron任务或CI/CD流程在重启服务时重置配置。

2. 检查多个配置文件
OpenClaw可能加载多个位置的配置文件,使用以下命令确认实际加载的配置:

bash
openclaw gateway config --show
3. 查看日志排查错误
bash
journalctl -u openclaw-gateway -f
重启后观察日志,看是否有配置加载错误或权限验证异常。

4. 验证用户ID格式
确保allowFrom中的用户ID完全正确,包括前缀ou_和后面的字符串,不能有多余的空格或引号。

三种私信策略的最佳实践
模式    适用场景    优缺点
open    公开机器人,任何人都可使用    优点是无需配置,缺点是容易被滥用
pairing    临时演示、测试阶段    优点是灵活,缺点是不适合长期使用
allowlist    团队内部、企业应用    优点是稳定安全,缺点是需要手动维护
总结
每次私聊都要求配对的根本原因是机器人处于pairing模式,而管理员执行配对命令只能获得临时授权,无法解决根本问题。通过将策略改为allowlist并将用户ID加入白名单,才能实现永久授权。

对于像tester这样的日常用户,与其每次都执行临时配对命令,不如一次性配置白名单,既能提升使用体验,也能减轻管理员的维护负担。

记住:临时授权适合临时场景,长期使用请选择白名单模式!

Logo

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

更多推荐