乐于分享
好东西不私藏

第8集:定时任务——让OpenClaw自动提醒你

第8集:定时任务——让OpenClaw自动提醒你

【漫说龙虾】合集请看➡️:漫说龙虾系列


上一集我们给OpenClaw装上了"搜索超能力",让它帮你找资料。今天我们给它装上"时间管理超能力"——定时任务。

想象一下:每天早上8点,OpenClaw准时弹出天气加日程;每周一早上9点自动生成周报;下午3点提醒你开会。这些都不用你操心,OpenClaw自己记住,到点就干活。

这就是cron系统的威力。


场景引入:凡哥又忘了事


什么是定时任务?


定时推送 vs 被动等待

模式
说明
例子
被动等待
你问,它答
"帮我查下天气"
定时推送
到点就推送,不用你问
"每天8点推送天气"

cron系统入门

OpenClaw的定时任务基于cron系统,支持三种调度方式:

1. 一次性任务(at)

设置一个具体时间,只执行一次。

openclaw cron add \  --name "会议提醒" \  --at "2026-03-26T15:00:00+08:00" \  --session main \  --system-event "提醒:下午3点产品评审会" \  --wake now \  --delete-after-run

常见场景:

  • • "20分钟后提醒我开会"
  • • "明天下午3点提醒我交报告"

时间写法小技巧:

  • • 2026-03-26T15:00:00+08:00 = 北京时间下午3点
  • • 20m = 20分钟后(相对时间)
  • • 2h = 2小时后

2. 间隔任务(every)

每隔一段时间执行一次。

openclaw cron add \  --name "健康提醒" \  --every "1h" \  --session main \  --system-event "提醒:站起来活动一下,眺望远方!" \  --wake now

3. 循环任务(cron表达式)

最强大的一种,用5个字段表示时间规则:

┌───────────── 分钟 (0-59)│ ┌─────────── 小时 (0-23)│ │ ┌───────── 日 (1-31)│ │ │ ┌─────── 月 (1-12)│ │ │ │ ┌───── 星期 (0-7,0和7都是周日)│ │ │ │ │* * * * *

常见例子:

表达式
含义
0 8 * * *
每天早上8点
0 9 * * 1
每周一早上9点
30 8 * * *
每天8点30分
0 */2 * * *
每隔2小时
0 8 * * 1-5
工作日早上8点

实操:设置每天8点推送天气+日程

小钳坐好,准备演示。

小钳:"来,我们设一个最常用的——每天早上8点推送天气和日程。"

# 每天早上8点(北京时间)推送天气+日程openclaw cron add \  --name "早安推送" \  --cron "0 8 * * *" \  --tz "Asia/Shanghai" \  --session isolated \  --message "你是小钳,帮我完成以下任务:1. 查询今天北京的天气(温度、空气质量)2. 查看今天日历上的日程安排3. 整理成简洁的早安简报格式" \  --announce \  --channel telegram \  --to "你的Telegram聊天ID"

参数说明:

参数
含义
--name "早安推送"
给任务起个名字,方便管理
--cron "0 8 * * *"
每天8点执行
--tz "Asia/Shanghai"
使用北京时间
--session isolated
独立会话,不影响主对话
--message "..."
告诉OpenClaw具体要做什么
--announce
完成后把结果推送给用户
--channel telegram
推送到Telegram

查看任务:

# 列出所有定时任务openclaw cron list# 查看某个任务的运行历史openclaw cron runs --id <job-id>

删除任务:

openclaw cron remove <job-id>

主会话 vs 独立会话

什么时候用主会话(main)?

  • • 需要参考你当前的对话上下文
  • • 任务和正在进行的工作相关
  • • 想让结果出现在主聊天记录里
openclaw cron add \  --name "项目检查" \  --every "4h" \  --session main \  --system-event "检查项目进度,有问题及时汇报" \  --wake now

什么时候用独立会话(isolated)?

  • • 不需要历史上下文,干净利落
  • • 频繁执行,不想污染主对话
  • • 需要推送到其他渠道(Telegram、微信等)
openclaw cron add \  --name "定时摘要" \  --cron "0 22 * * *" \  --session isolated \  --message "生成今日工作摘要" \  --announce \  --channel telegram \  --to "你的ID"

配置箱:cron常用配置

配置文件位置:~/.openclaw/cron/jobs.json

完整配置示例:

{  cron: {    enabled: true,            // 默认开启    store: "~/.openclaw/cron/jobs.json",    maxConcurrentRuns: 1,    // 最多同时跑几个任务    sessionRetention: "24h", // 独立会话保留时间    runLog: {      maxBytes: "2mb",       // 日志文件最大2MB      keepLines: 2000,       // 保留最近2000行    },  },}

常用命令速查:

需求
命令
添加一次性提醒
openclaw cron add --name "提醒" --at "20m" --session main --system-event "内容" --wake now
添加每日任务
openclaw cron add --name "任务" --cron "0 8 * * *" --tz "Asia/Shanghai" --session isolated --message "内容" --announce
列出所有任务
openclaw cron list
立即运行任务
openclaw cron run <job-id>
查看运行历史
openclaw cron runs --id <job-id>
删除任务
openclaw cron remove <job-id>
禁用/启用任务
openclaw cron edit <job-id> --enabled false
 或 --enabled true

避坑提示

坑1:忘记设时区

# 错误:按UTC时间跑,凌晨3点把你叫醒--cron "0 8 * * *"# 正确:明确指定北京时间--cron "0 8 * * *" --tz "Asia/Shanghai"

坑2:独立会话忘记设置announce

独立会话默认会把结果推送给用户,但如果你用的是--session isolated而没有--announce,结果可能就静默丢失了。

坑3:cron表达式写错

* * * * * 不是"每分钟",每分钟应该是 * * * * *(每小时的第0分钟)。最常见的错误是把 0 * * * * 记成每天零点——实际上那是"每小时整点"。

  • • 每分钟:* * * * *
  • • 每小时:0 * * * *
  • • 每天零点:0 0 * * *

效果展示


下期预告

下一集我们要给OpenClaw接入Telegram——让它真正变成你的专属聊天机器人,随时随地接收指令、推送消息。

到时候,凡哥就能在床上、地铁上、马桶上……呃,各种姿势地使用OpenClaw了。

敬请期待——第9集:消息渠道——Telegram接入


如果遇到不清楚地方,可以在评论区留言~
如果你喜欢我的文章,欢迎 关注和三连(点赞、转发和推荐) ~  
谢谢支持
你的支持,就是我持续连载的动力
点击上方关注我公众号
END

欢迎加入交流群

一起赢在AI时代

后台加凡哥微信后入群