Files
DevFlow/docs/03-模块文档/df-workflow-工作流引擎.md
绝尘 98393b4908 新增: 初始化 DevFlow 项目仓库
Tauri 2 + Vue 3 + Vite 6 桌面应用,Rust workspace 含 13 个 crate
(df-ai / df-storage / df-workflow / df-core / df-execute 等)。
核心能力:AI 聊天 agentic 循环(工具调用+人工审批)、工作流引擎、
任务/想法/项目/阶段管理、可追溯性,及配套前端组件。
2026-06-12 01:31:05 +08:00

2.0 KiB

df-workflow 工作流引擎

创建: 2026-06-10 | 状态: 初稿


概述

df-workflow 是 DevFlow 的核心引擎,负责 DAG 定义、拓扑排序、节点执行、状态流转和事件广播。引擎不感知具体业务逻辑。

当前状态

功能 状态
DAG 数据结构 已实现
拓扑排序 已实现
DagExecutor (顺序执行) 已实现
同层节点并行执行 有 TODO 注释
Node trait 定义 已实现
状态机 (WorkflowRunStatus) 已实现
EventBus (broadcast) 已实现
条件表达式引擎 仅支持 true/false
断点续跑 待实施

核心设计

Node trait

pub trait Node: Send + Sync {
    fn execute(&self, ctx: &NodeContext) -> Result<NodeOutput>;
    fn schema(&self) -> NodeSchema;
    fn is_blocking(&self) -> bool { true }
}

DAG 执行流程

1. 接收 WorkflowDef (DAG 定义)
2. 拓扑排序 → 得到执行层 (layers)
3. 逐层执行:
   - 同层节点并行 (TODO)
   - 阻塞节点等待人工操作
   - 非阻塞节点异步完成
4. 状态变更通过 EventBus 广播
5. 每个节点完成后持久化快照

事件类型

  • WorkflowStarted / WorkflowCompleted / WorkflowFailed
  • NodeStarted / NodeCompleted / NodeFailed
  • WorkflowPaused / WorkflowResumed

依赖关系

df-core (类型、事件、错误)
  ← df-workflow
    ← df-nodes (节点实现)
    ← df-stages (阶段节点)

文件结构

crates/df-workflow/src/
├── lib.rs       — 模块入口
├── dag.rs       — DAG 数据结构与拓扑排序
├── executor.rs  — DagExecutor
├── node.rs      — Node trait + NodeContext/Output
├── state.rs     — 状态机
├── event.rs     — EventBus
└── condition.rs — 条件表达式引擎

相关文档