Skip to content

Phase 96 — 工作流自动化引擎设计

版本: v4.5.0 创建日期: 2026-03-10 状态: ✅ 已实现


一、模块概述

Phase 96 构建工作流自动化引擎,内置12种主流SaaS连接器(Gmail/Slack/GitHub/Jira/Notion等),支持多种触发方式(Webhook/定时/事件/条件),提供完整的执行日志和调试能力,实现跨系统业务流程自动化。

1.1 核心目标

  1. 连接器生态: 12种内置连接器覆盖主流SaaS平台,统一认证和数据映射
  2. 灵活触发: 支持Webhook回调、Cron定时、事件监听和条件表达式四种触发方式
  3. 可视化编排: 节点式工作流设计,支持条件分支、并行执行和循环
  4. 执行追踪: 完整执行日志记录,支持步骤级别的调试和重试

1.2 技术架构

┌───────────────────────────────────────────────────────┐
│            Workflow Automation Engine                   │
│                                                        │
│  ┌──────────────────┐  ┌───────────────────────────┐  │
│  │  Trigger Manager  │  │  Connector Registry        │  │
│  │  Webhook监听      │  │  Gmail  Slack  GitHub      │  │
│  │  Cron定时调度     │  │  Jira   Notion Trello      │  │
│  │  事件总线订阅     │  │  Discord Teams  Airtable   │  │
│  │  条件表达式求值   │  │  Figma  Linear Confluence  │  │
│  └──────────────────┘  └───────────────────────────┘  │
│  ┌──────────────────┐  ┌───────────────────────────┐  │
│  │  Flow Executor    │  │  Execution Logger          │  │
│  │  节点依赖解析     │  │  步骤级执行日志            │  │
│  │  条件分支+并行    │  │  错误追踪+重试机制         │  │
│  │  数据映射转换     │  │  执行耗时统计              │  │
│  └──────────────────┘  └───────────────────────────┘  │
└───────────────────────────────────────────────────────┘

二、核心模块设计

2.1 AutomationEngine (enterprise/automation/automation-engine.js)

工作流自动化核心引擎,管理流程定义、触发器和执行。

核心方法:

  • createFlow(definition) — 创建工作流(节点列表、连接关系、触发条件)
  • execute(flowId, inputData) — 手动执行工作流(返回执行ID和结果)
  • listConnectors() — 获取12种内置连接器列表及配置模板
  • addTrigger(flowId, triggerConfig) — 为工作流添加触发器
  • testFlow(flowId, mockData) — 测试模式执行工作流(不触发实际API)
  • getLogs(flowId, options) — 获取工作流执行日志(支持分页和过滤)
  • importTemplate(template) — 导入工作流模板
  • share(flowId, targetOrg) — 共享工作流至其他组织
  • schedule(flowId, cron) — 设置工作流定时执行计划
  • getStats() — 获取自动化统计(执行次数、成功率、平均耗时)

2.2 内置连接器

序号连接器类别支持操作
1Gmail邮件发送/接收/搜索/标记
2Slack消息发送消息/创建频道/监听事件
3GitHub开发创建Issue/PR/Webhook/Release
4Jira项目创建任务/更新状态/查询
5Notion知识创建页面/更新数据库/查询
6Trello看板创建卡片/移动/评论
7Discord社区发送消息/管理频道/Bot
8Teams协作发送消息/创建会议/文件共享
9Airtable数据CRUD记录/视图/公式触发
10Figma设计导出资源/监听变更/评论
11Linear项目创建Issue/更新状态/查询
12Confluence文档创建页面/更新/搜索

2.3 触发器类型

类型说明示例
webhookHTTP回调触发收到GitHub Push事件
scheduleCron定时触发每天9:00生成日报
event系统事件触发知识库更新时同步Notion
condition条件表达式触发错误率>5%时通知Slack

三、核心文件

文件说明
src/main/enterprise/automation/automation-engine.js工作流自动化引擎(流程执行、连接器管理)
src/main/enterprise/automation/automation-ipc.jsIPC Handler注册(10个通道)

四、IPC Handlers

Channel说明
automation:create-flow创建工作流定义
automation:execute手动执行工作流
automation:list-connectors获取12种内置连接器列表
automation:add-trigger为工作流添加触发器
automation:test-flow测试模式执行(不触发实际API)
automation:get-logs获取工作流执行日志
automation:import-template导入工作流模板
automation:share共享工作流至其他组织
automation:schedule设置定时执行计划
automation:get-stats获取自动化统计信息

五、数据库表

5.1 auto_flows — 工作流定义表

sql
CREATE TABLE IF NOT EXISTS auto_flows (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  description TEXT,
  nodes TEXT,                 -- JSON: 节点列表(连接器+动作+参数)
  edges TEXT,                 -- JSON: 节点连接关系
  status TEXT DEFAULT 'draft', -- draft | active | paused | archived
  schedule TEXT,              -- Cron表达式(NULL表示不定时)
  created_by TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

5.2 auto_executions — 工作流执行记录表

sql
CREATE TABLE IF NOT EXISTS auto_executions (
  id TEXT PRIMARY KEY,
  flow_id TEXT NOT NULL,
  trigger_type TEXT,          -- webhook | schedule | event | condition | manual
  input_data TEXT,            -- JSON: 输入数据
  output_data TEXT,           -- JSON: 执行结果
  status TEXT DEFAULT 'running', -- running | success | failed | cancelled
  steps_log TEXT,             -- JSON: 步骤级执行日志数组
  duration_ms INTEGER,
  error TEXT,
  started_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  completed_at DATETIME,
  FOREIGN KEY (flow_id) REFERENCES auto_flows(id)
);

5.3 auto_triggers — 触发器配置表

sql
CREATE TABLE IF NOT EXISTS auto_triggers (
  id TEXT PRIMARY KEY,
  flow_id TEXT NOT NULL,
  type TEXT NOT NULL,          -- webhook | schedule | event | condition
  config TEXT,                 -- JSON: 触发器配置(URL/Cron/事件名/条件表达式)
  enabled INTEGER DEFAULT 1,
  last_triggered_at DATETIME,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (flow_id) REFERENCES auto_flows(id)
);

六、测试覆盖

测试文件测试数量状态
src/main/enterprise/automation/__tests__/automation-engine.test.js22✅ 通过
合计22✅ 全部通过

测试要点

  • 工作流创建、编辑、删除完整生命周期
  • 12种连接器注册和配置验证
  • 四种触发器类型(webhook/schedule/event/condition)触发逻辑
  • 工作流执行引擎(顺序/条件分支/并行节点)
  • 测试模式执行与生产模式隔离
  • 执行日志记录(步骤级别、耗时、错误追踪)
  • 工作流模板导入导出和跨组织共享

基于 MIT 许可发布