乐于分享
好东西不私藏

OpenClaw报错之【没有直接创建/修改 cron 定时任务的工具入口】

OpenClaw报错之【没有直接创建/修改 cron 定时任务的工具入口】

不喜欢长篇大论,只喜欢简简单单的干货,关注我,获取更多AI技巧

升级到 OpenClaw 3.8版本后,AI 在 飞书 对话中无法创建/修改定时任务(cron),提示"没有直接创建/修改 cron 定时任务的工具入口"。旧版本里完全正常。
检查了一下不是Tools的原因。
01
根本原因
引入了 owner-only 工具安全加固,两处改动共同导致了这个问题。
改动一:cron 工具被标记为 ownerOnly
cron、gateway、whatsapp_ login 三个工具被标记为仅限 owner 使用,防止非授权用户通过 DM 提权操作定时任务和网关配置。
改动二:"空 allowFrom = 所有人都是 owner"的兜底逻辑被移除
之前: allowFrom 为空时,DM 发信人自动视为 owner,cron 可用
现在: allowFrom 为空 = 没有人是 owner,必须显式配置
02
解决方案
方案 A:将自己的飞书 ID 加入 allowFrom(推荐)
这是最安全的方式,只有你本人被识别为 owner,其他人不受影响。
第一步:查找自己的飞书用户 ID
在飞书中查看个人资料,或让 AI 帮你查:
你的飞书用户 ID 格式为 ou_ 开头,例如:ou_xxxxxxxx
第二步:写入配置并重启
openclaw config set 'channels.feishu.allowFrom' '["ou_你的用户ID"]'
systemctl --user restart openclaw-gateway
如需添加多个用户:
openclaw config set 'channels.feishu.allowFrom' '["ou_用户ID1", "ou_用户ID2"]'
验证配置:
openclaw config get channels.feishu.allowFrom
方案 B:使用通配符 * (不推荐,有风险)
openclaw config set 'channels.feishu.allowFrom' '["*"]'
⚠️ 使用通配符 *的风险
>
allowFrom 设为 * 意味着所有能给 bot 发消息的人都被视为 owner。结合你当前 groupPolicy: "open" 的配置,群里任何人都能:
- 增删你的定时任务(删掉现有的生财有术爬虫、AI 新闻摘要等 cron job)
- 使用 gateway 工具修改网关配置、重启服务
- 创建定时任务触发任意 agent 指令(包括执行系统命令)
>
简单来说:bot 所在群里的任何人都获得了你服务器的管理员级别控制权。如果群里全是可信的人,风险可控;如有陌生人,风险很高。
方案 C:修改源码去掉限制(源码部署适用)
修改 `src/agents/tools/cron-tool.ts` 中的 ownerOnly 为 false,可以让所有人使用 cron,同时不影响 gateway 等其他高危工具的 owner 限制,比方案 B 的风险面更小。
先确保 allowFrom 只包含你自己(保护 gateway 等工具)
openclaw config set 'channels.feishu.allowFrom' '["ou_你的用户ID"]'

修改源码
sed -i 's/ownerOnly: true/ownerOnly: false/' \
  /path/to/openclaw/src/agents/tools/cron-tool.ts

重新构建
cd /path/to/openclaw && pnpm build

重启
systemctl --user restart openclaw-gateway
03
如何通过 OpenClaw 对话自动修复
如果你不想手动执行命令,可以直接在飞书里告诉 AI,让它帮你完成修复。
修复方式一(只加自己的 ID,最安全):
帮我执行:
openclaw config set 'channels.feishu.allowFrom' '["ou_你的用户ID"]'
,然后重启 openclaw-gateway 服务。
修复方式二(改源码,只开放 cron):
修改 `/home/admin/prj/openclaw/src/agents/tools/cron-tool.ts`,把 `ownerOnly: true` 改为 `ownerOnly: false`,然后执行 `pnpm build`,最后重启 openclaw-gateway 服务。完成后告诉我结果。
修复方式三(查找并填入自己的飞书 ID):
先帮我查一下我的飞书用户 ID(ou_ 开头),然后把它加入 `channels.feishu.allowFrom` 配置,重启服务。
AI 会通过 exec 工具依次执行命令,全程无需手动操作。
04
方案对比
每个方案各优缺点,选择适合自己的就好
方案
cron 可用性
gateway 安全性
适用场景
加入自己的 ID(方案 A)
仅自己可用
仅自己可用
推荐,安全最高
allowFrom: * (方案 B)
所有人可用
所有人可用 ⚠️
完全可信的封闭群
改源码 ownerOnly: false(方案 C)
所有人可用
仅 owner 可用
希望共享 cron、保护 gateway