OpenClaw 实战:用 Cron 任务构建自动化工作流
2026/5/8 3:08:26 网站建设 项目流程

为什么需要自动化?

OpenClaw 的强大之处不仅在于它能接入 50+ 聊天平台、运行多型号大模型,更在于它的自动执行能力。通过内置的 Cron 任务系统,你可以让 Agent 在指定时间自动执行任务——无需人工触发,无需一直在线。

本文从零开始,带你掌握 OpenClaw Cron 任务的核心概念、配置方法,并给出 3 个可以直接上手的实战场景。

---

一、Cron 系统架构概览

OpenClaw 的 Cron 系统由以下几个组件构成:

Cron Scheduler → Cron 表达式解析 → Job 优先级队列 → Job 执行器 → Agent Runner
  • Cron Scheduler:调度器,按时解析并触发任务

  • Job 队列:支持并发执行的任务队列,默认最大并发数为 3

  • Job 执行器:负责超时控制、重试机制、并发限制

  • Agent Runner:将任务交给 Agent 执行,支持指定模型和 thinking 级别

执行模式分为两种:

  • isolated 模式(推荐):每次运行使用全新的会话上下文,避免上下文污染

  • main 模式:复用主会话上下文,适合需要延续对话历史的场景

---

二、快速上手:你的第一个 Cron 任务

步骤 1:启用 Cron 服务

默认情况下 Cron 服务是关闭的,需要手动开启:

启用 Cron 服务


openclaw config set cron.enabled true

调整最大并发数(可选)


openclaw config set cron.maxConcurrentRuns 5

设置会话保留时间(可选,默认24小时)


openclaw config set cron.sessionRetention "48h"

重启 Gateway 生效


openclaw gateway restart

步骤 2:创建第一个定时任务

openclaw cron create \ --name "daily-weather" \ --schedule "0 8 * * *" \ --agent default \ --message "查一下今天北京的天气,提醒我是否需要带伞"

参数说明:

  • --name:任务名称,唯一标识

  • --schedule:标准 Cron 表达式,这里表示每天早上 8:00

  • --agent:指定执行任务的 Agent

  • --message:发给 Agent 的指令

  • --thinking:可指定 low / medium / high 推理级别

如果希望任务结果推送到你的 WhatsApp,可以加上:

openclaw cron create \ --name "daily-weather-push" \ --schedule "0 8 * * *" \ --message "查今天北京天气,并推送给用户" \ --deliver-to "+86138xxxxxxxx" \ --channel whatsapp

步骤 3:管理任务

查看所有任务


openclaw cron list

查看任务详情


openclaw cron show daily-weather

暂停任务(不删除)


openclaw cron pause daily-weather

恢复任务


openclaw cron resume daily-weather

立即手动执行一次(用于测试)


openclaw cron run daily-weather

删除任务


openclaw cron delete daily-weather

---

三、Cron 表达式速查

OpenClaw 使用标准的 Unix Cron 格式:

┌───────────── 分钟 (0 - 59) │ ┌───────────── 小时 (0 - 23) │ │ ┌───────────── 日 (1 - 31) │ │ │ ┌───────────── 月 (1 - 12) │ │ │ │ ┌───────────── 星期 (0 - 6, 0=周日) │ │ │ │ │ * * * * *

常用表达式:

| 表达式 | 含义 |
|--------|------|
|0 9 * * *| 每天上午 9:00 |
|*/5 * * * *| 每 5 分钟 |
|0 */2 * * *| 每 2 小时 |
|0 0 * * 1| 每周一凌晨 |
|0 0 1 * *| 每月 1 号 |
|0 0 * * *| 每天凌晨 |

---

四、进阶配置技巧

4.1 设置超时和重试

对于执行时间较长或不稳定的任务,建议配置超时和重试:

openclaw cron create \ --name "data-sync" \ --schedule "0 */6 * * *" \ --message "同步数据库到备份服务器" \ --timeout 1800 \ --retries 3 \ --retry-delay 60
  • --timeout:超时时间(秒),超时后任务自动终止

  • --retries:失败重试次数

  • --retry-delay:重试间隔(秒)

4.2 指定执行模型

对于不同类型的任务,可以指定不同的模型:

复杂分析任务用更强模型


openclaw cron create \
--name "weekly-analysis" \
--schedule "0 0 * * 1" \
--message "分析本周数据趋势并生成报告" \
--model claude-sonnet-4-20250514

简单检查任务用轻量模型


openclaw cron create \
--name "health-check" \
--schedule "*/10 * * * *" \
--message "检查所有服务是否正常运行" \
--thinking low

4.3 使用配置文件定义任务

对于复杂场景,可以编写配置文件来管理多个任务。参考~/.openclaw/config.yaml

cron: enabled: true maxConcurrentRuns: 5 sessionRetention: "48h" jobs: - name: morning-digest schedule: "0 7 * * *" message: "收集今天的重要日程、天气和新闻摘要" session: isolated thinking: medium announce: true - name: pr-check schedule: "0 9 * * 1-5" message: "检查仓库中等待 review 的 PR" session: isolated thinking: low

---

五、三大实战场景

场景 1:每日 AI 热点摘要推送

需求:每天早上 9 点,从 Gmail 的 "AI digest" 标签中提取邮件摘要,整理成简报推送到 WhatsApp。

实现方式:

openclaw cron create \ --name "ai-daily-digest" \ --schedule "0 9 * * *" \ --session isolated \ --tz "Asia/Shanghai" \ --message "使用 gog 工具检查 Gmail 中 'AI digest' 标签下的邮件(过去24小时内),提取重要内容并整理成中文摘要,推送到我的 WhatsApp" \ --thinking medium

这个场景利用了 OpenClaw 的 Gmail 集成(gog 工具)和跨渠道消息推送能力,无需任何额外基础设施。

场景 2:GitHub PR 自动审查

需求:每天早上检查仓库中等待合并的 Pull Request,筛选出已通过 CI、无冲突、且有足够 Approve 的 PR。

openclaw cron create \ --name "morning-pr-check" \ --schedule "0 9 * * 1-5" \ --session isolated \ --message "检查 openclaw/openclaw 仓库中标记为 'ready-for-review' 的 PR,确认是否满足:1) 无合并冲突 2) CI 通过 3) 至少有2个 Approve。输出一个合并就绪清单"

如果你配置了 OpenClaw 连接 GitHub,它还会自动在 Slack 或钉钉中发送结果。

场景 3:系统健康监控 + 自动修复

需求:每 10 分钟检查服务器状态,发现异常自动尝试修复并通知。

openclaw cron create \ --name "system-health" \ --schedule "*/10 * * * *" \ --session isolated \ --thinking low \ --message "运行系统健康检查:1) 检查 CPU、内存、磁盘使用率 2) 检查关键服务是否在线 3) 检查最近5分钟的日志是否有 ERROR。如果任何指标超过阈值,先尝试修复(如重启服务),修复失败则通知我"

这就是 OpenClaw 的元自动化(Meta-Automation)雏形——一个 Cron 任务执行检查,发现问题后自动执行修复,形成闭环。

---

六、最佳实践与避坑指南

6.1 始终使用 isolated 模式

除非有特殊需求,否则建议使用--session isolated。这样可以避免:

  • 不同 Cron 任务之间的上下文混乱

  • 对话历史过长导致 Token 浪费

  • 指令被前一次任务的残留信息干扰

6.2 任务指令要具体

Cron 任务没有人类在循环中,指令必须清晰、可验证。不要写"检查系统状态",而要写:

> "运行df -h检查磁盘使用率,如果 / 分区使用率超过 80%,列出占用空间最大的前 5 个目录,并发送通知。"

6.3 先手动测试,再上定时

每次新建 Cron 任务后,先用openclaw cron run <name>手动执行一次,确认 Agent 能正确理解指令、工具调用无误,再让它按计划运行。

6.4 日志和通知

对于关键任务,建议将输出同时保存到文件:

openclaw cron create \ --name "log-cleanup" \ --schedule "0 3 * * 0" \ --message "清理超过30天的日志文件,保留最近两次备份" \ --output "/var/log/openclaw/cron-cleanup.log"

---

七、总结

OpenClaw 的 Cron 系统将 AI Agent 从"被动问答"转变为"主动执行"。你不再需要每次手动发消息给 Agent,而是让它在预设的时间自动工作。

核心要点回顾:

  • openclaw config set cron.enabled true启用服务

  • openclaw cron create创建任务,--session isolated是默认最佳实践

  • 善用--timeout--retries--deliver-to让生产环境任务更健壮

  • openclaw cron run先手动验证,再上定时

  • 从简单场景开始(每日简报),逐步扩展到复杂自动化流程

你的 OpenClaw 不应该只是一个聊天机器人——让它在你睡觉的时候也替你工作吧。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询