OpenClaw自动化任务体系

OpenClaw + Codex 自动化任务体系

数字资产清单 拆出,记录 OpenClaw 定时任务架构与管理细节。


一、架构说明

OpenClaw 本身是一个本地运行的 AI 网关,内置 cron 调度器。Codex(OpenAI CLI 工具)则是一个能在本地执行 shell 命令的 AI agent。两者组合后形成了一条”调度 → 执行 → 通知”的自动化链路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
OpenClaw cron 触发

├── 简单任务(systemEvent)
│ └── 直接发 Slack 消息(如提醒类任务)

└── 智能任务(agentTurn)

├── OpenClaw LLM 收到 payload,调用 wrapper 脚本
│ └── *_via_codex_cli.sh

├── wrapper 脚本内部调用 codex exec
│ └── codex exec --dangerously-bypass-approvals-and-sandbox \
│ --skip-git-repo-check \
│ --output-last-message $tmp_file \
│ "$PROMPT"

├── Codex 执行实际业务脚本(如 ashare_alert、ecs_health_monitor)

└── 结果回传:脚本 stdout → codex exec → wrapper stdout → OpenClaw → Slack

为什么要两层 wrapper(OpenClaw LLM → codex exec → 脚本)?

  • OpenClaw 的 agentTurn 本质上是让 LLM 去”理解并执行”一段指令,但 OpenClaw 自身的 LLM 并不擅长稳定地执行 shell 命令。
  • 通过 wrapper 脚本桥接 codex exec,把”执行 shell”这件事交给 Codex 的沙箱环境,更可靠。
  • 同时 wrapper 脚本可以做临时文件管理、错误日志截取、超时控制等”胶水”工作,让业务脚本保持纯净。

直接执行 vs. Codex 执行的选择:

场景 方式 说明
纯文本提醒 systemEvent 不需要 LLM,零模型消耗
执行脚本并通知结果 agentTurn + codex exec wrapper 稳定可靠,Codex 负责命令执行
需要 AI 理解和决策 agentTurn + 直接 prompt 如每日质量改进,需要 AI 判断做什么改动

二、定时任务清单

数据来源:/Users/liwenye/.openclaw/cron/jobs.json(共 9 个任务)

2.1 监控巡检类

任务名 ID 频率 Agent 说明
阿里云ECS健康巡检 09a1842e 每 30 分钟 codex SSH 探测 ECS 8 项指标,异常发 Slack 告警,恢复发恢复通知,支持指纹去重抑制
OpenClaw定时任务自愈巡检 94386c7c 每小时(:12) codex 扫描所有 cron job,发现 error 状态的任务自动排查修复,跳过自身防递归

巡检项(ECS): SSH 连通性、Nginx 状态、Redis 状态、API 端口 :18080、健康接口 /actuator/health、磁盘使用率、可用内存、1 分钟负载。

自愈策略: 限流(每小时最多修复 1 个任务)、熔断(连续失败达阈值后停止)、去重(同一任务不重复修复)、加锁(防并发)。

2.2 数据查询类

任务名 ID 频率 Agent 说明
11:30 A股查询 66b61d97 工作日 11:30 codex 含节假日判断,跳过非交易日
15:00 A股查询 75d1667d 工作日 15:00 codex 收盘时段查询
每月首个交易日指数查询 612cdd0a 每月 1 日 9:30 codex 月度指数汇总
MySQL备份到本地 8d24819e 每小时(:15) main 从阿里云 ECS 拉取 MySQL 备份到本机,含 SHA256 校验

A 股查询链路: OpenClaw → ashare_via_codex_cli.sh(wrapper)→ codex execashare_alert_for_openclaw.sh(业务脚本)→ 结果通过 Slack announce 推送。

MySQL 备份链路: OpenClaw → mysql_backup_result_for_openclaw.sh(结果包装)→ mysql_backup_from_aliyun.sh(实际备份),输出 RESULT/FILE/SIZE/SHA256 结构化结果,delivery 设为 none(静默执行,仅在失败时需关注)。

2.3 生活提醒类

任务名 ID 频率 Agent 说明
房租提醒 8117075a 每月 15 日 9:00 main 通过 Slack 推送房租支付提醒
社保卡更换提醒 535dcc16 单次(at) main 一次性提醒,触发后自动完成

2.4 工程自动化类

任务名 ID 频率 Agent 说明
番茄钟后端每日质量改进 e27b30ec 每天 2:00 codex AI 自主对 pomotodo 项目做小步重构,测试通过后提交并部署到服务器

这是最”智能”的任务——不是执行固定脚本,而是让 Codex 自己判断该做什么改进(代码重构、依赖更新、测试改进等),验证通过后自动 git commit + git push + 远程部署。

三、任务管理指南

3.1 常用运维命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看所有任务
openclaw cron list --json

# 查看某个任务详情
openclaw cron list --json | jq '.jobs[] | select(.id | startswith("09a1"))'

# 手动触发一次
openclaw cron run <job-id> --expect-final --timeout 120000

# 查看运行历史
openclaw cron runs --id <job-id> --limit 20

# 暂停任务
openclaw cron disable <job-id>

# 恢复任务
openclaw cron enable <job-id>

3.2 健康监控要点

日常关注(建议每天看一眼 Slack):

  • Slack 是否有 [ECS ALERT] 告警(ECS 巡检推送)
  • 自愈巡检是否报告了 error 任务
  • A 股查询结果是否正常推送

异常排查思路:

  1. openclaw cron list --json 查看 consecutiveErrors 字段,>0 说明任务连续失败
  2. openclaw cron runs --id <job-id> --limit 5 查看最近运行日志
  3. 直接执行对应脚本验证:bash /Users/liwenye/.openclaw/workspace/<script>.sh

3.3 成本注意事项

任务类型 模型消耗 说明
systemEvent(纯提醒) 不经过 LLM
agentTurn + codex exec(脚本执行) OpenClaw LLM 调用 1 次 + Codex 调用 1 次
agentTurn(AI 自主决策) 较高 如每日质量改进,Codex 需多轮推理

当前每日预估消耗:

  • ECS 巡检:48 次/天(每 30 分钟),使用 deepseek-chat(低成本模型)
  • A 股查询:2 次/天(工作日)
  • 自愈巡检:24 次/天
  • MySQL 备份:24 次/天(但 cron 表达式为每小时,实际脚本内部控制为每 6 小时执行备份)
  • 每日质量改进:1 次/天

降本方向: 对于纯脚本执行类任务(ECS 巡检、MySQL 备份),可改为系统级 launchd 定时任务直接执行脚本,仅保留 OpenClaw 作为告警消息通道,实现零模型消耗。