⏰ 定时任务
YingClaw 内置 Cron 定时任务系统,支持 Shell 命令和 AI Agent 任务的定时执行,并可将结果推送到多个消息渠道。
任务类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
shell | 执行 Shell 命令 | 系统巡检、数据备份、定时脚本 |
agent | 执行 AI 提示词(Agent 任务) | 智能报告生成、数据分析、内容创作 |
三种调度方式
1. Cron 表达式
最灵活的调度方式,支持标准 cron 语法:
# 每天早上 9 点执行
schedule: { kind: "cron", expr: "0 9 * * *" }
# 每小时执行一次
schedule: { kind: "cron", expr: "0 * * * *" }
# 每周一至周五下午 6 点
schedule: { kind: "cron", expr: "0 18 * * 1-5" }
2. 固定时间(at)
在指定的时刻执行一次:
schedule: { kind: "at", at: "2026-06-15T08:00:00Z" }
3. 间隔执行(every)
按固定时间间隔重复执行:
# 每 30 分钟执行一次
schedule: { kind: "every", every_ms: 1800000 }
# 每小时执行一次
schedule: { kind: "every", every_ms: 3600000 }
消息交付渠道
定时任务的执行结果可以推送到以下渠道:
| 渠道 | 配置方式 |
|---|---|
| Telegram | 设置 delivery.channel: "telegram" 和 Chat ID |
| Discord | 设置 delivery.channel: "discord" 和 Channel ID |
| Slack | 设置 delivery.channel: "slack" 和 Channel ID |
| 微信 | 设置 delivery.channel: "weixin" |
设置 delivery.channel: "qq" |
核心工具
| 工具 | 功能 |
|---|---|
cron_add | 创建新的定时任务 |
cron_list | 列出所有定时任务 |
cron_update | 修改已有任务的配置 |
cron_remove | 删除指定任务 |
cron_run | 立即手动触发一次任务执行 |
使用场景
| 场景 | 任务类型 | 示例 |
|---|---|---|
| 定时报告生成 | agent | 每天早上 9 点生成昨日工作总结并发送到 Telegram |
| 数据监控巡检 | shell | 每小时检查服务器 CPU/内存/磁盘,异常时告警 |
| 定时消息推送 | agent | 每周五下午推送本周项目进展摘要 |
| 自动化运维 | shell | 每天凌晨 3 点清理过期日志文件 |
使用示例
创建定时任务
# 每天早上 9 点发送日报到 Telegram
cron_add \
name="daily-report" \
job_type="agent" \
schedule='{"kind":"cron","expr":"0 9 * * *"}' \
prompt="生成昨天的工作总结报告" \
delivery='{"mode":"announce","channel":"telegram","to":"YOUR_CHAT_ID"}'
管理定时任务
# 查看所有任务
cron_list
# 修改任务调度
cron_update job_id="xxx" patch='{"schedule":{"kind":"cron","expr":"0 10 * * *"}}'
# 手动触发执行
cron_run job_id="xxx"
# 删除任务
cron_remove job_id="xxx"
注意事项
- 📋 任务结果默认仅记录日志,不会主动推送;如需推送请配置
delivery - ⏱️ Agent 任务有执行超时限制,建议设置
timeout_secs参数 - 🔁 避免创建过于频繁的任务(如每秒执行),可能影响系统性能
- 🧹 定期清理不再需要的定时任务,保持任务列表整洁
下一步
定时任务让运维自动化,接下来了解 🌐 浏览器自动化 的网页操作能力。