生成模型:OpenAI GPT-5.3 Codex (openai/gpt-5.3-codex) Token 消耗:输入 ~22k tokens,输出 ~5.6k tokens(估算)
前面你已经看到 OpenClaw 会聊天、会调用工具,但它默认还是“你说一句,它做一句”。Cron 的意义在于把它变成“你不说,它也会按计划做事”。很多人第一次配完 Cron 任务,第二天起床看到机器人已经把天气和摘要发来了,会直观感受到:这不只是聊天机器人,而是一套自动值班系统。
这一节从使用者视角把 OpenClaw 的 Cron 跑通:Cron 是什么、表达式怎么读、任务如何创建管理、结果如何投递、常见坑怎么避开。我们不做第 26 章源码深挖,只讲马上能用起来的知识。
5.1.1 Cron 到底是什么
Cron 最早来自 Unix/Linux 世界,本质是一个定时调度器(Scheduler)。你给它一条时间规则,它就会在对应时刻触发任务。
在传统服务器里,这个任务通常是一段 shell 命令;在 OpenClaw 里,这个任务更像“发起一轮 Agent 执行”。也就是:
OpenClaw Cron:到点唤醒 Agent,Agent 可以继续调用工具、整合信息、产出结果并投递
这就是为什么 OpenClaw 的 Cron 不只是“定时提醒”。它可以做真正的自动化流程,比如“每天 8 点抓天气 -> 生成建议 -> 发 Telegram”,或者“每 15 分钟巡检服务 -> 异常就解释并给修复建议 -> 发 Slack”。
衍生解释 - 调度(Scheduling)
“调度”就是安排任务在什么时机、以什么顺序运行。它不负责任务内容有多聪明,只负责让任务在正确时间被执行。Cron 就是一种经典调度方式。
5.1.2 Cron 表达式:5 列就够你上手
OpenClaw 常用 5 段 Cron 表达式:
也就是从左到右:分钟、小时、每月第几天、第几月、星期几。
最经典示例:
含义:每天早上 8 点执行。
再看几个你会经常用到的:
每 15 分钟执行一次。
每周一 9:30 执行。
每个工作日(周一到周五)22:00 执行。
每月 1 号零点执行。
常见符号说明:
新手最容易踩的坑是把“分”和“时”写反:
写完 Cron 后建议用中文读一遍;读不顺,规则大概率有问题。
5.1.3 OpenClaw 一条定时任务由什么组成
你可以把一个 Cron 任务拆成四个问题:
对应到配置结构通常长这样:
你不一定每天都手写 JSON,CLI 也能创建任务;但你必须看得懂这套结构,后面排错和迁移都会用到。
5.1.4 session 选主会话还是隔离会话
Cron 任务在 OpenClaw 里最常见两种运行位置:
简单理解:
主会话:任务会复用你日常聊天上下文,适合“持续跟进同一话题”
隔离会话:每个任务在单独上下文跑,更干净,适合高频巡检和后台自动化
实践建议很直接:只要不是必须依赖当前聊天上下文,优先用 isolated。这会减少上下文污染,也更容易复盘每次运行。
5.1.5 创建和管理 Cron 任务(CLI)
示例:每天 8 点发天气简报到 Telegram。
常用管理命令:
建议形成一个小习惯:新任务一律先 run --force 人工试跑一次。别等真实触发时间到了才发现表达式或投递目标写错。
5.1.6 Delivery Plan:结果发给谁
Cron 任务“执行成功”不等于“自动化闭环成功”。你还要明确结果怎么送出去。OpenClaw 常见三种投递模式:
1) announce:发到聊天渠道
适合人要看的通知,比如日报、巡检摘要、告警提示。
2) none:只执行,不主动外发
适合后台计算、预处理、静默巡检等不希望刷屏的任务。
3) webhook:POST 到外部系统
适合机器对机器联动,比如告警系统、工单系统、数据流水线。
5.1.7 三个上手就能用的 Cron 示例
示例 A:每天 8 点天气推送
示例 B:每 15 分钟服务巡检
示例 C:工作日 22:00 日报归档
这些场景看起来简单,但组合起来已经是一个“个人运维 + 个人信息中台”的雏形了。
时间写对了,时区没写:服务器在海外会直接错时,建议显式写 tz
任务描述太空:不要只写“检查系统”,要写检查项和输出格式
高频任务放主会话:上下文会迅速变脏,优先 isolated
投递目标用 last 但路由不稳定:多渠道场景建议写死 channel + to
一上来就高风险自动修复:先“自动诊断 + 人工确认”,再逐步放权
Cron 让 OpenClaw 从“被动问答”进入“主动执行”。你真正要掌握的核心只有四件事:会读 Cron 表达式(如 0 8 * * * 是每天 8 点)、会选运行会话(优先 isolated)、会配结果投递(announce / none / webhook)、会在上线前用 run --force 验证。把这四件事用顺,自动化就不再是概念,而是每天都在替你省时间的基础设施。