OpenClaw Cron 定时任务权限问题排查与解决
问题描述
在 OpenClaw 中创建定时任务(Cron Job)时,无论通过网页 UI 还是命令行 CLI,都会报错失败:gateway connect failed: GatewayClientRequestError: pairing required[tools] cron failed: gateway closed (1008): pairing required
security audit: device access upgrade requested reason=scope-upgrade scopesFrom=operator.read scopesTo=operator.admin
即:创建 cron 任务需要 operator .admin 权限,但当前设备只有 operator .read。
排查过程
第一阶段:确认错误类型
最初以为是技能文件里让 AI 模型自行调用 cron.add 导致的崩溃。通过分析日志发现错误链路:当前设备只有 operator .read → 触发scope-upgrade(权限升级请求)权限升级需要设备配对审批(pairing)→ 本地连接未完成配对连接被拒绝(1008: pairing required) → 操作失败第二阶段:定位权限根因
| | |
|---|
<device-id-1> | operator.admin, write, read, ... | |
<device-id-本机> | operator.read | |
<device-id-3> | operator.admin, write, read, ... | |
第三阶段:批准配对请求
输出:Device pairing request approved第四阶段:重新创建定时任务
--description "每周一自动检查当前时间节点是否有政策会议,抓取报告并分析" \--message "执行政策会议追踪技能:检查当前时间节点是否有关键政策会议..." \✅ Cron job created successfully
根因总结
| |
|---|
| 根本原因 | 设备初次配对时只授予了 operator.read 权限,而 cron.add / config. patch 等管理操作需要 operator. admin |
| 触发条件 | 任何需要 admin 权限的操作(创建定时任务、修改配置等) |
| 表现症状 | pairing required / scope-upgrade / gateway 连接断开 |
| 解决方法 | |
关键命令速查
设备管理
查看所有已配对设备和待审批请求
批准配对请求(获取 request-id 从 devices list 的 Pending 区域)
拒绝配对请求
Cron 定时任务管理
创建定时任务
openclaw cron add --name "名称" --cron "0 9 * * 1" --tz "Asia/Shanghai" --session isolated --message "任务描述" --announce列出所有定时任务
启用/禁用任务
手动立即执行一次
删除任务
Cron 表达式参考
| |
|---|
0 9 * * 1 | |
0 9 * * * | |
0 */2 * * * | |
30 8 * * 5 | |
0 9 1 * * | |
经验教训
:OpenClaw 的设备配对是分级的,初始可能只给 read 权限,admin 权限需要单独审批:不要盲目重试,先用 openclaw devices list 看 Pending 请求:网页 UI 的错误信息不够详细,CLI 日志能看到完整的 security audit 链路:定时任务预先配好,技能/模型只需要关注执行逻辑,不需要自己创建 cron
相关文件
OpenClaw 配置: ~/.openclaw/openclaw. jsonGateway 日志: /tmp/openclaw/openclaw-YYYY-MM-DD. log