第4章 - 自动化工作流
嗨,朋友!这一章我们来聊聊如何用 OpenClaw 构建自动化工作流。让 AI 助手主动帮你完成任务,而不是等你下命令——这才是真正的效率提升!
🤔 什么是自动化工作流?
自动化工作流就是让 OpenClaw 自动触发、自动执行的任务链。比如:
- 每天早上 8 点自动给你发一份服务器状态报告
- 收到特定邮件时自动提取内容并通知你
- GitHub 有新 Issue 时自动分析并给出建议
- 定时备份数据库并通知结果
触发器(时间/事件/Webhook)
│
▼
OpenClaw 接收触发
│
▼
AI 执行预设任务
│
▼
将结果发送到聊天渠道
⏰ 定时任务(Cron)
通过聊天设置
最简单的方式是直接告诉 OpenClaw:
你:每天早上 8 点给我发一份服务器健康报告,包括 CPU、内存、磁盘和网络状态
AI 会自动使用内置的 cron 工具创建定时任务。
定时任务示例
| 场景 | 对话示例 |
|---|---|
| 每日报告 | "每天早上 9 点给我发系统状态报告" |
| 定期备份 | "每周日凌晨 2 点备份 /data 目录到 /backup" |
| 监控告警 | "每 10 分钟检查一次 nginx,如果挂了就重启并通知我" |
| 提醒 | "每天下午 5:30 提醒我下班前提交代码" |
管理定时任务
你:列出所有定时任务
你:取消"每日报告"这个定时任务
你:把"每日报告"改到早上 7 点
🔗 Webhook 触发
OpenClaw 支持 Webhook,可以接收外部系统的事件通知。
配置 Webhook
Webhook 通过 Gateway 的 Web 接口暴露:
{
"gateway": {
"webhook": {
"enabled": true
}
}
}
使用场景
GitHub Webhook
当仓库有新的 Push 或 Issue 时触发:
GitHub Push 事件
│
▼
OpenClaw Webhook 接收
│
▼
AI 分析变更内容
│
▼
通过 Telegram 通知你:
"仓库 xxx 有新提交:修复了登录页面的 bug"
监控告警 Webhook
当 Prometheus/Grafana 触发告警时:
Grafana 告警
│
▼
OpenClaw Webhook
│
▼
AI 分析告警内容
│
▼
通过 WhatsApp 通知你并建议修复方案
提示
Webhook 的详细配置请参考官方文档:Webhook 配置
📧 Gmail 集成
OpenClaw 支持 Gmail Pub/Sub 集成,可以在收到邮件时自动触发任务。
使用场景
收到新邮件
│
▼
OpenClaw 自动分类
│
├─ 重要邮件 → 立即通知你
├─ 工作邮件 → 提取要点并总结
└─ 垃圾邮件 → 标记并归档
配置参考
详细的 Gmail Pub/Sub 配置请参考:Gmail 集成指南
🛠️ 自定义自动化脚本
结合系统 crontab 和 OpenClaw CLI,你可以创建强大的自动化流程:
示例:每日安全审计
#!/bin/bash
# 保存为 ~/scripts/daily-audit.sh
# 收集安全信息
REPORT=$(cat << EOF
请分析以下安全信息并生成报告:
1. 最近的登录记录:
$(last -10)
2. 失败的 SSH 登录尝试:
$(grep "Failed password" /var/log/auth.log | tail -10)
3. 系统更新状态:
$(apt list --upgradable 2>/dev/null | head -20)
4. 磁盘使用:
$(df -h)
5. 异常进程:
$(ps aux --sort=-%cpu | head -10)
请用中文给出安全分析报告,如果发现异常请重点标注。
EOF
)
# 发送给 OpenClaw
openclaw agent --message "$REPORT" --thinking high
chmod +x ~/scripts/daily-audit.sh
# 添加到 crontab,每天早上 7 点运行
crontab -e
# 添加:0 7 * * * /home/openclaw/scripts/daily-audit.sh
示例:网站可用性监控
#!/bin/bash
# 保存为 ~/scripts/check-websites.sh
SITES=("https://your-site.com" "https://api.your-site.com")
for site in "${SITES[@]}"; do
STATUS=$(curl -o /dev/null -s -w "%{http_code}" "$site" --max-time 10)
if [ "$STATUS" != "200" ]; then
openclaw agent --message "⚠️ 告警:$site 返回状态码 $STATUS,可能已经挂了!请帮我检查一下原因。"
fi
done
chmod +x ~/scripts/check-websites.sh
# 每 5 分钟检查一次
crontab -e
# 添加:*/5 * * * * /home/openclaw/scripts/check-websites.sh
示例:日志异常检测
#!/bin/bash
# 保存为 ~/scripts/log-monitor.sh
# 检查最近 5 分钟的错误日志
ERRORS=$(journalctl --since "5 minutes ago" --priority=err --no-pager 2>/dev/null)
if [ -n "$ERRORS" ]; then
openclaw agent --message "系统在最近 5 分钟内出现了错误日志,请帮我分析:
$ERRORS"
fi
📋 自动化工作流模板
模板1:运维值班助手
定时任务:
- 每 5 分钟:检查服务状态
- 每小时:检查系统资源
- 每天早上:生成日报
- 每天晚上:执行安全审计
告警规则:
- CPU > 80%:通知
- 内存 > 90%:通知
- 磁盘 > 85%:通知
- 服务挂了:立即通知并尝试重启
模板2:开发助手
Webhook 触发:
- GitHub Push:代码审查提醒
- CI/CD 失败:通知并分析原因
- 新 Issue:自动分类和分配
定时任务:
- 每天早上:拉取最新代码并运行测试
- 每周一:生成上周代码统计报告
💡 自动化最佳实践
- 从小处开始 - 先自动化一个简单的任务,熟悉后再扩展
- 添加日志 - 所有自动化脚本都应该记录日志
- 错误处理 - 脚本失败时应该通知你,而不是默默失败
- 权限最小化 - 自动化脚本只给必要的权限
- 定期检查 - 定期验证自动化任务是否正常工作
💪 练习题
- 编写一个脚本,每天早上 8 点检查服务器状态并通过 OpenClaw 发送报告。
- 如何使用 Webhook 接收 GitHub 事件通知?
- 设计一个适合你工作场景的自动化方案。
答案提示
- 参考"每日安全审计"示例,修改为你需要的检查项
- 在 GitHub 仓库 Settings → Webhooks 中配置 OpenClaw 的 Webhook URL
- 结合定时任务和 Webhook,根据实际需求设计
下一步: 第5章 - 故障排除 →
