为什么需要工作流自动化?
手动执行重复任务是效率杀手。通过 OpenClaw 的 Cron 系统和子 Agent 调度,你可以构建 24/7 运行的自动化流水线——从内容生成、社区运营到数据分析,全部自动完成。
OpenClaw 自动化架构
| 组件 | 功能 | 适用场景 |
|---|---|---|
| Cron Jobs | 定时触发任务 | 每日报告、定时发帖 |
| 子 Agent | 并行执行子任务 | 批量处理、复杂流程 |
| 系统事件 | 内部消息触发 | 心跳、状态检查 |
| Webhook | 外部事件触发 | GitHub PR、API 回调 |
Cron 任务详解
任务类型
| 类型 | payload.kind | 说明 |
|---|---|---|
| 系统事件 | systemEvent | 注入文本到主会话 |
| Agent 轮次 | agentTurn | 运行独立 Agent 任务 |
调度类型
# 1. 一次性任务 (at)
{ "kind": "at", "at": "2026-06-11T08:00:00+08:00" }
# 2. 周期性任务 (every)
{ "kind": "every", "everyMs": 3600000 } // 每小时
# 3. Cron 表达式 (cron)
{ "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" } // 每天 08:00
实战示例
示例 1:每日 AI 新闻日报
# 创建定时任务
cron add --job '{
"name": "daily-ai-news",
"schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "执行每日AI新闻日报任务:1) 搜索最新AI新闻 2) 生成HTML页面 3) 保存到 /var/www/miaoquai/news/ 4) 更新sitemap 5) 发送Discord通知"
},
"sessionTarget": "isolated",
"delivery": { "mode": "announce", "channel": "feishu" }
}'
示例 2:每 2 小时 RSS 聚合
# 创建 RSS 聚合任务
cron add --job '{
"name": "rss-aggregation",
"schedule": { "kind": "every", "everyMs": 7200000 },
"payload": {
"kind": "agentTurn",
"message": "执行RSS聚合:1) 抓取订阅源 2) 解析新文章 3) 生成聚合页面 4) 更新 /var/www/miaoquai/rss/"
},
"sessionTarget": "isolated"
}'
示例 3:社区运营任务链
# 上午运营任务
cron add --job '{
"name": "morning-community",
"schedule": { "kind": "cron", "expr": "0 10 * * *", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "社区运营任务:1) 发送今日技术话题到Discord 2) 回复Moltbook上的新评论 3) 搜索最新AI热点"
},
"sessionTarget": "isolated"
}'
# 下午运营任务
cron add --job '{
"name": "afternoon-community",
"schedule": { "kind": "cron", "expr": "0 16 * * *", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "社区运营:1) 发送踩坑故事到Discord 2) 推荐AI工具 3) 互动话题讨论"
},
"sessionTarget": "isolated"
}'
子 Agent 调度
何时使用子 Agent?
💡 使用子 Agent 的场景:
- 任务复杂,需要独立上下文
- 并行执行多个子任务
- 需要不同模型处理不同任务
- 任务可能失败,需要隔离
# 使用 sessions_spawn 创建子 Agent
sessions_spawn --task "分析 /var/www/miaoquai/ 的死链" \
--taskName "link-checker" \
--mode run
# 等待子 Agent 完成
sessions_yield
# 查看子 Agent 状态
subagents list
妙趣AI 每日自动化时间表
01:00 - 大规模 SEO 页面生成
02:00 - SEO 巡检(死链/meta/sitemap)
03:00 - 竞品监控分析
04:00 - 术语百科页面生成
05:00 - 热点追踪(第1次)
06:00 - 踩坑实录创作
08:00 - AI 新闻日报
10:00 - 社区运营(上午)
12:00 - 热点追踪(第2次)
16:00 - 社区运营(下午)
21:00 - 社区运营(晚间)
22:00 - 每日营销报告
23:00 - 内部链接优化
任务管理命令
# 查看所有任务
cron list
# 查看任务详情
cron get --jobId <id>
# 手动触发任务
cron run --jobId <id>
# 查看执行历史
cron runs --jobId <id>
# 禁用任务
cron update --jobId <id> --patch '{"enabled": false}'
# 删除任务
cron remove --jobId <id>
最佳实践
✅ DO:
- 为每个任务设置合理的超时时间
- 使用 sessionTarget="isolated" 隔离任务
- 配置 delivery 通知任务完成状态
- 定期检查任务执行日志
- 使用 deleteAfterRun 清理一次性任务
⚠️ 注意:
- 避免在同一时间段安排过多任务
- 考虑 API 限流(如 Discord、GitHub)
- systemEvent 只能用于 main 会话
- agentTurn 必须用于 isolated/current/session