教程

OpenClaw Cron Jobs 完全指南:定时任务、孤立执行与多频道投递配置

OpenClaw Cron Jobs 完整配置指南:三种调度模式(一次性/固定间隔/Cron 表达式)、Main/Isolated 两种执行模式、多频道投递配置(Telegram/WhatsApp/Slack)、模型覆盖、多 Agent 绑定、重试策略,以及常用 CLI 命令和问题排查。

2026/3/105分钟 阅读ClaudeEagle

OpenClaw 内置 Gateway 调度器(Cron),可持久化定时任务,在指定时间唤醒 Agent,并将输出投递到聊天频道。无论是「每天早上运行」还是「20 分钟后提醒我」,Cron 都是实现机制。

核心概念速览

  • Cron 运行在 Gateway 内部(不在模型内部)
  • 任务持久化在 ~/.openclaw/cron/ 下,重启不丢失
  • 两种执行模式:Main Session(主会话)和 Isolated(隔离会话)
  • 支持 Webhook 投递(HTTP POST)

快速开始

创建一次性提醒

bash
openclaw cron add \
  --name "提醒" \
  --at "2026-02-01T16:00:00Z" \
  --session main \
  --system-event "提醒:查看 Cron 文档" \
  --wake now \
  --delete-after-run

openclaw cron list
openclaw cron run <job-id>

创建每日定时隔离任务

bash
openclaw cron add \
  --name "早间简报" \
  --cron "0 7 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "总结昨晚的更新。" \
  --announce \
  --channel telegram \
  --to "你的Chat ID"

三种调度模式

调度类型语法说明
一次性--at "2026-02-01T16:00:00Z"--at "20m"指定时间点执行一次
固定间隔schedule.kind = "every"everyMs(毫秒)每隔固定时间执行
Cron 表达式--cron "0 7 * * *" --tz "Asia/Shanghai"标准 5/6 字段 Cron 表达式

注意:顶部整点(如 0 * * * *)会自动随机偏移最多 5 分钟,避免大量 Gateway 同时触发。用 --exact 强制准时。

两种执行模式

Main Session(主会话)

  • 将系统事件加入队列,在下次心跳时执行
  • wakeMode: "now" → 立即触发心跳(默认)
  • wakeMode: "next-heartbeat" → 等待下次定时心跳
  • 适合需要主会话上下文的任务
json
{
  "name": "待办提醒",
  "schedule": { "kind": "at", "at": "2026-02-01T16:00:00Z" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": { "kind": "systemEvent", "text": "提醒:提交费用报告" },
  "deleteAfterRun": true
}

Isolated(隔离会话)

  • cron:<jobId> 专属 Session 中独立运行
  • 每次运行启动全新 Session(无历史记录携带)
  • 默认投递模式:announce(发送到目标频道)
  • 适合「嘈杂」、高频或「后台杂务」类任务
json
{
  "name": "每日简报",
  "schedule": { "kind": "cron", "expr": "0 7 * * *", "tz": "Asia/Shanghai" },
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "message": "总结今天的收件箱和日程。",
    "lightContext": true
  },
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "-1001234567890",
    "bestEffort": true
  }
}

投递模式

模式说明
announce发送到目标频道,并在主会话发送简短摘要
webhookHTTP POST 到指定 URL
none仅内部执行,不投递

Telegram 频道主题(Forum Thread)

bash
openclaw cron add \
  --name "夜间摘要" \
  --cron "0 22 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "总结今天;发到夜间主题。" \
  --announce \
  --channel telegram \
  --to "-1001234567890:topic:123"

高级功能

模型和思维级别覆盖

隔离任务可以使用与主会话不同的模型:

bash
openclaw cron add \
  --name "深度分析" \
  --cron "0 6 * * 1" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "每周深度分析项目进展。" \
  --model "opus" \
  --thinking high \
  --announce \
  --channel telegram \
  --to "你的Chat ID"

多 Agent 指定

bash
# 将任务绑定到特定 Agent
openclaw cron add --name "运维检查" --cron "0 6 * * *" --session isolated --message "检查运维队列" --agent ops

# 修改现有任务的 Agent
openclaw cron edit <jobId> --agent ops

轻量上下文(lightContext)

不需要工作区启动文件的任务可设置 --light-context,减少 Token 消耗:

bash
openclaw cron add --name "状态检查" --cron "*/30 * * * *" --session isolated --message "执行状态检查" --light-context --announce

重试策略

一次性任务

  • 临时错误(限速、网络、5xx):最多重试 3 次,指数退避(30s → 1m → 5m)
  • 永久错误(认证失败、配置错误):立即禁用

周期性任务

  • 任何错误:指数退避(30s → 1m → 5m → 15m → 60m)
  • 任务保持启用;下次成功后退避重置

配置文件

json
{
  "cron": {
    "enabled": true,
    "store": "~/.openclaw/cron/jobs.json",
    "maxConcurrentRuns": 1,
    "retry": {
      "maxAttempts": 3,
      "backoffMs": [60000, 120000, 300000]
    },
    "webhookToken": "your-token-here",
    "sessionRetention": "24h",
    "runLog": {
      "maxBytes": "2mb",
      "keepLines": 2000
    }
  }
}

常用 CLI 命令

bash
# 列出所有任务
openclaw cron list

# 立即运行某任务
openclaw cron run <jobId>

# 查看运行历史
openclaw cron runs --id <jobId> --limit 50

# 编辑任务
openclaw cron edit <jobId> --message "更新的提示词"

# 删除任务
openclaw cron remove <jobId>

# 发送即时系统事件(不创建任务)
openclaw system event --mode now --text "下次心跳:检查电量。"

常见问题排查

任务不执行:检查 cron.enabledOPENCLAW_SKIP_CRON 环境变量;确认 Gateway 持续运行。

时区问题:确认 --tz 参数与预期时区一致(推荐使用 Asia/Shanghai)。

Telegram 投递到错误位置:论坛主题使用 -100…:topic:<id> 格式,明确指定主题 ID。


原文:Cron Jobs - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

教程OpenClaw Cron Jobs 自动化指南:定时任务、隔离会话与多渠道推送OpenClaw 内置 Gateway 调度器支持持久化定时任务,可按时唤醒 AI Agent 并将结果推送到 Telegram、Slack 等频道。本文详解一次性提醒、循环任务、主会话 vs 隔离会话两种执行模式、Announce/Webhook/无推送三种输出方式,附大量实用示例。2026/2/27教程OpenClaw Cron 定时任务与 Heartbeat 完全指南:让 AI 助手 24 小时主动工作OpenClaw Cron 定时任务与 Heartbeat 完整教程:Cron 表达式配置、Heartbeat 轮询机制、HEARTBEAT.md 编写、定时发送通知、周期性数据检查、自动日报生成,以及 Cron vs Heartbeat 选择指南和最佳实践。2026/3/15教程OpenClaw Hooks 系统指南:事件驱动自动化与自定义 Handler 开发OpenClaw Hooks 事件驱动系统完整指南:4 个内置 Hook 详解(session-memory/bootstrap-extra-files/command-logger/boot-md)、HOOK.md 格式规范、handler.ts 实现示例、全部事件类型(命令/Session/Agent/Gateway/消息),5 步创建自定义 Hook 与最佳实践。2026/3/10教程Claude Code 定时任务(Scheduled Tasks)完全指南:/loop 命令、Cron 表达式与三日自动过期Claude Code 定时任务完整指南:/loop Bundled Skill(三种间隔写法:前置 token/trailing every/默认 10 分钟;对 Skill 命令循环执行)、一次性自然语言提醒(自动删除)、CronCreate/CronList/CronDelete 三个底层工具、运行机制(低优先级/两轮之间触发/本地时区)、随机延迟机制(重复任务 0~10% 偏移/单次任务 90 秒)、三日自动过期、Cron 表达式参考表、CLAUDE_CODE_DISABLE_CRON 禁用,以及会话级局限性(退出消失/无补偿/无持久化)和持久化替代方案(Desktop/GitHub Actions)。2026/3/8教程Claude Code Cron 定时任务完全指南:定时提醒、自动报告与后台自动化OpenClaw Cron 定时任务完全指南:配置语法、常用时间表达式、每日早报/代码健康检查/服务监控等实用场景示例,以及 Cron vs Heartbeat 的选择策略和任务会话隔离机制。2026/3/1教程OpenClaw Standing Orders 完全指南:让 AI 记住你的长期规则和行为偏好OpenClaw Standing Orders(常驻指令)功能完整教程:Standing Orders 与 SOUL.md 的区别(动态运行时规则 vs 静态人格文件)、通过对话动态添加/查看/删除常驻指令、指令的持久化存储与跨会话生效机制、适合写入 Standing Orders 的内容类型(格式偏好/禁止行为/固定工作流)、与 Hooks 的协同使用、按渠道/Agent 设置不同的 Standing Orders,以及常驻指令的最佳实践(写清晰的规则、避免矛盾冲突、定期清理过时规则)。2026/3/26