Delivery 三要素

mode + channel + to 是原子结构,少一个 = 静默失败。cron add 不会报错,任务照常创建,但永远不会投递。

# 正确的创建姿势:显式指定全部三要素
openclaw cron add \
  --name "RSS快报" \
  --schedule "0 */3 * * *" \
  --agent main \
  --mode channel \
  --channel discord \
  --to "1234567890"

# 常见错误:漏了 --to
# openclaw cron add --name "RSS快报" --schedule "0 */3 * * *" \
#   --agent main --mode channel --channel discord
# 结果:任务创建了,永远不会投递,不报错

常用命令

# 查看所有任务(JSON 格式方便解析)
openclaw cron list --json

# 编辑任务(改投递目标最常用)
openclaw cron edit <job-id> \
  --agent main \
  --to <new-channel-id> \
  --channel discord

# 手动触发(调试用,设长超时)
openclaw cron run <job-id> --timeout 90000

# 启用 restart 命令(调试完别忘了关)
openclaw config set commands.restart true --json

已配置任务一览

任务名周期通道用途
Gmail摘要每日 8:00Discord汇总未读邮件,AI 提取重点
垃圾评论清理每日 6:00Discord扫描博客评论,自动标记垃圾
爬虫分析每日 22:00Discord分析当日访问日志,识别异常爬虫
安全巡检每日 3:00Discord检查服务器安全状态、证书过期、端口暴露
RSS 3h快报每3小时Discord抓取订阅源,关键词过滤,生成快报
RSS周报每周一 9:00Discord汇总一周 RSS 精华,深度分析
加密货币每日 9:00Discord行情快照 + 异动提醒
黄利巡检每日 7:00DingTalk机器人云平台巡检,故障汇总

调试技巧

  1. 先用 cron list --json 拿到 job-id
  2. cron run <job-id> --timeout 90000 手动触发,设够长的超时
  3. 看日志确认投递:openclaw logs --limit 50 --plain --local-time
  4. 投递失败先查 delivery 三要素,再查通道配置

Cron 的设计哲学:不校验是你的自由,投递失败是你的问题。用 wrapper 脚本在 cron add 前校验三要素,是唯一的正确姿势。