OpenClaw 怎么设置定时任务?让 AI 按时自动执行工作的完整教程

为什么要用定时任务?

OpenClaw 定时任务配置截图

很多运营工作是重复的:每天发日报、每周检查死链、每月清理过期数据、每隔几小时刷新缓存。这些事情不难,但每次都要人工触发就很烦。

OpenClaw 内置了定时任务系统(Cron),可以让 AI 按照你设定的时间自动执行工作。设置一次,之后就是全自动。

这篇教程从最简单的一次性提醒开始,一步步教你掌握 OpenClaw 的定时任务功能。

三种调度类型

OpenClaw 支持三种时间调度方式,覆盖不同场景:

at——一次性任务

到了指定时间执行一次,执行完自动删除。适合提醒、倒计时类任务。

# 20 分钟后提醒我检查文档
openclaw cron add \
  --name "检查文档提醒" \
  --at "20m" \
  --session main \
  --system-event "提醒:去检查一下文档发布情况" \
  --delete-after-run

every——固定间隔

每隔固定时间执行一次,不关心具体几点。适合轮询、心跳类任务。

# 每 6 小时检查一次网站是否正常
openclaw cron add \
  --name "网站健康检查" \
  --every "6h" \
  --session isolated \
  --agent-turn "检查 361sale.com 是否正常访问,如果有异常立即告警"

cron——标准表达式

最灵活的方式,用 5 位 cron 表达式精确控制执行时间。适合”每天早上 9 点””每周一上午 10 点”这种精确需求。

# 每天早上 9 点生成日报
openclaw cron add \
  --name "每日日报" \
  --cron "0 9 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --agent-turn "生成昨天的运营数据摘要"

cron 表达式格式:分 时 日 月 周。常用示例:

  • 0 9 * * * → 每天 9:00
  • 0 9 * * 1 → 每周一 9:00
  • 0 */6 * * * → 每 6 小时整点
  • 30 8 1 * * → 每月 1 号 8:30

创建一次性提醒

最简单的用法——设置一个定时提醒:

openclaw cron add \
  --name "会议提醒" \
  --at "2026-05-20T14:00:00+08:00" \
  --session main \
  --system-event "提醒:14:00 有产品评审会议" \
  --wake now \
  --delete-after-run

Explication du paramètre :

  • --at:具体时间点(ISO 8601 格式),不带时区按 UTC 算
  • --session main:在主会话中执行(你会在当前对话里看到提醒)
  • --system-event:提醒内容
  • --wake now:立即唤醒会话处理这个事件
  • --delete-after-run:执行完自动删除这个 job

也支持相对时间:--at "30m"(30 分钟后)、--at "2h"(2 小时后)。

创建每日重复任务

比如每天早上 9 点让 AI 检查网站收录情况:

openclaw cron add \
  --name "每日收录检查" \
  --cron "0 9 * * *" \
  --tz "Europe/Berlin" \
  --session isolated \
  --agent-turn "检查 361sale.com 在 Google 的最新收录情况,列出昨天新收录的页面和未收录的页面。"

dépense ou frais --tz 指定时区很重要。如果你在柏林,用 Europe/Berlin;在上海,用 Asia/Shanghai。不设时区默认按服务器本地时区。

配置执行方式

OpenClaw 安装配置截图

OpenClaw 的 cron job 有四种执行方式:

  • principal:在你的主对话会话中执行。适合提醒类任务,你会直接在对话里看到结果。只能用 system-event 类型。
  • isolated(推荐):在独立的临时会话中执行。不会干扰你的主对话,执行完会话自动清理。
  • current:绑定到创建时的当前会话。适合需要上下文的重复任务。
  • session:自定义ID:在一个持久化的命名会话中执行。适合需要积累历史的工作流。

大部分场景用 isolated 就够了。只有需要 AI 记住上次执行结果时,才用 session:xxx.

配置 Delivery 推送结果

执行完之后,你可能想把结果推送到某个地方:

openclaw cron add \
  --name "周报生成" \
  --cron "0 10 * * 1" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --agent-turn "生成上周的 SEO 周报,包括流量趋势、排名变化、新增收录。" \
  --delivery announce \
  --delivery-channel telegram \
  --delivery-to "-100123456789"

delivery 支持三种模式:

  • announce:推送到聊天渠道
  • webhook:POST 到指定 URL
  • aucun:不推送,只在任务记录里留痕

管理定时任务

创建完 job 后,日常管理用这几个命令:

# 列出所有 job
openclaw cron list

# 查看某个 job 详情
openclaw cron get <job-id>

# 查看执行历史
openclaw cron runs --id <job-id>

# 手动触发一次(测试用)
openclaw cron run <job-id>

# 暂停一个 job(不删除)
openclaw cron update <job-id> --enabled false

# 恢复
openclaw cron update <job-id> --enabled true

# 删除
openclaw cron remove <job-id>

建议每次创建新 job 后,先用 openclaw cron run 手动触发一次,确认执行正常再等自动调度。

用 JSON5 文件管理复杂任务

如果你的任务配置比较复杂,用命令行参数写起来太长,可以写成 JSON5 文件:

// daily-seo-check.json5
{
  name: "每日 SEO 巡检",
  schedule: {
    kind: "cron",
    expr: "0 8 * * *",
    tz: "Europe/Berlin"
  },
  payload: {
    kind: "agentTurn",
    message: "执行每日 SEO 巡检:1) 检查网站是否正常访问;2) 检查昨天发布的文章是否被收录;3) 检查是否有 5xx 错误;4) 检查核心关键词排名变化。输出简洁报告。",
    timeoutSeconds: 180
  },
  delivery: {
    mode: "announce",
    channel: "telegram",
    to: "-100123456789"
  },
  sessionTarget: "isolated"
}

然后一行命令导入:

openclaw cron add --file daily-seo-check.json5

problèmes courants

Q1:cron 表达式写错了怎么办?

dépense ou frais openclaw cron update <job-id> --cron "新表达式" 修改。或者直接编辑 ~/.openclaw/cron/jobs.json 文件,Gateway 会自动检测变化。

Q2:Gateway 重启后定时任务会丢失吗?

不会。所有 job 持久化在 ~/.openclaw/cron/jobs.json,重启后自动恢复。运行状态在 jobs-state.json 里。

Q3:任务执行超时怎么办?

在 payload 里设置 timeoutSeconds。默认值可能不够复杂任务使用,建议设 120-300 秒。超时后任务会被标记为 timed_out。

Q4:怎么知道任务有没有正常执行?

dépense ou frais openclaw cron runs --id <job-id> 查看历史。每次执行都有状态记录:succeeded、failed、timed_out。也可以用 openclaw tasks audit 做整体健康检查。

Q5:能不能设置任务失败后自动告警?

可以。在 job 配置里加 failureAlert 字段,指定连续失败几次后告警、告警发到哪里。

Q6:isolated 会话执行完后数据还在吗?

执行记录保留 7 天,之后自动清理。如果你需要长期保留执行结果,用 delivery 推送到外部渠道,或者用 session:xxx 模式让 AI 在持久会话里积累历史。

相关教程推荐

résumés

OpenClaw 的定时任务功能让你把所有重复性工作自动化:一次性提醒用 at,固定间隔用 every,精确时间用 cron 表达式。配合 delivery 推送,执行结果自动发到你的群里。

核心就是:选对调度类型 → 写好 AI 指令 → 配好推送 → 测试一次确认正常。之后就是全自动。

更多定时任务高级用法,参考官方文档:OpenClaw Scheduled Tasks 文档.

官方文档:OpenClaw 定时任务配置文档


Contactez nous
Vous n'arrivez pas à lire le tutoriel ? Contactez-nous pour une réponse gratuite ! Aide gratuite pour les sites personnels et les sites de petites entreprises !
Service clientèle WeChat
Service clientèle WeChat
Tel : 020-2206-9892
QQ咨询:1025174874
(iii) Courriel : [email protected]
Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
© Déclaration de reproduction
Cet article a été rédigé par Harry
LA FIN
Si vous l'aimez, soutenez-le.
félicitations8 partager (joies, avantages, privilèges, etc.) avec les autres