CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
OpenClaw 实战入门/课时/自动化
RawBlame
课时目录12 节

OpenClaw 实战入门

  1. 01OpenClaw 概览
  2. 02安装与部署
  3. 03Workspace 文件
  4. 04Gateway 与上下文
  5. 05模型与 Provider
  6. 06Channels 集成
  7. 07Skills 生态
  8. 08Memory 系统
  9. 09Agents 与路由
  10. 10自动化
  11. 11安全
  12. 12运维与插件

自动化

Cron、Hooks 与 Webhooks。

30 分钟

自动化

这一课你将能做到

  1. 用 openclaw automations(或 openclaw cron)创建定时任务
  2. 配置 webhook 接收外部事件并触发 bot 动作
  3. 理解 hooks 与 heartbeats 在自动化体系中的角色

为什么要学

团队里最有价值的 bot 不是「你问它答」,而是「不用你问,它主动做」:每天早上 9 点发昨日 PR 汇总、收到 GitHub webhook 就自动评审、每小时检查一次服务健康。这一课把 bot 从「被动问答机」升级为「主动同事」。

人话:自动化是 OpenClaw 的「闹钟」和「神经反射」——到点做事,遇事反应。

先建立图像

触发源(Trigger)
  ├── Cron:定时触发(每天 9:00、每小时、每周一)
  ├── Webhook:外部事件(GitHub PR、CI 完成、监控告警)
  ├── Hook:内部事件(消息收到、任务完成、错误发生)
  └── Heartbeat:周期自检(每 5 分钟检查一次状态)
        │
        ▼
  OpenClaw Gateway ──→ 路由到指定 Agent
        │
        ▼
  执行动作
  ├── 生成文本回复(发消息到 Slack/Telegram)
  ├── 调用工具(执行脚本、查 API)
  └── 调用 webhook(通知外部系统)

跟着做

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

# 每天早上 9 点发晨报
openclaw automations create "0 9 * * *" \
  "汇总昨天到今天的主要变更,发晨报" \
  --name "Morning Brief" \
  --channel telegram \
  --to "-1001234567890"

步骤 2:创建带时区的定时任务

# 每周一到五下午 6 点发部署汇总(上海时区)
openclaw automations create "0 18 * * 1-5" \
  "Summarize today's deploys as JSON." \
  --name "Deploy Digest" \
  --tz "Asia/Shanghai" \
  --webhook "https://hooks.slack.com/services/XXX/YYY/ZZZ"

步骤 3:查看与管理任务

openclaw automations list
openclaw automations list --json

# 查看任务执行历史
openclaw automations history --name "Morning Brief"

步骤 4:配置 Webhook 接收外部事件

编辑 ~/.openclaw/openclaw.json:

{
  "webhooks": {
    "github-pr": {
      "path": "/webhooks/github-pr",
      "agentId": "reviewer",
      "secret": "${GITHUB_WEBHOOK_SECRET}"
    }
  }
}

然后 GitHub 仓库设置 Webhook URL 为 https://your-server:18789/webhooks/github-pr,事件触发时自动路由到 reviewer agent。

步骤 5:配置 Hook(内部事件)

{
  "hooks": {
    "onMessage": {
      "enabled": true,
      "script": "~/.openclaw/hooks/log-message.sh"
    }
  }
}

步骤 6:查看自动化 CLI 帮助

openclaw automations --help
openclaw hooks --help
openclaw webhooks --help

讲清楚要点

  1. cron 表达式是标准五字段:分 时 日 月 周, 是每天 9 点, 是每 15 分钟。 指定时区,避免服务器时区与业务时区不一致。
0 9 * * *
*/15 * * * *
--tz
  • webhook 需要 secret 验证:外部系统(GitHub、GitLab)推事件时带 secret,Gateway 校验后才执行,防伪造事件攻击。
  • hook 是轻量脚本:内部事件触发时执行本地脚本,适合日志记录、简单通知、状态同步,不适合复杂逻辑。
  • heartbeat 是 agent 的周期自检:配置后 agent 定期「醒来」检查状态(比如「检查是否有未读告警」),有异常才发消息,正常则静默。
  • 任务失败有告警配置:cron.failureAlert 可配置失败时通知哪个渠道、哪个人,避免任务静默失败。
  • 你可能会懵的地方

    • cron 和 heartbeat 什么区别? cron 是「到点执行固定动作」;heartbeat 是「定期检查状态,有异常才动作」。cron 是 schedule-driven,heartbeat 是 condition-driven。一个晨报用 cron,一个告警检查用 heartbeat。

    • webhook 和 hook 什么区别? webhook 是「外部系统推事件进来」;hook 是「内部事件发生时执行脚本」。一个是入口,一个是出口/副作用。

    • 定时任务执行时 bot 的上下文是什么? 定时任务会创建新会话,agent 读取 workspace 和 memory,但没有「用户消息历史」。任务 prompt 要自包含,别写「回复刚才那个问题」。

    • 任务执行失败会重试吗? 会,有重试策略。连续失败会进入告警流程(若配置了 cron.failureAlert)。可用 automations history 查看失败原因。

    • 如何调试 webhook 不触发? 确认 Gateway 绑定了非 loopback 地址(webhook 需要外部可达);确认 secret 匹配;用 openclaw logs --tail 50 看请求日志;用 curl 手动模拟 webhook 调用测试。

    错法对照

    错法问题正解
    cron 表达式不写时区服务器 UTC 时区导致 9 点变 17 点--tz "Asia/Shanghai" 明确指定
    webhook 不配 secret任何人都能伪造事件触发 bot配置 secret 并校验
    任务 prompt 写「回复用户」定时任务没有用户上下文prompt 自包含:「生成晨报并发送到 Slack #general」
    hook 里写复杂业务逻辑脚本超时、难调试、难维护hook 只做轻量通知,复杂逻辑走 skills 或外部服务
    任务失败不管静默失败,晨报三天没发没人知道配置 cron.failureAlert 到值班渠道

    卡点急救

    1. 定时任务没执行:automations list 确认任务存在且启用;automations history 看最近执行记录;检查 Gateway 是否在运行(gateway status)。
    2. webhook 收不到:确认 Gateway 监听地址非 127.0.0.1;确认防火墙放行;用 curl -X POST 本地测试 webhook 端点。
    3. 任务执行了但没发消息:确认 --channel 和 --to 参数正确;确认渠道状态正常(channels status --probe);看死信队列(channels dead-letters list)。

    面试常问

    • OpenClaw 自动化体系的四种触发方式及适用场景? Cron:固定时间表,如晨报、周报;Webhook:外部系统事件,如 GitHub PR、CI 完成;Hook:内部事件副作用,如消息日志、状态同步;Heartbeat:周期条件检查,如告警轮询、健康检查。四者覆盖「定时」「事件」「内部联动」「条件轮询」四大自动化需求。

    • 如何保证 webhook 安全? 三层:传输层 HTTPS;验证层 secret 校验(HMAC 签名);权限层 webhook 触发的 agent 操作仍需遵守该 agent 的工具权限和审批规则。secret 用环境变量注入,不写死配置。

    • 定时任务与 CI/CD 定时任务的区别? CI/CD 定时任务是确定性流水线(构建、测试、部署),失败即失败;OpenClaw 定时任务是 LLM agent 执行,结果有不确定性,适合「生成摘要」「撰写报告」「智能提醒」等需要理解力的场景。两者互补:CI 管确定性,OpenClaw 管理解性。

    自测三问

    1. cron、webhook、hook、heartbeat 四者的触发源分别是什么?
    2. 为什么定时任务的 prompt 要自包含?
    3. webhook 的 secret 校验解决了什么安全问题?

    小结一句话

    自动化让 bot 主动工作:cron 管定时、webhook 管事件、hook 管联动、heartbeat 管巡检,四种触发覆盖团队所有「不用人催」的场景。

    延伸

    • 自动化概念
    • Cron CLI 参考
    • 下一课:安全——allowlist、审计、提示注入防护,把 bot 的权限关进笼子。
    加载本节练习…
    ← 上一课Agents 与路由下一课 →安全