OpenClaw 进阶篇(二):定时任务与自动化工作流
在上一篇中,我们了解了多 Agent 架构。但 AI 助手通常是"被动响应"的——你问它才答。OpenClaw 的Cron 定时任务📰 每天早上自动推送新闻摘要📅 定时检查日程并发送提醒🔄 定期执行自动化任务(如数据同步、报告生成)--name "周报汇总" \--message "生成本周工作总结:1. 本周完成的主要任务2. 遇到的问题和解决方案3. 下周计划整理成 Markdown 格
·
OpenClaw 进阶篇(二):定时任务与自动化工作流
让 AI 助手"主动出击"——设置定时任务,自动推送新闻、提醒日程、执行自动化工作流。
前言
在上一篇中,我们了解了多 Agent 架构。但 AI 助手通常是"被动响应"的——你问它才答。
OpenClaw 的 Cron 定时任务让 AI 助手能够"主动出击":
- 📰 每天早上自动推送新闻摘要
- 📅 定时检查日程并发送提醒
- 🔄 定期执行自动化任务(如数据同步、报告生成)
一、Cron 任务架构
1.1 整体流程

1.2 核心概念
| 概念 | 说明 |
|---|---|
| Schedule | 定时表达式(cron 或 every) |
| Agent Turn | 触发时执行的 Agent 任务 |
| Delivery | 结果投递目标(频道/用户) |
| Session | 隔离的执行会话 |
二、快速上手:创建定时任务
2.1 基础定时任务
# 每天早上 8:30 推送新闻
openclaw cron add \
--name "每日新闻" \
--cron "30 8 * * *" \
--tz "Asia/Shanghai" \
--message "获取今天的新闻摘要,整理成简洁格式" \
--announce
2.2 查看任务列表
openclaw cron list
输出示例:
ID Name Schedule Next Status
──────────────────────────────────────────────────────────────────────────────────────
a1b2c3d4-e5f6-7890-abcd-ef1234567890 每日新闻 cron 30 8 * * * in 2h idle
b2c3d4e5-f6a7-8901-bcde-f12345678901 每周总结 cron 0 18 * * 5 in 3d idle
2.3 立即运行测试
openclaw cron run <job-id>
三、Cron 表达式详解
3.1 标准格式

3.2 常用示例
| 表达式 | 含义 |
|---|---|
30 8 * * * |
每天 8:30 |
0 9 * * 1-5 |
工作日 9:00 |
0 18 * * 5 |
每周五 18:00 |
0 0 1 * * |
每月 1 日 0:00 |
*/30 * * * * |
每 30 分钟 |
3.3 使用 --every 简化
# 每 30 分钟
openclaw cron add --name "健康检查" --every 30m --message "检查系统状态"
# 每小时
openclaw cron add --name "同步数据" --every 1h --message "执行数据同步"
# 一次性任务(--at)
openclaw cron add --name "会议提醒" --at "2024-03-15T10:00" --message "会议即将开始"
四、投递配置
4.1 投递到频道
# 投递到 Telegram 私聊
openclaw cron add \
--name "早安问候" \
--cron "0 7 * * *" \
--message "发送一条温馨的早安问候" \
--announce \
--channel telegram \
--to "123456789"
# 投递到 Discord 频道
openclaw cron add \
--name "周报提醒" \
--cron "0 17 * * 5" \
--message "提醒大家提交周报" \
--announce \
--channel discord \
--to "channel:123456789"
4.2 投递模式
| 模式 | 说明 | 使用场景 |
|---|---|---|
--announce |
投递到聊天频道 | 新闻推送、提醒 |
--no-deliver |
不投递,仅执行 | 数据处理、后台任务 |
4.3 修改投递配置
# 修改投递目标
openclaw cron edit <job-id> --announce --channel feishu
# 禁用投递
openclaw cron edit <job-id> --no-deliver
五、实战案例
5.1 每日新闻推送
openclaw cron add \
--name "每日新闻" \
--cron "30 8 * * *" \
--tz "Asia/Shanghai" \
--message "获取今天的重点新闻,整理成简洁日报:
1. 国内重要新闻(3-5条)
2. 国际热点(2-3条)
3. 科技财经要点(2-3条)
每条用一句话概括,总共不超过10条。" \
--announce \
--description "每天早上8:30推送今日新闻"
5.2 会议提醒(提前15分钟)
openclaw cron add \
--name "会议提醒" \
--every 15m \
--message "检查接下来的会议安排,如果有15分钟内的会议,发送提醒通知" \
--announce
5.3 每周工作总结
openclaw cron add \
--name "周报汇总" \
--cron "0 18 * * 5" \
--tz "Asia/Shanghai" \
--message "生成本周工作总结:
1. 本周完成的主要任务
2. 遇到的问题和解决方案
3. 下周计划
整理成 Markdown 格式" \
--announce
5.4 系统健康检查
openclaw cron add \
--name "系统检查" \
--every 1h \
--message "检查系统状态:
- CPU、内存使用率
- 磁盘空间
- 关键服务状态
如果有异常,发送告警" \
--announce
六、任务管理
6.1 查看任务状态
# 列表查看
openclaw cron list
# 单个任务详情
openclaw cron status <job-id>
# 执行历史
openclaw cron runs <job-id>
6.2 启用/禁用任务
# 禁用
openclaw cron disable <job-id>
# 启用
openclaw cron enable <job-id>
6.3 修改任务
# 修改时间
openclaw cron edit <job-id> --cron "0 9 * * *"
# 修改消息
openclaw cron edit <job-id> --message "新的任务内容"
# 修改模型(高级)
openclaw cron edit <job-id> --model "anthropic/claude-3-opus"
6.4 删除任务
openclaw cron rm <job-id>
七、高级特性
7.1 任务失败重试
OpenClaw 自动处理任务失败,使用指数退避重试:
失败间隔: 30s → 1m → 5m → 15m → 60m
连续失败后,下次成功会恢复正常调度。
7.2 指定模型和思考级别
openclaw cron add \
--name "深度分析" \
--cron "0 20 * * *" \
--message "进行深度数据分析..." \
--model "anthropic/claude-3-opus" \
--thinking high \
--announce
7.3 超时配置
openclaw cron add \
--name "长时间任务" \
--every 1h \
--message "执行长时间数据处理" \
--timeout-seconds 300 \
--no-deliver
八、最佳实践
8.1 任务设计原则
- 幂等性:任务可以重复执行而不产生副作用
- 简洁性:单个任务只做一件事
- 可观测性:结果要能清晰传达给用户
8.2 避免滥用
- ❌ 不要设置过于频繁的任务(如每分钟)
- ❌ 不要在任务中执行耗时操作(考虑异步)
- ✅ 合理利用
--every和--cron
8.3 调试技巧
# 立即运行测试
openclaw cron run <job-id>
# 查看执行日志
openclaw cron runs <job-id> --tail 10
# 查看 Gateway 日志
openclaw logs --follow
更多推荐




所有评论(0)