Skip to content

Phase 82 — 自主工作流编排器设计

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


一、模块概述

Phase 82 实现基于DAG的自主工作流编排器,支持环路检测、审批门控、断点调试、暂停/恢复/回滚,内置5种工作流模板。

1.1 核心目标

  1. DAG编排: 有向无环图工作流定义,自动拓扑排序和并行执行
  2. 审批门控: 关键节点人工审批,支持超时自动处理
  3. 断点调试: 工作流断点设置,逐步执行和状态检查
  4. 模板系统: 5种内置模板(CI/CD、数据处理、代码审查、部署、测试)
  5. 容错回滚: 失败节点自动回滚,支持手动回滚到任意检查点

1.2 技术架构

┌──────────────────────────────────────────────────┐
│           Workflow Orchestrator Engine            │
│                                                  │
│  ┌───────────────────┐  ┌──────────────────────┐ │
│  │ DAGScheduler      │  │ ApprovalGateManager  │ │
│  │ 拓扑排序+环路检测 │  │ 审批门控+超时策略    │ │
│  │ 并行调度+依赖追踪 │  │ 多级审批+自动升级    │ │
│  └───────────────────┘  └──────────────────────┘ │
│  ┌───────────────────┐  ┌──────────────────────┐ │
│  │ BreakpointDebugger│  │ RollbackController   │ │
│  │ 断点管理+单步执行 │  │ 检查点+状态快照      │ │
│  │ 变量检查+条件断点 │  │ 自动/手动回滚        │ │
│  └───────────────────┘  └──────────────────────┘ │
│  ┌──────────────────────────────────────────────┐ │
│  │        Workflow IPC Layer (10 handlers)       │ │
│  └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘

二、核心模块设计

2.1 WorkflowEngine (ai-engine/workflow/workflow-engine.js)

自主工作流编排引擎,核心调度和执行。

常量:

  • WORKFLOW_STATUS: CREATED, RUNNING, PAUSED, COMPLETED, FAILED, ROLLING_BACK
  • NODE_STATUS: PENDING, RUNNING, COMPLETED, FAILED, SKIPPED, WAITING_APPROVAL
  • TEMPLATE_TYPE: CI_CD, DATA_PIPELINE, CODE_REVIEW, DEPLOYMENT, TEST_SUITE

核心方法:

  • initialize(deps) — 初始化引擎,加载模板和恢复中断的工作流
  • createWorkflow({ name, nodes, edges, config }) — 创建DAG工作流(含环路检测)
  • executeWorkflow(workflowId) — 执行工作流(拓扑排序+并行调度)
  • pauseWorkflow(workflowId) — 暂停工作流,保存当前状态快照
  • resumeWorkflow(workflowId) — 从暂停点恢复执行
  • rollbackWorkflow(workflowId, checkpointId) — 回滚到指定检查点
  • listTemplates() — 列出5种内置工作流模板
  • importWorkflow(definition) — 导入外部工作流定义
  • exportWorkflow(workflowId) — 导出工作流为JSON定义
  • getExecutionLog(workflowId) — 获取执行日志和节点状态
  • setBreakpoint({ workflowId, nodeId, condition }) — 设置断点(支持条件断点)
  • _detectCycle(nodes, edges) — 环路检测(Kahn算法)
  • _topologicalSort(nodes, edges) — 拓扑排序
  • _createCheckpoint(workflowId) — 创建状态检查点
  • destroy() — 销毁引擎,清理定时器

2.2 WorkflowIPC (ai-engine/workflow/workflow-ipc.js)

IPC通道注册和参数校验。


三、数据库设计

sql
-- Phase 82: Workflow Orchestrator
CREATE TABLE IF NOT EXISTS workflows (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  description TEXT,
  status TEXT DEFAULT 'created',
  template_type TEXT,
  dag_definition TEXT,        -- JSON: nodes + edges
  config TEXT,                -- JSON: timeout, retries, approval settings
  current_checkpoint TEXT,
  created_at INTEGER,
  updated_at INTEGER,
  completed_at INTEGER
);

CREATE TABLE IF NOT EXISTS workflow_nodes (
  id TEXT PRIMARY KEY,
  workflow_id TEXT NOT NULL,
  node_name TEXT NOT NULL,
  node_type TEXT,             -- task, approval, condition, parallel
  status TEXT DEFAULT 'pending',
  input_data TEXT,
  output_data TEXT,
  error_message TEXT,
  started_at INTEGER,
  completed_at INTEGER,
  FOREIGN KEY (workflow_id) REFERENCES workflows(id)
);

CREATE TABLE IF NOT EXISTS workflow_checkpoints (
  id TEXT PRIMARY KEY,
  workflow_id TEXT NOT NULL,
  state_snapshot TEXT,        -- JSON: full workflow state
  node_states TEXT,           -- JSON: all node statuses
  created_at INTEGER,
  FOREIGN KEY (workflow_id) REFERENCES workflows(id)
);

CREATE TABLE IF NOT EXISTS workflow_execution_logs (
  id TEXT PRIMARY KEY,
  workflow_id TEXT NOT NULL,
  node_id TEXT,
  event_type TEXT,            -- start, complete, fail, pause, resume, rollback
  message TEXT,
  metadata TEXT,
  created_at INTEGER,
  FOREIGN KEY (workflow_id) REFERENCES workflows(id)
);

四、IPC接口设计

Phase 82 — WorkflowIPC (10 handlers)

通道说明
workflow:create创建DAG工作流
workflow:execute执行工作流
workflow:pause暂停工作流
workflow:resume恢复工作流
workflow:rollback回滚到检查点
workflow:list-templates列出内置模板
workflow:import导入工作流定义
workflow:export导出工作流定义
workflow:get-execution-log获取执行日志
workflow:set-breakpoint设置断点

五、前端集成

Pinia Stores

  • workflowOrchestrator.ts — 工作流列表、执行状态、模板、日志、断点管理

Vue Pages

  • WorkflowOrchestratorPage.vue — DAG可视化/执行控制/模板选择/日志查看

Routes

  • /workflow-orchestrator — 工作流编排器

六、配置选项

javascript
workflowOrchestrator: {
  enabled: false,
  maxConcurrentWorkflows: 5,
  nodeTimeoutMs: 300000,
  checkpointIntervalMs: 60000,
  approvalTimeoutMs: 3600000,
  maxRollbackDepth: 10,
},

七、测试覆盖

测试文件: src/main/ai-engine/workflow/__tests__/workflow-engine.test.js测试数量: 23 tests

分类数量说明
初始化2引擎初始化、模板加载
DAG创建4正常创建、环路检测拒绝、空节点、重复边
执行控制5顺序执行、并行执行、暂停恢复、超时处理、取消
审批门控3审批通过继续、审批拒绝终止、超时自动处理
断点调试3设置断点、条件断点触发、单步执行
回滚3检查点回滚、失败自动回滚、回滚深度限制
模板与导入导出3模板列表、导入验证、导出格式

八、Context Engineering

  • step 5.2: setWorkflowOrchestratorContext() — 注入工作流编排器上下文

基于 MIT 许可发布