🎯 学习目标:配置定时任务实现自动化
| 类型 | 说明 | 示例 |
|---|---|---|
at |
一次性任务 | 20分钟后提醒我 |
every |
间隔执行 | 每小时检查一次 |
cron |
Cron 表达式 | 每天早上 9 点 |
最简单的方式是直接告诉 Agent:
帮我创建一个提醒:20分钟后提醒我喝水
每天早上 9 点告诉我今天的天气
每周一早上 10 点提醒我写周报
在 openclaw.json 中配置:
{
"cron": {
"jobs": [
{
"name": "reminder",
"schedule": {
"kind": "at",
"at": "2024-01-01T10:00:00+08:00"
},
"payload": {
"kind": "agentTurn",
"message": "提醒:该喝水了!"
},
"sessionTarget": "isolated"
}
]
}
}{
"schedule": {
"kind": "every",
"everyMs": 3600000 // 每小时
}
}{
"schedule": {
"kind": "cron",
"expr": "0 9 * * 1-5", // 工作日早上 9 点
"tz": "Asia/Shanghai"
}
}注入系统事件到主会话:
{
"payload": {
"kind": "systemEvent",
"text": "该检查邮件了"
},
"sessionTarget": "main"
}在独立会话运行 Agent:
{
"payload": {
"kind": "agentTurn",
"message": "检查天气并告诉用户"
},
"sessionTarget": "isolated"
}# 列出所有任务
openclaw cron list
# 运行指定任务
openclaw cron run --job <job-id>
# 查看任务历史
openclaw cron runs --job <job-id>{
"name": "daily-weather",
"schedule": {
"kind": "cron",
"expr": "0 7 * * *",
"tz": "Asia/Shanghai"
},
"payload": {
"kind": "agentTurn",
"message": "查询今天的天气,并发送给我"
},
"sessionTarget": "isolated"
}{
"name": "standup-reminder",
"schedule": {
"kind": "cron",
"expr": "50 9 * * 1-5",
"tz": "Asia/Shanghai"
},
"payload": {
"kind": "agentTurn",
"message": "提醒:10分钟后站会"
},
"sessionTarget": "isolated"
}- 通过对话创建一个简单的一次性提醒
- 在配置文件中创建一个每日任务
- 使用
openclaw cron list查看任务 - 手动触发一个任务测试