文章总结: 文档详细介绍了OpenClaw的Cron定时任务功能,指导用户通过设置定时或延迟任务让AI主动提供服务。核心内容涵盖Cron概念、子代理应用及任务生命周期管理,通过八个实操步骤演示了创建、查看、测试与删除任务的命令操作。此外,文档针对常见故障提供排查思路,并设置课后练习帮助用户掌握关键指令。该教程结构清晰、可操作性强,能有效帮助用户提升自动化办公效率。 综合评分: 90 文章分类: 实战经验,安全工具,AI安全
跟着OpenClaw学OpenClaw: Cron定时任务
zyliang
2026年3月4日 19:41 北京
大部分文字为AI生成
📌 导语
前几篇我们学会了让AI听懂指令、连接飞书、调用技能。但真正的效率提升,来自于「不用开口,事情自动发生」。OpenClaw的Cron系统,让你可以设置定时任务——每天早上自动推送天气、每周生成报告、甚至让AI在特定时间主动找你。这篇教你把AI从「随叫随到」变成「主动服务」。
前置要求:已完成第5篇,熟悉基础skill调用。
📖 概念讲解
什么是Cron
Cron源自Unix系统的定时任务机制,名字来自希腊语「时间」(Chronos)。在OpenClaw中,Cron让你可以:
按固定时间间隔执行任务
设置一次性延迟任务
让子代理在后台持续运行
OpenClaw Cron的核心能力
定时执行:支持crontab语法(如 0 9 * * * 表示每天9点)
延迟执行:设置相对时间(如 20分钟后、3小时后)
子代理任务:可以启动独立的sub-agent会话执行任务
持久化:任务存储在数据库,重启后依然有效
关键术语
Schedule:定时规则,决定什么时候执行
Job:具体的任务内容,可以是命令或子代理
Sub-agent:独立运行的AI会话,适合长时间任务
🔧 动手实操
步骤1:查看当前Cron任务
执行命令:
openclaw cron list
预期结果:(此处补充你的执行结果截图)
步骤2:创建一个简单的定时任务
我们先创建一个「每天上午9点推送天气」的任务。
执行命令:
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron add --name "morning-weather" --cron "0 9 * * *" --message "早鸟,早上好!今日天气:" --channel feishu
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Hot reload for config, cold sweat for deploys.
│◇ { "id": "e1404687-ba22-4bd0-aad2-d1386504402c", "name": "morning-weather", "enabled": true, "createdAtMs": 1772603690587, "updatedAtMs": 1772603690587, "schedule": { "kind": "cron", "expr": "0 9 * * *" }, "sessionTarget": "isolated", "wakeMode": "now", "payload": { "kind": "agentTurn", "message": "早鸟,早上好!今日天气:" }, "delivery": { "mode": "announce", "channel": "feishu" }, "state": { "nextRunAtMs": 1772672400000 }}│◇
步骤3:查看任务详情
执行命令:
openclaw cron get morning-weather
步骤4:测试任务(立即执行一次)
执行命令:
openclaw cron run morning-weather
步骤5:创建一个延迟任务(20分钟后提醒)
执行命令:
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron add --name "remind-standup" --at "20m" --message "该站起来活动一下了" --channel feishu
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Because the right answer is usually a script.
│◇ { "id": "cf110d71-6761-415a-8148-9ae0b5e39ff1", "name": "remind-standup", "enabled": true, "deleteAfterRun": true, "createdAtMs": 1772612738960, "updatedAtMs": 1772612738960, "schedule": { "kind": "at", "at": "2026-03-04T08:45:38.913Z" }, "sessionTarget": "isolated", "wakeMode": "now", "payload": { "kind": "agentTurn", "message": "该站起来活动一下了" }, "delivery": { "mode": "announce", "channel": "feishu" }, "state": { "nextRunAtMs": 1772613938913 }}│◇
步骤6:使用子代理执行复杂任务
创建一个每小时检查邮件并总结的任务:
执行命令:
openclaw cron add “hourly-email-check” “0 * * * *” –agent “检查未读邮件,如果有重要邮件,发送摘要给我” –channel feishu
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron add --name "hourly-email-check" --cron "0 * * * *" --message "检查未读邮件,如果有重要邮件,发送摘要给我" --channel feishu
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Gateway online—please keep hands, feet, and appendages inside the shell at all times.
│◇ { "id": "eda23347-f7e1-455e-891d-a191b2fca6a1", "name": "hourly-email-check", "enabled": true, "createdAtMs": 1772613273744, "updatedAtMs": 1772613273744, "schedule": { "kind": "cron", "expr": "0 * * * *", "staggerMs": 300000 }, "sessionTarget": "isolated", "wakeMode": "now", "payload": { "kind": "agentTurn", "message": "检查未读邮件,如果有重要邮件,发送摘要给我" }, "delivery": { "mode": "announce", "channel": "feishu" }, "state": { "nextRunAtMs": 1772615016525 }}│◇ root@iv-yeglp4e9kw5i3z4tce1x:~#
步骤7:删除任务
执行命令:
openclaw cron delete morning-weather
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron rm e1404687-ba22-4bd0-aad2-d1386504402c
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Greetings, Professor Falken
│◇ { "ok": true, "removed": true}root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron list
🦞 OpenClaw 2026.2.25 (4b5d4a4) — I'm basically a Swiss Army knife, but with more opinions and fewer sharp edges.
│◇ ID Name Schedule Next Last Status Target Agent cf110d71-6761-415a-8148-9ae0b5e39ff1 remind-standup at 2026-03-04 08:45Z in 7m - idle isolated default eda23347-f7e1-455e-891d-a191b2fca6a1 hourly-email-check cron 0 * * * * (stagger 5m) in 24m - idle isolated default root@iv-yeglp4e9kw5i3z4tce1x:~#
步骤8:暂停和恢复任务
执行命令:
openclaw cron disable/enable
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron list
🦞 OpenClaw 2026.2.25 (4b5d4a4) — End-to-end encrypted, drama-to-drama excluded.
│◇ ID Name Schedule Next Last Status Target Agent cf110d71-6761-415a-8148-9ae0b5e39ff1 remind-standup at 2026-03-04 08:45Z in 6m - idle isolated default eda23347-f7e1-455e-891d-a191b2fca6a1 hourly-email-check cron 0 * * * * (stagger 5m) in 24m - idle isolated default root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron disable eda23347-f7e1-455e-891d-a191b2fca6a1
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Shell yeah—I'm here to pinch the toil and leave you the glory.
│◇ { "id": "eda23347-f7e1-455e-891d-a191b2fca6a1", "name": "hourly-email-check", "enabled": false, "createdAtMs": 1772613273744, "updatedAtMs": 1772613618057, "schedule": { "kind": "cron", "expr": "0 * * * *", "staggerMs": 300000 }, "sessionTarget": "isolated", "wakeMode": "now", "payload": { "kind": "agentTurn", "message": "检查未读邮件,如果有重要邮件,发送摘要给我" }, "delivery": { "mode": "announce", "channel": "feishu" }, "state": {}}│◇ root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron list
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Give me a workspace and I'll give you fewer tabs, fewer toggles, and more oxygen.
│◇ ID Name Schedule Next Last Status Target Agent cf110d71-6761-415a-8148-9ae0b5e39ff1 remind-standup at 2026-03-04 08:45Z in 5m - idle isolated default root@iv-yeglp4e9kw5i3z4tce1x:~#
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron enable eda23347-f7e1-455e-891d-a191b2fca6a1
🦞 OpenClaw 2026.2.25 (4b5d4a4) — End-to-end encrypted, drama-to-drama excluded.
│◇ { "id": "eda23347-f7e1-455e-891d-a191b2fca6a1", "name": "hourly-email-check", "enabled": true, "createdAtMs": 1772613273744, "updatedAtMs": 1772613687634, "schedule": { "kind": "cron", "expr": "0 * * * *", "staggerMs": 300000 }, "sessionTarget": "isolated", "wakeMode": "now", "payload": { "kind": "agentTurn", "message": "检查未读邮件,如果有重要邮件,发送摘要给我" }, "delivery": { "mode": "announce", "channel": "feishu" }, "state": { "nextRunAtMs": 1772615016525 }}│◇ root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron list
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Pairing codes exist because even bots believe in consent—and good security hygiene.
│◇ ID Name Schedule Next Last Status Target Agent cf110d71-6761-415a-8148-9ae0b5e39ff1 remind-standup at 2026-03-04 08:45Z in 4m - idle isolated default eda23347-f7e1-455e-891d-a191b2fca6a1 hourly-email-check cron 0 * * * * (stagger 5m) in 22m - idle isolated default root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw cron list --help
🦞 OpenClaw 2026.2.25 (4b5d4a4) — Your AI assistant, now without the $3,499 headset.
Usage: openclaw cron list [options]
List cron jobs
Options: --all Include disabled jobs (default: false) --expect-final Wait for final response (agent) (default: false) -h, --help Display help for command --json Output JSON (default: false) --timeout <ms> Timeout in ms (default: "30000") --token <token> Gateway token (if required) --url <url> Gateway WebSocket URL (defaults to gateway.remote.url when configured)
❓ 常见问题
Q1:Crontab语法看不懂怎么办?
解决思路:OpenClaw支持自然语言时间描述,如 “every day at 9am”、”in 30 minutes”。也可以用在线crontab生成器辅助。
Q2:任务执行了但没收到消息?
解决思路:检查channel配置是否正确、查看openclaw logs中的错误信息、确认任务状态是active而非paused。
Q3:子代理任务和普通任务有什么区别?
解决思路:普通任务是执行预设命令,子代理任务是启动一个独立的AI会话,可以处理更复杂的逻辑,适合需要推理和判断的场景。
Q4:如何查看任务的执行历史?
解决思路:使用 openclaw cron logs <任务名> 查看最近执行记录。
📝 小结与预告
今天我们学会了:
Cron的基本概念和OpenClaw的实现
创建定时任务和延迟任务的方法
使用子代理执行复杂任务
任务的生命周期管理(暂停、恢复、删除)
关键命令速查:
openclaw cron list — 查看所有任务
openclaw cron add <名> <时间> –message <内容> — 创建定时消息
openclaw cron delay <名> <延迟> –message <内容> — 创建延迟任务
openclaw cron delete <名> — 删除任务
下篇预告:《Sessions:对话的管理者》——深入理解OpenClaw的会话系统,学会查看活跃会话、与子代理对话、管理长时间运行的任务。
客户练习
题目 1:创建定时任务
创建一个叫 “daily-backup” 的任务,每天早上8点执行,消息内容是”开始备份数据”,发送到 feishu 频道。
答案:
openclawcronadd–name”daily-backup”–cron”0 8 * * *”–message”开始备份数据”–channelfeishu
题目 2:创建延迟任务
让 AI 30分钟后提醒你喝水,命令应该怎么写?
答案:
openclawcronadd–name”drink-water”–at”30m”–message”该喝水了”–channelfeishu
注意:–at 不需要加号,直接写 30m。
题目 3:查看与管理任务
-
查看所有定时任务用什么命令?
-
暂停一个任务用什么命令?
-
删除任务用什么命令?
答案:
-
查看所有任务:openclaw cron list
-
暂停任务:openclaw cron disable <任务ID>
-
删除任务:openclaw cron rm <任务ID>
重要提示:disable、enable、rm 都需要用任务的 UUID(从 list 命令中获取),不能用 –name 指定的名字。
题目 4:概念理解
–cron “0 9 * * *” 和 –at “30m” 有什么区别?分别适用于什么场景?
答案:
-
–cron “0 9 * * *”:按 crontab 规则周期性执行,适合重复任务(如每天早上9点、每小时执行一次)
-
–at “30m”:一次性延迟执行,相对于当前时间,适合临时提醒(如20分钟后、3小时后)
延迟任务默认 deleteAfterRun: true,执行后会自动删除。
题目 5:实战排错
你创建了一个任务,但 openclaw cron list 显示它的 Status 是 error,Last 显示执行过但失败了。可能是什么原因?应该怎么排查?
答案: 可能原因:
-
任务执行时 Gateway 未运行
-
消息格式问题
-
网络或渠道配置问题
排查方法:
openclawcronruns<任务名或ID># 查看执行历史
openclawgatewaystatus# 检查 Gateway 状态
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:zyliang 《跟着OpenClaw学OpenClaw: Cron定时任务》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论