工作流自动化

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 分钟的硬性超时限制,防止任务运行失控。


注意事项

  1. 执行限制:定时任务有超时限制(3 分钟),复杂任务需要控制范围
  2. 并发控制:同一时间只能有一个活跃的定时任务在执行
  3. 错误处理:任务失败会在日志中记录,但不会自动重试
  4. 记忆隔离:定时任务默认不使用记忆系统,避免干扰
  5. IM 通道推送:定时任务的结果不会出现在主对话中,而是通过配置的渠道推送

相关文档