OpenClaw 定时任务 Cron:表达式、一次性提醒与投递目标
定时任务(cron)是 OpenClaw 的精确调度层:持久化作业、到点唤醒智能体、把产出投递到聊天渠道或 webhook。需要「准点、独立、可审计」的自动化,都用它。
三种作业形态
- 循环任务:cron 表达式驱动,比如每天九点、每周五下午。
- 一次性提醒:指定时刻执行一次(「20 分钟后提醒我」这类),到点即焚。
- webhook 触发:外部事件打到网关端点时触发作业,把「外部发生了一件事」变成智能体的工作项。
管理命令
openclaw cron list --all # 列出作业(含系统拥有的心跳监控行)
openclaw cron scratch <id> # 查看/编辑某作业的暂存文档
聊天里也可以直接让智能体「明早八点提醒我」,它会调用 cron 工具创建作业——非所有者的发送者无权使用 cron 工具,这是内置安全基线。
执行模型
- 每次执行总是创建后台任务记录——这是它和心跳的制度性区别(心跳从不创建记录)。事后可用任务审计命令查「到底跑过什么、跑了多久」。
- 会话上下文可选:隔离会话(默认推荐,无对话历史,成本可控)或共享会话(需要接着某个对话状态干活时用)。
- 忙碌排队:主队列或目标会话忙时作业排队等待,不会并发轰炸。

投递
产出可以发到任意已配置渠道(Telegram、WhatsApp、Slack……)或 webhook 端点,也可以静默执行只留任务记录。投递目标在作业里显式指定;指定了渠道但目标解析失败时,执行照跑、只是不出站。
设计建议
- 报告类用隔离会话 + 指定渠道:每天九点的晨报不需要知道你们昨天聊了什么。
- 心跳探出的事转成定时任务:心跳适合「发现问题」,处理动作写成定时任务更可审计。
- 表达式写完先验证:一次性任务用 --at 最直观;循环表达式建议先建一个近期的测试作业确认时区与触发点,再改成正式排程。