什么是 OpenClaw 定时任务
OpenClaw 内置了一套完整的任务调度器,运行在网关内部而非模型端。你可以安排 AI 助手在指定时间自动执行任务,比如:
- 每天早上 7 点发送新闻早报
- 每小时检查一次服务器状态
- 每周五下午生成周报摘要
- 设置一次性的会议提醒
定时任务持久化存储在 ~/.openclaw/cron/ 目录下,网关重启后会自动恢复。
启用定时任务
在 ~/.openclaw/openclaw.json 中启用:
{
cron: {
enabled: true,
store: "~/.openclaw/cron/jobs.json",
maxConcurrentRuns: 1
}
}
如需临时禁用,可以设置环境变量 OPENCLAW_SKIP_CRON=1。
三种调度类型
一次性任务(at)
指定一个精确的时间点执行,适合提醒和倒计时:
openclaw cron add \
--name "开会提醒" \
--at "2026-03-15T14:00:00+08:00" \
--session main \
--system-event "15分钟后有产品评审会议,请提醒我准备演示文稿" \
--wake now
固定间隔任务(every)
按固定时间间隔重复执行,单位为毫秒:
# 每 30 分钟执行一次
openclaw cron add \
--name "服务器健康检查" \
--every 1800000 \
--session isolated \
--message "检查所有监控端点的状态,如有异常立即通知我"
Cron 表达式(cron)
使用标准的 5 字段 cron 表达式,支持 IANA 时区:
# 每天早上 7 点(北京时间)
openclaw cron add \
--name "每日早报" \
--cron "0 7 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "总结今天的科技新闻和 AI 领域动态,生成一份简洁的早报"
Cron 表达式速查:
| 表达式 | 含义 |
|---|---|
0 7 * * * |
每天 7:00 |
0 9 * * 1-5 |
工作日 9:00 |
*/30 * * * * |
每 30 分钟 |
0 18 * * 5 |
每周五 18:00 |
0 0 1 * * |
每月 1 号 0:00 |
两种执行模式
主会话模式
任务在你的主聊天会话中执行,就像你亲自发了一条消息:
openclaw cron add \
--name "提醒喝水" \
--every 3600000 \
--session main \
--system-event "提醒:该喝水了" \
--wake now
隔离会话模式
任务在独立的 cron:<jobId> 会话中执行,不会干扰你的主对话。可以配置将结果投递到指定频道:
openclaw cron add \
--name "每日摘要" \
--cron "0 20 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "回顾今天所有对话,生成一份简洁的每日工作摘要" \
--deliver announce \
--channel discord \
--to "你的频道ID"
管理定时任务
# 查看所有任务
openclaw cron list
# 手动触发一次任务
openclaw cron run <jobId>
# 编辑任务配置
openclaw cron edit <jobId>
# 删除任务
openclaw cron remove <jobId>
# 查看任务执行历史
openclaw cron runs <jobId>
实用场景示例
自动化日报生成
openclaw cron add \
--name "项目日报" \
--cron "0 18 * * 1-5" \
--tz "Asia/Shanghai" \
--session isolated \
--message "查看今天的 Git 提交记录和已关闭的 Issue,生成一份项目日报"
定期备份提醒
openclaw cron add \
--name "备份检查" \
--cron "0 9 * * 1" \
--tz "Asia/Shanghai" \
--session main \
--system-event "每周一提醒:请检查数据库备份是否正常运行" \
--wake now
竞品监控
openclaw cron add \
--name "竞品动态" \
--cron "0 10 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "搜索竞品公司最新的产品发布和新闻动态,总结关键信息"
存储与调试
任务定义存储在 ~/.openclaw/cron/jobs.json,执行记录存储在 ~/.openclaw/cron/runs/<jobId>.jsonl。
如果任务没有按预期执行:
- 检查时区设置是否正确(使用 IANA 格式如
Asia/Shanghai) - 确认
cron.enabled为true - 查看网关日志中是否有调度相关的错误信息
- 使用
openclaw cron runs <jobId>查看执行历史