OpenClaw 自动化工作流教程

构建自动化工作流,实现定时任务、网站监控、日报推送和循环任务配置

⏱️ 7.1 定时任务设置

什么是定时任务?

定时任务是 OpenClaw 自动化能力的核心功能之一。通过定时任务,你可以:

  • 在指定时间执行特定的操作或脚本
  • 按周期(每天、每周、每月)自动运行任务
  • 设置条件触发,实现智能自动化
  • 减少重复性工作,提高效率

心跳机制原理

定时任务调度器
Cron 表达式解析
时间计算引擎
任务队列管理
任务执行器
命令执行
脚本运行
消息推送
API 调用
结果处理
执行日志
结果通知
错误处理

实战案例

案例一:简单提醒

配置
# 每天晚上10点提醒睡觉
openclaw schedule add --name "睡觉提醒" \
  --cron "0 22 * * *" \
  --command "notify '该准备休息了,明天还要早起!'" \
  --channel whatsapp

案例二:每周报告

自动生成并发送周报:

配置
# 每周五下午5点生成周报
openclaw schedule add --name "周报生成" \
  --cron "0 17 * * 5" \
  --command "generate_weekly_report" \
  --channel email \
  --recipients "team@company.com"

案例三:每月总结

月底自动生成月度数据统计:

配置
# 每月最后一天晚上8点
openclaw schedule add --name "月度总结" \
  --cron "0 20 28-31 * *" \
  --command "generate_monthly_summary" \
  --condition "is_last_day_of_month"

Cron 表达式详解

字段 含义 取值范围 示例
第1位 分钟 0-59 0 表示整点
第2位 小时 0-23 9 表示上午9点
第3位 日期 1-31 * 表示每天
第4位 月份 1-12 * 表示每月
第5位 星期 0-7 (0和7都是周日) 1-5 表示工作日

常用 Cron 表达式示例

Cron 示例
# 每分钟执行
* * * * *

# 每小时执行
0 * * * *

# 每天凌晨2点
0 2 * * *

# 每周一早上8点
0 8 * * 1

# 每月1号中午12点
0 12 1 * *

# 每5分钟执行
*/5 * * * *

# 工作日上午9点到下午6点每小时
0 9-18 * * 1-5

👁️ 7.2 网站监控实战

为什么需要网站监控?

网站监控可以帮助你:

  • 第一时间发现网站故障或访问异常
  • 监控竞争对手的网站更新动态
  • 追踪商品价格变化,抢购心仪商品
  • 监控招聘信息、考试公告等重要信息
  • 自动化数据收集,节省人工检查时间

网站变化检测原理

📡
定期抓取 按照设定的时间间隔访问目标网站,获取页面内容
🔍
内容对比 将新抓取的内容与历史版本进行对比,检测变化
🚨
智能通知 检测到变化后,通过多种渠道发送通知

实战案例

案例一:博客更新监控

配置
# 监控技术博客更新
openclaw monitor add --name "技术博客监控" \
  --url "https://example-tech-blog.com" \
  --selector "article.latest" \
  --interval "1h" \
  --channel telegram \
  --notify-on-change true

案例二:产品价格监控

追踪电商网站商品价格变化:

配置
# 监控商品价格,降价时通知
openclaw monitor add --name "iPhone 价格监控" \
  --url "https://store.example.com/iphone-16" \
  --selector ".product-price" \
  --interval "30m" \
  --condition "price_drop > 5%" \
  --channel whatsapp

案例三:招聘信息监控

及时获取心仪公司的招聘信息:

配置
# 监控招聘页面新增职位
openclaw monitor add --name "大厂招聘监控" \
  --url "https://careers.bigcompany.com/jobs" \
  --selector ".job-listing" \
  --interval "2h" \
  --filter "keywords:AI工程师,后端开发" \
  --channel email

监控频率优化

⚡ 优化建议
  • 合理设置间隔:根据网站更新频率设置监控间隔,避免过于频繁的请求
  • 使用智能过滤:只监控关心的内容区域,减少数据处理量
  • 遵守 robots.txt:尊重网站的爬虫协议,合理控制请求频率
  • 使用缓存:启用内容缓存,减少重复抓取
  • 错峰监控:分散监控任务执行时间,避免集中请求

📰 7.3 日报自动推送

为什么需要日报?

自动日报可以帮你:

  • 每天自动汇总重要信息,节省时间
  • 跟踪关注的行业动态和技术趋势
  • 记录个人工作进展和成就
  • 及时发现重要信息和机会

日报内容设计

一份好的日报应包含以下内容:

📊
数据汇总 关键指标数据、统计数据、趋势图表
📰
新闻资讯 行业新闻、技术动态、政策法规
任务进展 昨日完成、今日计划、阻塞问题
💡
AI 总结 OpenClaw 自动分析生成的洞察和建议

实战案例

案例一:AI行业日报

配置
# 每天早上8点推送AI行业日报
openclaw report create --name "AI行业日报" \
  --schedule "0 8 * * *" \
  --sources "techcrunch.ai,arxiv.org,paperswithcode.com" \
  --template "industry_daily" \
  --channel telegram \
  --ai-summary true

案例二:技术资讯日报

关注 GitHub、Hacker News 等技术社区:

配置
日报内容示例:
🌟 今日热门仓库
  • xxx/awesome-project - 新的AI工具库
  • yyy/fast-framework - 高性能Web框架

📈 GitHub趋势
  • Python项目增长23%
  • AI相关Issue活跃度提升

💡 AI总结
  今日技术圈关注焦点:大模型效率优化...

案例三:个人工作日报

自动汇总工作进展:

配置
# 工作日每天晚上6点生成个人日报
openclaw report create --name "个人工作日报" \
  --schedule "0 18 * * 1-5" \
  --sources "calendar,git,todo" \
  --template "personal_daily" \
  --channel email \
  --recipients "manager@company.com"

推送渠道选择

渠道 适用场景 优点 缺点
Telegram/WhatsApp 个人日报、实时资讯 即时到达,支持富媒体 可能被消息淹没
Email 正式报告、工作汇报 格式完整,易于存档 可能被归类为垃圾邮件
飞书/钉钉 团队日报、协作通知 便于团队查看和讨论 需要企业账号
Discord/Slack 社区日报、兴趣小组 支持频道分类 需要活跃社区

🔄 7.4 循环任务配置

什么是循环任务?

循环任务是指需要按照一定规则重复执行的任务。与定时任务不同,循环任务更关注任务之间的依赖关系和执行逻辑:

  • 任务链:多个任务按照顺序依次执行
  • 并行执行:多个任务同时运行
  • 条件分支:根据执行结果选择不同的执行路径
  • 错误处理:失败时自动重试或触发备用方案

循环任务类型

➡️
顺序执行 任务A → 任务B → 任务C,前一个完成后才执行下一个
并行执行 任务A、B、C同时执行,等待全部完成后继续
🔀
条件分支 根据条件判断执行不同的任务分支
🔁
循环迭代 对列表中的每个元素执行相同的任务

实战案例

案例一:数据备份

工作流配置
# 每日数据备份工作流
workflow:
  name: "每日数据备份"
  schedule: "0 2 * * *"
  steps:
    - name: "备份数据库"
      command: "backup_database"
      retry: 3
    - name: "备份文件"
      command: "backup_files"
      parallel: true
      items: ["/data/docs", "/data/images", "/data/logs"]
    - name: "上传到云端"
      command: "upload_to_cloud"
      depends_on: ["备份数据库", "备份文件"]
    - name: "发送备份报告"
      command: "send_backup_report"
      depends_on: ["上传到云端"]

案例二:健康提醒

全天候健康管理工作流:

工作流配置
# 健康提醒工作流
workflow:
  name: "健康提醒"
  rules:
    - time: "9:00"
      action: "提醒喝水"
    - time: "11:00"
      action: "提醒做眼保健操"
    - time: "12:00"
      action: "提醒吃饭"
    - time: "15:00"
      action: "提醒活动"
    - time: "22:00"
      action: "提醒睡觉"
  
  # 久坐检测
  - trigger: "sedentary > 60min"
    action: "提醒站起来活动"

任务依赖管理

🔗 依赖管理要点
  • 明确依赖关系:使用 depends_on 声明任务间的依赖
  • 避免循环依赖:确保任务依赖图是有向无环图(DAG)
  • 设置超时:为每个任务设置合理的执行超时时间
  • 依赖可视化:使用命令查看任务依赖关系图

错误重试机制

重试配置
# 任务重试策略
task:
  retry_policy:
    max_attempts: 3          # 最大重试次数
    backoff_strategy: "exponential"  # 指数退避
    initial_delay: "5s"      # 初始延迟
    max_delay: "5m"          # 最大延迟
    retry_on: ["timeout", "network_error"]
  
  # 失败处理
  on_failure:
    action: "notify_admin"
    fallback_task: "backup_plan"
🛡️ 最佳实践
  • 幂等性设计:确保任务可以安全地重复执行
  • 状态持久化:任务执行状态需要持久化,防止服务重启丢失
  • 日志记录:详细记录每个任务的执行过程和结果
  • 监控告警:对失败任务及时告警,人工介入处理
  • 优雅降级:核心任务失败时,提供简化版备用方案