WorkBuddy 的自动化任务(Automations)让 AI 从"随叫随到"升级为"不叫也到"。你可以设定规则,让 WorkBuddy 在指定时间、特定事件触发时自动执行任务,无需人工干预。无论是每天早上的日报生成、每小时的系统巡检,还是 Git Push 时的自动部署,Automations 都能精准调度。本文将详解定时任务的创建、RRULE 调度规则、有效期设置,并提供丰富的实战示例。
WorkBuddy 的自动化系统由三个核心组件构成:
一个自动化任务的定义包含以下要素:
{
"name": "每日站会摘要",
"description": "每天早上9点汇总昨日工作进展",
"schedule": {
"type": "rrule",
"rule": "FREQ=DAILY;BYHOUR=9;BYMINUTE=0"
},
"action": {
"prompt": "读取昨日 Git 提交记录和钉钉消息,生成站会摘要,发送到企业微信群",
"mode": "craft"
},
"validFrom": "2026-07-27T00:00:00+08:00",
"validTo": "2026-12-31T23:59:59+08:00",
"timezone": "Asia/Shanghai",
"notification": {
"onSuccess": "dingtalk",
"onFailure": "email"
},
"retry": {
"maxAttempts": 3,
"interval": 300
}
}
最简单的方式是直接用自然语言描述:
帮我创建一个自动化任务:
- 名称:每日数据备份
- 时间:每天凌晨2点
- 操作:将 MySQL 数据库导出并上传到腾讯云 COS
- 有效期:从今天到年底
- 失败时发邮件通知我
WorkBuddy 会自动将自然语言转换为结构化的任务定义,并让你确认后创建。
在 .workbuddy/automations/ 目录下创建 YAML 文件:
name: 周报生成
description: 每周五下午5点生成本周工作周报
schedule:
type: rrule
rule: "FREQ=WEEKLY;BYDAY=FR;BYHOUR=17;BYMINUTE=0"
action:
prompt: |
1. 从 GitHub 拉取本周所有 PR 和 Commit
2. 从 Jira 获取已完成的 Issue
3. 汇总生成本周工作周报
4. 写入腾讯文档并分享给团队
mode: craft
validFrom: "2026-07-27T00:00:00+08:00"
validTo: "2026-12-31T23:59:59+08:00"
timezone: Asia/Shanghai
notification:
onSuccess: feishu
onFailure: email
WorkBuddy 采用 iCalendar RRULE(RFC 5545)作为调度规则标准,比传统 Cron 表达式更强大、更语义化:
FREQ=HOURLY
适合:监控巡检、数据同步
FREQ=DAILY;BYHOUR=9
适合:日报、备份、摘要
FREQ=WEEKLY;BYDAY=MO,WE,FR
适合:周报、定期审查
FREQ=MONTHLY;BYMONTHDAY=1
适合:月报、账单、考核
# 每个工作日早上9点(跳过周末)
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=0
# 每月1号和15号上午10点(双周节奏)
FREQ=MONTHLY;BYMONTHDAY=1,15;BYHOUR=10
# 每2小时一次
FREQ=HOURLY;INTERVAL=2
# 每季度最后一天
FREQ=MONTHLY;BYMONTH=3,6,9,12;BYMONTHDAY=-1
# 每周一三五的8:30和17:30(早晚各一次)
FREQ=WEEKLY;BYDAY=MO,WE,FR;BYHOUR=8,17;BYMINUTE=30
WorkBuddy 同时支持两种格式。对于简单场景,Cron 更简洁;对于复杂调度规则(工作日、间隔、月末等),RRULE 更强大。
每个自动化任务可以设置有效期,避免过期任务持续运行:
2026-08-01T00:00:00+08:00){
"validFrom": "2026-08-01T09:00:00+08:00",
"validTo": "2026-10-31T18:00:00+08:00",
"maxExecutions": 100
}
任务可以根据执行结果走不同分支:
name: 系统巡检
schedule:
type: rrule
rule: "FREQ=HOURLY"
action:
prompt: |
执行以下巡检步骤:
1. 检查 MySQL 慢查询数量
2. 检查 Redis 内存使用率
3. 检查 API 响应时间 P99
onSuccess: |
所有指标正常,记录到日志即可
onFailure: |
发现异常!立即:
1. 生成详细诊断报告
2. 发送告警到企业微信群
3. 如果是数据库问题,自动创建 Jira Issue
{
"retry": {
"maxAttempts": 3,
"interval": 300,
"backoff": "exponential",
"maxInterval": 3600
}
}
支持固定间隔(fixed)和指数退避(exponential)两种重试策略。指数退避下,重试间隔为 300s → 600s → 1200s,避免雪崩。
调度:每天 9:00
操作:查询数据库 → 生成图表 → 写入腾讯文档 → 推送飞书
有效期:长期运行
调度:每小时
操作:检查服务状态 → 异常则告警 → 正常则静默
重试:3次,指数退避
调度:事件触发(GitHub Webhook)
操作:拉取代码 → 构建 → 部署 → 验证 → 通知
有效期:项目周期内
调度:每两周周五 16:00
操作:汇总 Sprint 数据 → 生成回顾文档 → 创建飞书文档
有效期:本季度
WorkBuddy 提供自动化任务管理面板,支持:
也可以通过对话管理任务:
列出所有自动化任务
暂停"每日数据备份"任务
查看"系统巡检"最近5次执行结果
修改"周报生成"的调度时间为每周四下午4点