OpenClaw 喂饭级教程:Cron 定时任务让 AI 每天自动帮你干活
你是不是也有这样的烦恼——
每天早上想看看科技新闻,但总是忘记;
想定时备份文件,但每次都要手动执行;
想让 AI 每天自动帮你发群消息、检查邮件、整理数据……
如果有个「闹钟」,到点就自动唤醒 AI 帮你干活,那该多好?
今天教你用 OpenClaw 的 Cron 定时任务,让 AI 变成 24 小时自动值守的助手。
这是我跑了 18 个自动化任务 30 天的实战经验,昨天还踩了个三层配置的大坑,今天全写进来了。
你需要准备什么
✅ 一台电脑(Mac / Linux / Windows 都行)
✅ 已装好 OpenClaw(没装的先看官方文档)
✅ Gateway 正在运行(openclaw gateway status 检查)
确认 Gateway 在跑,就可以开始了。
第一步:创建你的第一个定时任务
我们从一个最简单的例子开始——每天早上 9 点,让 AI 给你推送科技新闻。
打开终端,复制下面这行命令,粘贴进去按回车:
openclaw cron add \ --name "每日科技新闻" \ --cron "0 9 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "搜索今天最新的 AI 和科技新闻,整理成 5 条简报推送给我" \ --announce
看到 Cron job added 就成功了。
💡 这行命令在说什么?
• --name:给任务起个名字,方便辨认
• --cron "0 9 * * *":每天早上 9 点整执行
• --tz "Asia/Shanghai":用北京时间(很重要!)
• --session isolated:每次执行用独立会话,不污染主聊天
• --message:到点后让 AI 做什么
• --announce:执行完把结果推送给你
第二步:理解 Cron 表达式(大白话版)
0 9 * * * 这串看着像乱码的东西,其实是 Cron 表达式。
别怕,我用人话翻译一下:
| 位置 | 代表 | 取值 | 我们的例子 |
|---|---|---|---|
| 第 1 位 | 分钟 | 0-59 | 0(整点) |
| 第 2 位 | 小时 | 0-23 | 9(早上 9 点) |
| 第 3 位 | 日期 | 1-31 | *(每天) |
| 第 4 位 | 月份 | 1-12 | *(每月) |
| 第 5 位 | 星期 | 0-7 | *(不管星期几) |
常用表达式速查:
0 9 * * * → 每天早上 9 点
*/30 * * * * → 每 30 分钟
0 9 * * 1-5 → 工作日早上 9 点
0 12 */3 * * → 每 3 天中午 12 点
第三步:选对会话模式(isolated vs main)
Cron 任务有两种执行模式,选错了会出问题:
| 模式 | 特点 | 适合场景 |
|---|---|---|
| isolated (推荐) |
每次执行都是全新会话,干净独立 | 定时推送、后台任务、报告生成 |
| main | 在主会话里执行,能看到之前的聊天 | 需要基于上下文的任务(少用) |
⚠️ 踩坑警告
如果你用 main 模式,定时任务的输出会混进你和 AI 的主聊天里,越积越多,最后连你自己说的话都找不到。
99% 的情况都应该用 isolated。
第四步:让结果推送到手机
任务执行完了,怎么把结果发到你手机上?
用 --announce 参数,配合 --to 指定接收人:
# 推送到 QQ openclaw cron add \ --name "每日提醒" \ --cron "0 9 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "提醒我今天的待办事项" \ --announce \ --to "qqbot:你的QQopenid" # 推送到微信 openclaw cron add \ --name "每日提醒" \ --cron "0 9 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "提醒我今天的待办事项" \ --announce \ --to "weixin:你的微信openid"
💡 怎么获取你的 openid?
随便给 AI 发条消息,然后在终端执行 openclaw gateway logs | grep "inbound",日志里会有你的 ID。
进阶:我的 18 个自动化任务矩阵
给大家看看我现在在跑的 Cron 任务,感受一下自动化能做到什么程度:
| 任务名 | 频率 | 干什么 |
|---|---|---|
| 微信日活文案 | 每天 10:00 | 自动发群消息 |
| 公众号文章生成 | 每天 00:00 | 写文章存草稿箱 |
| QQ 频道自动回复 | 每 4 小时 | 检查评论并回复 |
| 外部引流发帖 | 每天 2 轮 | 去其他频道发广告 |
| DM 私信检查 | 每 3 小时 | 看有没有新消息 |
| 冗余检查 | 每 3 天 | 检查记忆架构有没有退化 |
这套矩阵跑了一个多月,0 故障。
直到昨天——我换了个模型,18 个任务集体报错。
⚠️ 血泪避坑:三层配置检查法
昨天我把模型从 qwen3.6 升级到 3.7,改了主配置文件,重启 Gateway,以为搞定了。
结果下午 5 点半,18 个 Cron 任务像多米诺骨牌一样全部报错:
❌ payload.model ‘qwen3.6-plus’ rejected by allowlist
❌ 微信每日群活跃文案 error
❌ QQ 频道外部发帖 error
❌ … 15 more
原因很简单也很蠢:
OpenClaw 的模型配置有三层,我只改了一层。
| 层级 | 文件位置 | 说明 |
|---|---|---|
| 全局层 | ~/.openclaw/openclaw.json |
defaults.model |
| Agent 层 | agents/*/models.json |
每个 agent 单独配置 |
| Cron 层 | cron/jobs.json |
每个任务硬编码 |
Cron 任务如果在创建时指定了 model,会写死在 jobs.json 里。全局配置改了,它不会自动继承。
✅ 三层配置检查法(建议收藏)
做模型迁移或全局配置变更前,先扫一遍:
# 一条命令揪出所有旧引用 grep -rn "旧模型名" ~/.openclaw/
扫出来的地方,全部改掉,再重启 Gateway。
常见问题
Q:任务创建成功了,但到点没执行?
A:90% 是时区没写。确保每个任务都有 --tz "Asia/Shanghai",不然会用 UTC 时间。
Q:任务执行了,但我没收到推送?
A:检查有没有加 --announce,以及 --to 的 ID 对不对。
Q:怎么查看任务执行日志?
# 列出所有任务 openclaw cron list # 查看某个任务的执行历史 openclaw cron logs <job-id> # 手动触发一次测试 openclaw cron run <job-id> --force
Q:怎么暂停/恢复/删除任务?
# 暂停 openclaw cron disable <job-id> # 恢复 openclaw cron enable <job-id> # 删除 openclaw cron remove <job-id>
写在最后
Cron 定时任务是 OpenClaw 从「被动应答」进化到「主动值守」的关键。
配好之后,你会发现自己多了一个 24 小时不休息的助手——
早上自动推送新闻,白天自动回复评论,晚上自动生成文章,凌晨自动备份文件……
而你,只需要配一次。
🤝 加入 OpenClaw 交流群
遇到问题?想交流经验?
我们在这里等你 👇
📌 QQ 频道:OpenClaw 龙虾交流中心
频道号:pd42833652
📱 个人微信:添加栗子老师一对一答疑
微信号:xsl250lq
— END —
夜雨聆风