工作流自动化
Wesclaw 支持通过定时任务、事件触发器和多步骤工作流实现自动化。让 AI 助手主动执行日常任务,减少重复劳动。
定时任务
功能概述
定时任务(Cron)让 AI 按照设定的时间规则自动执行任务。典型场景:
- 每天早上发送工作计划
- 每周五生成周报
- 定时检查邮件并回复
- 定时整理待办事项
创建定时任务
通过 AI 对话创建
直接告诉 AI 你想要的定时任务:
你:每天早上 9 点提醒我今天的重要事项
AI:好的,我已经创建了一个定时任务:
📅 每日提醒
⏰ 每天 09:00
📝 提醒今日重要事项
任务已开始运行。你可以通过 /cron 命令管理。
通过配置文件创建
在 config.yaml 中声明定时任务:
cron:
- name: morning-briefing
schedule: "0 9 * * 1-5" # 工作日 9:00
agent: daily-assistant
prompt: "生成今日工作简报,包括待办事项和重要会议"
- name: weekly-report
schedule: "0 17 * * 5" # 每周五 17:00
agent: report-writer
prompt: "总结本周工作内容,生成周报草稿"
- name: email-check
schedule: "*/10 * * * *" # 每 10 分钟
agent: email-assistant
prompt: "检查新邮件,对重要邮件生成摘要"
通过斜杠命令管理
/cron # 查看所有定时任务
/cron list # 同上
/cron add "0 9 * * *" 早报 # 添加新任务
/cron enable <任务ID> # 启用任务
/cron disable <任务ID> # 暂停任务
/cron remove <任务ID> # 删除任务
/cron trigger <任务ID> # 立即触发一次
时间表达式
支持多种格式:
| 格式 | 示例 | 说明 |
|---|---|---|
| Cron 表达式 | 0 9 * * * | 每天 9:00 |
| 间隔 | 30m / 2h / 1d | 每 30 分钟 / 2 小时 / 1 天 |
| 自然语言 | every monday 9am | 每周一 9:00 |
| ISO 时间 | 2024-06-01T09:00:00Z | 一次性任务 |
Cron 表达式参考
┌───── 分钟 (0-59)
│ ┌───── 小时 (0-23)
│ │ ┌───── 日 (1-31)
│ │ │ ┌───── 月 (1-12)
│ │ │ │ ┌───── 星期 (0-7, 0和7都是周日)
│ │ │ │ │
* * * * *
常用示例:
0 9 * * * 每天 09:00
0 9 * * 1-5 工作日 09:00
0 */2 * * * 每 2 小时
30 8,12,18 * * * 每天 8:30、12:30、18:30
0 9 1 * * 每月 1 号 09:00
0 9 * * 1 每周一 09:00
事件触发器
概述
除了定时触发,还支持基于事件的触发:
| 触发方式 | 说明 | 示例 |
|---|---|---|
| 新邮件 | 收到新邮件时 | 自动分析邮件内容 |
| IM 消息 | 收到 IM 消息时 | 企业微信群消息处理 |
| Webhook | 外部系统调用 | CI/CD 通知、监控告警 |
| 文件变化 | 监控文件变动 | 知识库自动更新 |
邮件触发
当配置了邮件集成后,收到新邮件会自动触发 AI 处理:
email:
- address: ai@example.com
# ... SMTP/IMAP 配置 ...
# 收到邮件自动触发对应 Agent 的处理流程
IM 消息触发
IM 渠道中的消息天然是事件触发的——用户发送消息,AI 即响应。
Webhook 触发
通过 HTTP Webhook 触发 AI 任务:
# 触发一个定时任务
POST /cells/main/cron/{任务ID}/trigger
多步骤工作流
什么是多步骤工作流
当任务比较复杂时,AI 会自动拆解为多个步骤并逐一执行。这通过引擎的 Plan 系统实现。
示例:周报生成工作流
你:生成本周的项目周报
AI 的执行计划:
📋 任务计划 (0/4)
├── ⏳ 1. 收集本周工作记录
├── ⏳ 2. 统计代码提交和 PR
├── ⏳ 3. 整理待办和风险项
└── ⏳ 4. 生成周报文档
正在执行...
📋 任务计划 (2/4)
├── ✅ 1. 收集本周工作记录
├── ✅ 2. 统计代码提交和 PR
├── 🔄 3. 整理待办和风险项
└── ⏳ 4. 生成周报文档
自定义工作流模板
通过技能(Skill)定义可复用的工作流:
# 周报生成技能
## 执行步骤
1. 查看本周的日历和会议记录
2. 统计完成的任务和进度
3. 列出下周计划和风险项
4. 按模板格式生成周报
5. 将周报保存为 Markdown 文件
## 输出格式
使用以下模板:
- 本周完成
- 进行中
- 下周计划
- 风险与阻塞
条件分支
智能决策
AI 可以根据条件做出不同的处理决策:
定时任务:每天 9:00 检查服务器状态
AI 的行为:
├── 如果一切正常 → 记录到日志
├── 如果有警告 → 发送通知到企业微信
└── 如果有故障 → 发送紧急通知 + 尝试自动修复
在 Cron 任务中使用条件
cron:
- name: server-health-check
schedule: "*/30 * * * *"
agent: ops-assistant
prompt: |
检查以下服务的健康状态:
- API 服务器
- 数据库
- 缓存服务
如果发现异常,通过企业微信通知运维团队。
如果一切正常,只记录日志。
实际场景示例
场景一:智能邮件助手
# 每 10 分钟检查邮件
cron:
- name: smart-email
schedule: "*/10 * * * *"
agent: email-assistant
prompt: |
检查新邮件,执行以下操作:
1. 客户询价邮件 → 自动回复报价模板
2. 会议邀请 → 提取时间地点,确认参会
3. 重要邮件 → 转发摘要到企业微信
4. 垃圾邮件 → 忽略
场景二:日报/周报自动化
cron:
# 每天下午 5:30 生成日报
- name: daily-report
schedule: "30 17 * * 1-5"
agent: report-writer
prompt: "总结今天完成的工作,生成日报并发送到企业微信"
# 每周五下午 5:00 生成周报
- name: weekly-report
schedule: "0 17 * * 5"
agent: report-writer
prompt: "汇总本周日报,生成周报草稿"
场景三:信息监控
cron:
# 每小时检查行业新闻
- name: news-monitor
schedule: "0 * * * *"
agent: research-assistant
prompt: |
搜索以下领域的最新新闻:
- 人工智能
- 科技行业
如有重要新闻,生成简报推送到飞书群
场景四:数据整理
cron:
# 每天凌晨 2:00 整理数据
- name: data-cleanup
schedule: "0 2 * * *"
agent: data-assistant
prompt: |
整理昨天的运营数据:
1. 从数据库导出关键指标
2. 生成趋势图表
3. 标注异常数据点
4. 生成分析报告
任务监控
查看任务状态
/cron # 查看所有任务及其状态
/cron stats # 查看任务执行统计
查看执行历史
每个定时任务的执行记录可在任务详情中查看:
/cron runs <任务ID> # 查看最近的执行记录
包含信息:
- 执行时间
- 执行结果(成功/失败)
- 耗时
- 输出摘要
执行超时
定时任务有 3 分钟的硬性超时限制,防止任务运行失控。
注意事项
- 执行限制:定时任务有超时限制(3 分钟),复杂任务需要控制范围
- 并发控制:同一时间只能有一个活跃的定时任务在执行
- 错误处理:任务失败会在日志中记录,但不会自动重试
- 记忆隔离:定时任务默认不使用记忆系统,避免干扰
- IM 通道推送:定时任务的结果不会出现在主对话中,而是通过配置的渠道推送