乐于分享
好东西不私藏

OpenClaw 高级技能编写:工作流自动化

OpenClaw 高级技能编写:工作流自动化

OpenClaw 高级技能编写:工作流自动化

你是否有过这样的场景——每天早上要手动检查服务器状态、每周五要整理周报、每次代码部署完要发通知?这些重复性工作,完全可以交给 OpenClaw 自动完成。本文介绍四种工作流自动化能力,帮你把"闹钟"装进 AI 助手。


你能学到什么?

  • ✅ 理解 Cron Jobs、Heartbeat、Standing Orders、Webhooks 的适用场景
  • ✅ 掌握定时任务的创建和管理方法
  • ✅ 学会用 Standing Orders 实现"授权自主执行"
  • ✅ 搭建一个完整的"日报自动推送"实战案例

为什么需要工作流自动化?

没有自动化时,你是这样的:

  • 每天 9 点手动查看服务器状态
  • 每周五手动整理周报,发给团队
  • 每次 GitHub 有新 issue,要打开网页看

有了 OpenClaw 自动化,你可以:

  • 设置"每天 9 点,AI 自动检查服务器,异常时通知我"
  • 授权"每周五下午 4 点,AI 自动生成并发送周报"
  • 配置"GitHub webhook 触发时,AI 自动分类 issue 并分配负责人"

本质是:给 AI 装上"闹钟"和"触发器",让它在你定义好的时间或条件下主动行动。


一、Cron Jobs:精确的定时任务

核心概念

Cron 是 OpenClaw Gateway 内置的调度器,任务持久化在 ~/.openclaw/cron/jobs.json,重启不丢失。

三种执行模式:

模式 说明 适用场景
Main session 在主会话中运行,有完整上下文 轻量检查,需要结合上下文
Isolated 独立会话,不污染主会话历史 频繁任务、后台作业
Custom session 命名会话,跨次持久化上下文 日报、周报等连续任务

三种调度类型:

# 一次性:20分钟后提醒我
openclaw cron add \
  --name "Reminder" \
  --at "2026-03-28T16:20:00+08:00" \
  --session main \
  --system-event "Reminder: check the cron docs draft" \
  --wake now

# 间隔任务:每30分钟检查一次
openclaw cron add \
  --name "Health check" \
  --every 30m \
  --session isolated \
  --message "Check server health metrics"

# Cron表达式:每天早上9点(北京时间)
openclaw cron add \
  --name "Morning brief" \
  --cron "0 9 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "Generate morning report" \
  --announce \
  --channel weixin

高级特性

自动散布(Stagger): 每小时整点任务(如 0 * * * *)会自动添加 0~5 分钟随机偏移,避免服务器峰值压力。可以用 --exact 强制精确执行。

Webhook 投递: 任务完成后可以 POST 结果到指定 URL:

{
  "schedule": { "kind": "cron", "expr": "0 9 * * *", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "Generate daily report" },
  "delivery": { "mode": "webhook", "to": "https://your-api.com/webhook" }
}

二、Heartbeat:省力的自动巡逻

什么时候用 Heartbeat?

Heartbeat 在主会话中周期性运行(默认 30 分钟一次),适合批量检查 + 上下文感知的场景。

场景 用 Cron 还是 Heartbeat?
每 30 分钟检查一次邮件 Heartbeat(批次检查)
每天 9 点精确发周报 Cron(精确时间)
监控日历即将到来的会议 Heartbeat(上下文相关)
每周运行一次深度分析 Cron(独立任务)

Heartbeat 配置示例

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",           // 检查间隔
        target: "last",          // 推送目标
        activeHours: {           // 可选:仅在工作时间运行
          start: "08:00",
          end: "22:00"
        }
      }
    }
  }
}

Heartbeat 检查清单

HEARTBEAT.md 中定义检查逻辑,AI 每次心跳自动执行:

# Heartbeat checklist

- Check email for urgent messages
- Review calendar for events in next 2 hours
- If a background task finished, summarize results
- If idle for 8+ hours, send a brief check-in

如果无事可做,AI 会回复 HEARTBEAT_OK,不会打扰你。


三、Standing Orders:永久授权让 AI 主动出击

什么是 Standing Order?

Standing Order = 永久操作授权。 你给 AI 一份长期有效的"工作描述",AI 自主判断什么时候该行动,不需要你每次都发指令。

对比:

普通指令 Standing Order
触发方式 你每次说"发周报" AI 自己判断"周五了,该发周报了"
上下文 临时 永久在 AGENTS.md 中
重复性 每次要提醒 自动执行

如何定义 Standing Order?

放在 AGENTS.md 中,每次会话自动加载:

## Program: Weekly Status Report

**Authority:** 汇总数据、生成报告、通过企业微信发送给团队
**Trigger:** 每周五 16:00(通过 cron 强制执行)
**Approval gate:** 标准报告无需审批;指标异常(超过2σ)上报人工
**Escalation:** 数据源不可用或指标异常时停止并告警

### Execution Steps

1. 从 Grafana API 拉取本周指标
2. 对比上周同期和季度目标
3. 生成报告,保存到 Reports/weekly/YYYY-MM-DD.md
4. 通过企业微信推送摘要给团队
5. 记录执行日志

### What NOT to Do

- 不向外部第三方发送数据
- 不修改数据源配置
- 不跳过异常数据——如实报告

Standing Orders + Cron 的黄金组合

Standing Order: "你负责每日 inbox 分类"
        ↓
Cron Job(每天 8:00):"按常驻授权执行 inbox 分类"
        ↓
AI: 读取指令 → 执行步骤 → 报告结果

四、Webhooks:连接外部世界

什么时候用 Webhook?

Webhook 让外部服务主动触发 OpenClaw 执行任务:

  • GitHub 新 issue / PR → AI 自动分类
  • 客服系统 新工单 → AI 初步回复
  • 监控系统 报警 → AI 评估并通知

启用 Webhook

{
  hooks: {
    enabled: true,
    token: "your-secret-token",
    path: "/hooks",
    allowedAgentIds: ["hooks", "main"]
  }
}

端点说明

端点 作用
POST /hooks/wake 唤醒主会话,传递系统事件
POST /hooks/agent 触发独立 AI 会话处理请求

/hooks/agent 示例:

{
  "message": "新 GitHub issue:用户反馈登录失败",
  "name": "GitHub",
  "agentId": "support-bot",
  "wakeMode": "now",
  "deliver": true,
  "channel": "weixin",
  "to": "luffy"
}

五、实战:搭建日报自动推送

需求

每天早上 9 点,AI 自动汇总以下信息,通过微信推送给我:

  1. 昨天的服务器健康状态
  2. GitHub 新 issue 数量
  3. 是否有未完成的重要任务

实现步骤

Step 1:定义 Standing Order

AGENTS.md 中添加:

## Program: Daily Morning Report

**Authority:** 拉取数据、生成报告、发送到我的微信
**Trigger:** 每天 09:00 Asia/Shanghai(cron 强制)
**Approval gate:** 无;报告自动发送,异常时额外提醒
**Escalation:** 数据源不可用时,跳过该数据点并在报告中标注

### Execution Steps

1. 从 health API 获取昨日服务器状态
2. 查询 GitHub API 统计昨日新 issue
3. 检查任务系统未完成任务数
4. 生成报告(Markdown),推送到微信
5. 保存完整报告到 Reports/daily/YYYY-MM-DD.md

Step 2:创建 Cron 任务

openclaw cron add \
  --name "Daily Morning Report" \
  --cron "0 9 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "Execute daily morning report per standing orders" \
  --announce \
  --channel weixin

Step 3:验证和调整

运行后检查报告质量,根据需要调整 Standing Order 中的指令细节。


总结

能力 核心价值 典型场景
Cron Jobs 精确时间执行 每天 9 点发日报
Heartbeat 周期巡逻 + 上下文感知 邮件+日历+通知批量检查
Standing Orders 永久授权自主决策 周报、inbox 分类等周期性任务
Webhooks 外部事件触发 GitHub issue 自动分类

四种能力可以组合使用:Cron 负责"什么时候做",Standing Orders 负责"做什么",Heartbeat 负责"平时巡逻",Webhook 负责"外部触发"。

掌握这四件套,你的 OpenClaw 就不再只是一个被动的问答助手,而是一个能主动帮你打理日常工作的数字员工。


如果觉得有用,欢迎转发给有需要的朋友 👋