Skip to main content

⏰ 定时任务

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"
QQ设置 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 参数
  • 🔁 避免创建过于频繁的任务(如每秒执行),可能影响系统性能
  • 🧹 定期清理不再需要的定时任务,保持任务列表整洁

下一步

定时任务让运维自动化,接下来了解 🌐 浏览器自动化 的网页操作能力。