OpenClaw 定时任务 (Cron) 设置教程
让 AI Agent 7×24 小时自动工作 —— 从此告别「手动执行」
🎯 为什么需要定时任务?
世界上有一种自由,叫「让AI替我干活」。想象一下:每天早上8点,AI自动帮你整理AI行业新闻;每周五晚上,自动生成周报;每月1号,自动备份数据。
"凌晨5点,当大多数人还在睡梦中时,我的AI Agent已经在执行第365个定时任务了。这大概就是传说中的躺赚吧。"
OpenClaw 的 Cron 系统让你可以:
- 定时执行 AI 工作流
- 自动采集和处理数据
- 定时生成报告和通知
- 维护日常自动化任务
✨ Cron 系统特性
- ⏰ 灵活调度 - 支持 Cron 表达式、固定间隔、一次性任务
- 🤖 AI 原生 - 支持 agentTurn 和 systemEvent 两种执行模式
- 🔄 任务管理 - 添加、删除、更新、立即执行
- 📊 执行历史 - 查看任务运行记录和结果
- 🔔 智能通知 - 支持 webhook 和消息通知
📅 调度类型
1. Cron 表达式(最灵活)
// 每天早8点执行
{ "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" }
// 每小时执行
{ "kind": "cron", "expr": "0 * * * *" }
// 每周一上午9点
{ "kind": "cron", "expr": "0 9 * * 1" }
// 每月1日凌晨2点
{ "kind": "cron", "expr": "0 2 1 * *" }
2. 固定间隔
// 每5分钟执行一次
{ "kind": "every", "everyMs": 300000 }
// 每30分钟执行
{ "kind": "every", "everyMs": 1800000 }
// 每天执行(24小时)
{ "kind": "every", "everyMs": 86400000 }
3. 一次性任务
// 在指定时间执行一次
{ "kind": "at", "at": "2026-04-15T10:00:00+08:00" }
🎯 执行模式
模式 1: systemEvent(注入系统事件)
适合简单任务,直接向会话注入文本:
{
"kind": "systemEvent",
"text": "这是一个定时提醒:请检查今天的任务清单"
}
模式 2: agentTurn(运行AI代理)
适合复杂任务,启动独立AI会话执行:
{
"kind": "agentTurn",
"message": "搜索今天AI行业的重大新闻,生成摘要报告",
"model": "default",
"thinking": "high",
"timeoutSeconds": 600
}
Session Target 选择
"sessionTarget": "main" // 在主会话执行
"sessionTarget": "isolated" // 独立会话执行(默认)
"sessionTarget": "current" // 绑定当前会话
"sessionTarget": "session:xxx" // 指定会话ID
💻 实战示例
示例 1: 每日新闻摘要
// 每天早上8点自动生成AI新闻简报
cron({
action: "add",
job: {
name: "daily-ai-news",
description: "每日AI新闻简报",
schedule: {
kind: "cron",
expr: "0 8 * * *",
tz: "Asia/Shanghai"
},
payload: {
kind: "agentTurn",
message: `搜索今天AI行业的重大新闻,整理成摘要报告:
- 按类别分类(技术突破/产品发布/融资动态)
- 每个新闻配一句话摘要
- 附上原文链接
保存到 /var/www/miaoquai/news/ 目录`,
timeoutSeconds: 300
},
delivery: {
mode: "announce",
channel: "feishu"
}
}
});
示例 2: 定时提醒
// 30分钟后提醒喝水
cron({
action: "add",
job: {
name: "drink-water-reminder",
schedule: {
kind: "at",
at: "2026-04-12T10:30:00+08:00"
},
payload: {
kind: "systemEvent",
text: "⏰ 提醒:该喝水了!工作再忙也要照顾好身体~"
},
deleteAfterRun: true // 执行后自动删除
}
});
示例 3: 周期性 SEO 任务
// 每天凌晨1点批量生成SEO内容
cron({
action: "add",
job: {
name: "daily-seo-generation",
description: "每日SEO内容批量生成",
schedule: {
kind: "cron",
expr: "0 1 * * *",
tz: "Asia/Shanghai"
},
payload: {
kind: "agentTurn",
message: `执行每日SEO任务:
1. 分析搜索热词
2. 批量生成5-8个教程页面
3. 更新 sitemap.xml
4. 生成执行报告`,
timeoutSeconds: 3600
}
}
});
示例 4: 每周报告
// 每周五下午6点生成周报
cron({
action: "add",
job: {
name: "weekly-report",
schedule: {
kind: "cron",
expr: "0 18 * * 5",
tz: "Asia/Shanghai"
},
payload: {
kind: "agentTurn",
message: `生成本周工作周报:
1. 查询本周执行的所有定时任务
2. 统计生成的内容数量
3. 汇总数据指标
4. 生成markdown格式报告
发送到飞书群`,
timeoutSeconds: 600
},
delivery: {
mode: "announce",
channel: "weekly-reports"
}
}
});
示例 5: 简单的 QQ 定时提醒
// 使用 qqbot_remind 简化接口
qqbot_remind({
action: "add",
content: "喝水时间到!",
time: "30m" // 30分钟后
});
// 每天早8点提醒
qqbot_remind({
action: "add",
content: "早安!开始新的一天~",
time: "0 8 * * *", // cron 表达式
timezone: "Asia/Shanghai"
});
🛠️ 任务管理
列出所有任务
// 查看所有定时任务
cron({ action: "list" });
// 包含已禁用的任务
cron({
action: "list",
includeDisabled: true
});
查看任务详情
// 获取任务执行历史
cron({
action: "runs",
jobId: "daily-ai-news"
});
立即执行任务
// 手动触发任务(强制模式)
cron({
action: "run",
jobId: "daily-ai-news",
runMode: "force"
});
更新任务
// 修改任务配置
cron({
action: "update",
jobId: "daily-ai-news",
patch: {
enabled: false, // 禁用任务
schedule: {
kind: "cron",
expr: "0 9 * * *" // 改为9点执行
}
}
});
删除任务
// 删除定时任务
cron({
action: "remove",
jobId: "daily-ai-news"
});
🎯 最佳实践
✅ 设置合理的超时
根据任务复杂度设置 timeoutSeconds。数据采集5分钟,SEO批量生成1小时,简单提醒30秒。
✅ 使用描述性名称
任务名要清晰表达用途。"daily-seo-gen" 比 "task-1" 好得多。
✅ 设置失败通知
重要任务要配置 failureAlert,任务失败时及时通知:
failureAlert: {
mode: "announce",
channel: "alerts",
after: 2, // 连续失败2次后报警
cooldownMs: 3600000 // 1小时内只报警一次
}
⚠️ 避坑指南
- 时间重叠 - 避免多个耗时长任务同时执行
- 资源竞争 - 注意文件锁和数据库锁
- 时区问题 - 始终明确指定 timezone
- 任务堆积 - 上次的任务没执行完,下次又来了
📢 结果投递
通知到聊天频道
delivery: {
mode: "announce",
channel: "feishu", // 发送到飞书
accountId: "optional-account"
}
Webhook 回调
delivery: {
mode: "webhook",
to: "https://your-api.com/callback",
bestEffort: true // 失败不重试
}
不通知(静默执行)
delivery: {
mode: "none"
}
📚 相关资源
🎬 结语
Cron 是自动化的心脏。有了它,你的AI Agent才能真正做到7×24小时不间断工作,从「手动工具」进化为「自动化系统」。
"世界上有一种境界,叫无人值守。最好的AI,是你设置了之后就忘了它,它却依然在默默为你工作。"
现在就去设置你的第一个定时任务,开启真正的AI自动化之旅吧!