跟着OpenClaw学OpenClaw:Cron定时任务

admin 2026-03-05 19:42:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详细介绍了OpenClaw的Cron定时任务功能,指导用户通过设置定时或延迟任务让AI主动提供服务。核心内容涵盖Cron概念、子代理应用及任务生命周期管理,通过八个实操步骤演示了创建、查看、测试与删除任务的命令操作。此外,文档针对常见故障提供排查思路,并设置课后练习帮助用户掌握关键指令。该教程结构清晰、可操作性强,能有效帮助用户提升自动化办公效率。 综合评分: 90 文章分类: 实战经验,安全工具,AI安全


cover_image

跟着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:&nbsp; --all &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Include disabled&nbsp;jobs&nbsp;(default:&nbsp;false)&nbsp; --expect-final&nbsp; &nbsp;Wait&nbsp;for&nbsp;final&nbsp;response&nbsp;(agent) (default:&nbsp;false)&nbsp; -h, --help &nbsp; &nbsp; &nbsp; Display help&nbsp;for&nbsp;command&nbsp; --json &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Output&nbsp;JSON&nbsp;(default:&nbsp;false)&nbsp; --timeout <ms> &nbsp; Timeout in&nbsp;ms&nbsp;(default:&nbsp;"30000")&nbsp; --token <token> &nbsp;Gateway&nbsp;token&nbsp;(if&nbsp;required)&nbsp; --url <url> &nbsp; &nbsp; &nbsp;Gateway WebSocket&nbsp;URL&nbsp;(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定时任务》

评论:0   参与:  0