乐于分享
好东西不私藏

openclaw 系统性入门06 – 这些重复活,交给AI自动做

openclaw 系统性入门06 – 这些重复活,交给AI自动做


什么是自动化任务?

想象一下:每天早上 8 点自动发送今日工作摘要,GitHub 有新 PR 时自动审查并推送结果到 Telegram,每周一自动生成周报——这些重复性工作,OpenClaw 可以帮你自动完成。

OpenClaw 自动化的核心能力

定时任务(Cron):按照设定的时间自动执行任务,比如每天、每周、每月的固定操作。

Webhook:监听外部事件并自动响应,比如 GitHub push、TradingView 告警、传感器触发等。

真实价值:把你从重复性工作中解放出来,专注于更重要的事情。


哪些任务适合自动化?

真实用户场景

根据官方 Showcase 中的真实案例,以下是用户已经在使用的自动化场景:

开发工作流

  • 自动审查 GitHub PR 并推送结果到 Telegram
  • Linear 项目状态同步
  • 代码格式化和提交

个人效率

  • 每日早晨自动发送工作摘要
  • 每周自动生成周报
  • 定时提醒重要事项

家庭生活

  • 自动购物(Tesco 全自动购物)
  • 自动预订球场(Padel Booking)
  • 智能家居定时控制

金融分析

  • TradingView 告警触发分析
  • 定时获取股票/加密货币价格
  • 自动生成交易报告

内容创作

  • 定时收集灵感
  • 自动生成内容摘要
  • 多平台一键发布

自动化价值判断

适合自动化的任务

  • 重复性高:每天/每周都要做的事
  • 规律性强:有固定时间或触发条件
  • 耗时但简单:不需要复杂决策
  • 容易忘记:经常错过的事情

不适合自动化的任务

  • 需要创意思考
  • 需要复杂判断
  • 一次性操作
  • 变化频繁的任务

定时任务配置(Cron)

Cron 表达式基础

Cron 是一个用于配置定时任务的标准格式,由 5 个字段组成:

分钟  小时  日期  月份  星期
*     *     *     *     *
字段
取值范围
示例
分钟
0-59
0

 = 整点,30 = 半点
小时
0-23
8

 = 早上 8 点,20 = 晚上 8 点
日期
1-31
1

 = 每月 1 号
月份
1-12
1

 = 一月
星期
0-6 (0=周日)
1

 = 周一

常用 Cron 表达式

表达式
含义
0 8 * * *
每天早上 8 点
0 */6 * * *
每 6 小时
0 0 * * 1
每周一早上 0 点
0 9 1 * *
每月 1 号早上 9 点
*/30 * * * *
每 30 分钟

配置定时任务

编辑配置文件 ~/.openclaw/openclaw.json

{
"automation":{
"crons":{
"morning-briefing":{
"schedule":"0 8 * * *",
"target":"telegram",
"message":"/briefing"
}
}
}
}

配置参数说明

  • morning-briefing
    :任务名称(可自定义)
  • schedule
    :Cron 表达式,定义执行时间
  • target
    :目标平台(telegram、wechat、discord 等)
  • message
    :要发送的命令或消息

定时任务实例

以下是几个实用的定时任务配置:

每日晨报

{
"daily-briefing":{
"schedule":"0 8 * * *",
"target":"telegram",
"message":"帮我生成今日工作摘要"
}
}

每日晚安

{
"daily-summary":{
"schedule":"0 22 * * *",
"target":"telegram",
"message":"总结今天的工作"
}
}

每周周报

{
"weekly-report":{
"schedule":"0 9 * * 1",
"target":"telegram",
"message":"生成本周工作总结"
}
}

每小时提醒喝水

{
"drink-water":{
"schedule":"0 * * * *",
"target":"telegram",
"message":"该喝水了!"
}
}

成本考虑

使用自动化任务时,需要注意以下成本因素:

AI调用成本

  • 定时任务频率建议:最低5分钟间隔,避免过度调用
  • 不同模型的成本差异:
    • GPT-4o:约$0.005/1K tokens(适合复杂任务)
    • GPT-4o-mini:约$0.00015/1K tokens(适合简单任务)

成本优化建议

  1. 合理设置频率

    • 晨报/周报:每天/每周一次
    • 提醒类:每小时或每2小时
    • 实时响应:使用Webhook而非高频定时任务
  2. 选择合适的模型

    • 简单提醒:使用gpt-4o-mini
    • 代码审查:使用gpt-4o
  3. 合并相似任务

{
"automation":{
"crons":{
"morning-routine":{
"schedule":"0 8 * * *",
"message":"/briefing && /weather && /calendar"
}
}
}
}

月成本估算示例

任务类型
频率
模型
预估月成本
每日晨报
1次/天
gpt-4o-mini
~$0.01
代码审查
10次/天
gpt-4o
~$0.5
喝水提醒
12次/天
gpt-4o-mini
~$0.05

Webhook 配置

什么是 Webhook?

Webhook 是一种”事件驱动”的自动化方式:当某个外部事件发生时(比如 GitHub 有新提交),OpenClaw 会自动收到通知并执行相应的任务。

与定时任务不同,Webhook 不需要固定时间,而是由外部事件触发。

配置 Webhook

在 ~/.openclaw/openclaw.json 中添加 Webhook 配置:

{
"automation":{
"webhooks":{
"github-events":{
"url":"/webhooks/github",
"events":["push","pull_request"]
}
}
}
}

配置参数说明

  • url
    :Webhook 接收路径
  • events
    :要监听的事件类型

Webhook 安全配置

在生产环境中,建议验证Webhook请求的合法性,防止恶意请求触发自动化任务。

签名验证配置

{
"automation":{
"webhooks":{
"github-events":{
"url":"/webhooks/github",
"events":["push","pull_request"],
"secret":"your-webhook-secret"
}
}
}
}

安全最佳实践

  1. 使用密钥验证
    :为每个Webhook设置唯一的secret
  2. 限制事件类型
    :只监听必要的事件,减少攻击面
  3. 监控异常请求
    :记录来源IP和请求频率
  4. 定期轮换密钥
    :建议每3-6个月更换webhook secret

Webhook 实例

GitHub 事件监听

{
"github-webhook":{
"url":"/webhooks/github",
"events":["push","pull_request","issue"]
}
}

TradingView 告警

{
"tradingview-alerts":{
"url":"/webhooks/tradingview",
"events":["alert"]
}
}

自定义服务触发

{
"custom-trigger":{
"url":"/webhooks/custom",
"events":["update","notification"]
}
}

真实案例:自动预订球场

案例背景

用户 joshp123 创建了 Padel Booking 技能,实现全自动预订网球场:

问题:热门网球场很难预订,经常需要手动刷新页面抢场地

解决方案:使用 OpenClaw 自动化任务定时检查场地可用性,发现开放时段自动预订

结果:再也不会错过想要的时间段

实现步骤

步骤1:安装相关技能

openclaw skills install joshp123/padel-cli

步骤2:配置定时任务

在 ~/.openclaw/openclaw.json 中添加:

{
"automation":{
"crons":{
"check-booking":{
"schedule":"*/10 * * * *",
"target":"telegram",
"message":"/padel-check"
}
}
}
}

这个配置每 10 分钟检查一次场地可用性。

步骤3:配置自动预订

当检测到可用场地时,自动发送预订请求:

{
"automation":{
"webhooks":{
"padel-available":{
"url":"/webhooks/padel",
"events":["available"],
"action":"book"
}
}
}
}

步骤4:接收确认通知

预订成功后,在 Telegram 收到确认消息。

其他真实案例

案例1:自动代码审查

用户 bangnokia 创建了完整的 PR 审查自动化:

  1. OpenCode 完成代码更改,打开 PR
  2. OpenClaw 自动审查 diff
  3. 在 Telegram 中回复建议和明确的合并结论

配置示例

{
"automation":{
"webhooks":{
"pr-review":{
"url":"/webhooks/github",
"events":["pull_request"],
"agent":"coder",
"action":"review"
}
}
}
}

案例2:自动购物

用户使用 Tesco Shop 技能实现全自动购物:

  • 定时检查购物清单
  • 自动下单购买
  • 推送确认消息

完整配置示例

多自动化任务配置

以下是一个完整的自动化配置示例,包含多个定时任务和 Webhook:

{
"automation":{
"crons":{
"morning-briefing":{
"schedule":"0 8 * * *",
"target":"telegram",
"message":"/briefing"
},
"daily-summary":{
"schedule":"0 20 * * *",
"target":"telegram",
"message":"/summary"
},
"weekly-report":{
"schedule":"0 9 * * 1",
"target":"telegram",
"message":"/weekly"
},
"drink-water":{
"schedule":"0 */2 * * *",
"target":"telegram",
"message":"该喝水了!"
}
},
"webhooks":{
"github-events":{
"url":"/webhooks/github",
"events":["push","pull_request"]
},
"tradingview-alerts":{
"url":"/webhooks/tradingview",
"events":["alert"]
}
}
}
}

多代理自动化

可以为不同的自动化任务指定不同的代理:

{
"agents":{
"coder":{
"systemPrompt":"你是一个编程专家",
"model":"gpt-4o"
},
"assistant":{
"systemPrompt":"你是一个生活助手",
"model":"gpt-4o-mini"
}
},
"automation":{
"crons":{
"code-review":{
"schedule":"0 10 * * *",
"target":"telegram",
"agent":"coder",
"message":"/review-prs"
},
"morning-reminder":{
"schedule":"0 8 * * *",
"target":"telegram",
"agent":"assistant",
"message":"/morning-briefing"
}
}
}
}

常见问题

Q1:修改配置后如何生效?

A:修改配置文件后,需要重启 Gateway:

# 停止现有 Gateway(按 Ctrl+C)
# 重新启动
openclaw gateway --port18789--verbose

Q2:如何测试自动化任务?

A:可以使用以下方法:

  1. 缩短测试间隔
    :把 */10 * * * * 改为 */1 * * * *(每分钟)
  2. 查看日志
    :使用 --verbose 查看详细日志
  3. 手动触发
    :发送测试消息验证功能

Q3:定时任务没有执行怎么办?

A:按以下步骤排查:

  1. 检查 Cron 表达式
    :确保格式正确
  2. 检查配置文件
    :确保 JSON 格式无误
  3. 检查 Gateway 日志
    :查看是否有错误信息
  4. 确认时区设置
    :OpenClaw 默认使用系统时区

Q4:任务失败时如何处理?

A:OpenClaw提供以下错误处理机制:

  1. 查看失败日志
# 查看详细日志
openclaw gateway --verbose

# 查看特定任务执行历史
openclaw cron runs --id morning-briefing
  1. 自动重试:任务失败时会自动重试3次,间隔逐渐增加

  2. 配置告警:可以配置失败时发送通知:

{
"automation":{
"crons":{
"morning-briefing":{
"schedule":"0 8 * * *",
"target":"telegram",
"message":"/briefing",
"onError":{
"notify":"telegram",
"retry":true,
"maxRetries":3
}
}
}
}
}
  1. 手动重试
    :失败的任务可以手动触发重试

Q5:可以配置多少个自动化任务?

A:理论上没有限制。但建议:

  • 合并相似任务,避免过度分散
  • 定期清理不再使用的任务
  • 注意任务执行频率,避免资源浪费

性能优化建议

  1. 任务频率控制

    • 最低间隔:5分钟
    • 高频任务:考虑使用Webhook替代
    • 批量处理:合并多个小任务
  2. 并发限制

{
"automation":{
"settings":{
"maxConcurrent":5,
"queueSize":100
}
}
}
  1. 资源监控
    • 定期检查内存使用
    • 监控任务执行时长
    • 设置超时时间

Q6:如何验证配置是否正确?

A:使用以下方法验证配置:

  1. 检查JSON格式
# 验证JSON语法
cat ~/.openclaw/openclaw.json | jq .
  1. 测试Cron表达式
# 预览下次执行时间
openclaw cron preview "0 8 * * *"
  1. 测试Webhook
# 发送测试webhook
curl-X POST http://localhost:18789/webhooks/github \
-H"Content-Type: application/json"\
-d'{"event":"push"}'
  1. 查看任务状态
# 列出所有任务
openclaw cron list

# 查看任务详情
openclaw cron status --id morning-briefing

下一步

配置好自动化任务后,你可以:

  1. 安装更多技能
    :为不同场景安装专业技能
  2. 配置语音功能
    :使用语音命令触发自动化
  3. 探索 Canvas 功能
    :可视化管理和监控自动化任务
  4. 学习高级技巧
    :任务链、条件判断、错误处理等

本专栏接下来的文章会详细介绍这些内容。


进阶版预告

你正在阅读的是本专栏的基础版,涵盖 OpenClaw 的自动化任务配置、定时任务和 Webhook 基础使用。

进阶版将带你进入真正的深度实践:复杂任务编排、多服务联动、企业级自动化架构、监控和告警等高级主题,完整掌握 OpenClaw 自动化的强大能力。


专属交流群

关注本专栏公众号,在公众号首页可以添加我的企微。

加入后你会获得:进阶版更新提醒、开发者交流群、以及专栏相关的专属资源。