乐于分享
好东西不私藏

OpenClaw Cron 定时任务权限问题排查与解决

OpenClaw Cron 定时任务权限问题排查与解决

OpenClaw Cron 定时任务权限问题排查与解决

日期: 2026-04-08
状态: ✅ 已解决
标签:

问题描述

在 OpenClaw 中创建定时任务(Cron Job)时,无论通过网页 UI 还是命令行 CLI,都会报错失败:
gateway connect failed: GatewayClientRequestError: pairing required[tools] cron failed: gateway closed (1008): pairing required
同时 gateway 日志显示:
security audit: device access upgrade requested reason=scope-upgrade  scopesFrom=operator.read scopesTo=operator.admin
即:创建 cron 任务需要 operator .admin 权限,但当前设备只有 operator .read。

排查过程

第一阶段:确认错误类型

最初以为是技能文件里让 AI 模型自行调用 cron.add 导致的崩溃。通过分析日志发现错误链路:
模型执行技能 → 调用 cron .add 工具
cron .add
需要 operator .admin 权限
当前设备只有 operator .read → 触发scope-upgrade(权限升级请求)
权限升级需要设备配对审批(pairing)→ 本地连接未完成配对
连接被拒绝(1008: pairing required) → 操作失败

第二阶段:定位权限根因

使用以下命令查看设备状态:
openclaw devices list
输出结果:
设备ID
权限
状态
<device-id-1>
operator.admin, write, read, ...
Paired ✅
<device-id-本机>
(本机CLI/UI)
operator.read
 ❌
Paired(权限不足)
<device-id-3>
operator.admin, write, read, ...
Paired ✅
发现:
本机设备的权限只有 operator.read
存在一个 Pending(待审批)的权限升级请求
该请求正是之前尝试创建 cron 时自动触发的

第三阶段:批准配对请求

openclaw devices approve
输出:Device pairing request approved
批准后,本机设备获得了完整的 admin 权限。

第四阶段:重新创建定时任务

openclaw cron add \
--name "政策会议追踪" \
--description "每周一自动检查当前时间节点是否有政策会议,抓取报告并分析" \
--cron "0 9 * * 1" \
--tz "Asia/Shanghai" \
--session isolated \
--message "执行政策会议追踪技能:检查当前时间节点是否有关键政策会议..." \
--thinking low \
--announce \
--timeout-seconds 120
输出:
✅ Cron job created successfully
ID:
Name:   政策会议追踪
Status: enabled
Next run:
创建成功!✅

根因总结

项目
说明
根本原因
设备初次配对时只授予了 operator.read 权限,而 cron.add / config. patch 等管理操作需要 operator. admin
触发条件
任何需要 admin 权限的操作(创建定时任务、修改配置等)
表现症状pairing required
 / scope-upgrade / gateway 连接断开
解决方法
批准待审批的配对请求,授予 admin 权限

关键命令速查

设备管理

查看所有已配对设备和待审批请求

openclaw devices list

批准配对请求(获取 request-id 从 devices list 的 Pending 区域)

openclaw devices approve

拒绝配对请求

openclaw devices reject

Cron 定时任务管理

创建定时任务

openclaw cron add --name "名称" --cron "0 9 * * 1" --tz "Asia/Shanghai" --session isolated --message "任务描述" --announce

列出所有定时任务

openclaw cron list

启用/禁用任务

openclaw cron enable
openclaw cron disable

手动立即执行一次

openclaw cron run

删除任务

openclaw cron rm

Cron 表达式参考

表达式
含义
0 9 * * 1
每周一早上 9:00
0 9 * * *
每天早上 9:00
0 */2 * * *
每 2 小时
30 8 * * 5
每周五早上 8:30
0 9 1 * *
每月 1 号早上 9:00

经验教训

首次配对不等于完全授权
:OpenClaw 的设备配对是分级的,初始可能只给 read 权限,admin 权限需要单独审批
遇到 pairing required 先查设备
:不要盲目重试,先用 openclaw devices list 看 Pending 请求
命令行比 UI 更适合排错
:网页 UI 的错误信息不够详细,CLI 日志能看到完整的 security audit 链路
Cron 创建和执行应该分离
:定时任务预先配好,技能/模型只需要关注执行逻辑,不需要自己创建 cron

相关文件

OpenClaw 配置: ~/.openclaw/openclaw. json
Gateway 日志: /tmp/openclaw/openclaw-YYYY-MM-DD. log