首页 / 《WSaiOS 人工认知智能感知篇》 / 正文

第四十九章 工作流引擎源码实现WSaiOS Workflow Engine

作者:wsp188 | 发布时间:2026-07-22 13:26 | 分类:《WSaiOS 人工认知智能感知篇》

第四十九章

WSaiOS Workflow Engine工作流引擎源码实现

49.8 Conditional Workflow Engine条件分支工作流源码实现

在49.7节中,我们完成:

  • Workflow Model;
  • Workflow Node;
  • Workflow Graph;
  • Workflow Parser;
  • Workflow Scheduler;
  • Workflow Executor。

此时WSaiOS已经能够执行:

固定流程。

例如:

Start

 ↓

Design

 ↓

Coding

 ↓

Testing

 ↓

Deploy

但是:

真实智能系统中的任务不是固定路径。

例如:

代码生成后:

如果测试通过:

Testing Success

↓

Deploy

如果失败:

Testing Failed

↓

Debug

↓

Retry Testing

因此:

Workflow Engine必须具备:

动态决策能力。


49.8.1 Conditional Workflow定位

Conditional Workflow负责:

根据:

  • 状态;
  • 数据;
  • 规则;
  • 环境;

动态选择下一执行路径。


架构:


              Workflow Runtime


                     │


              Decision Node


                     │


          ┌──────────┴──────────┐


          ▼                     ▼


      Condition A          Condition B


          │                     │


          ▼                     ▼


      Branch A             Branch B


49.8.2 Decision Node设计

Decision Node是:

条件判断节点。

例如:

IF Test Result == PASS

    Deploy


ELSE

    Repair

文件:

condition.py

源码:

class DecisionNode:


    def __init__(
        self,
        id,
        condition
    ):

        self.id=id

        self.condition=condition

        self.true_path=None

        self.false_path=None


示例:

node=DecisionNode(

"D001",

"test_result==success"

)

49.8.3 Rule Evaluation规则评价器

Decision Node需要:

判断条件。

因此设计:

Rule Evaluator。


文件:

condition.py

源码:

class RuleEvaluator:


    def evaluate(
        self,
        rule,
        context
    ):


        return eval(
            rule,
            {},
            context
        )

输入:

context={

"test_result":

"success"

}

规则:

test_result=="success"

结果:

True

49.8.4 Branch Selection分支选择

根据评价结果:

选择路径。


源码:

class BranchSelector:


    def select(
        self,
        decision,
        context
    ):


        result=RuleEvaluator().evaluate(

        decision.condition,

        context

        )


        if result:

            return decision.true_path


        return decision.false_path

流程:

Decision Node


      ↓


Rule Evaluation


      ↓


True / False


      ↓


Select Branch

49.8.5 Dynamic Workflow Path动态路径

传统Workflow:

A → B → C

固定。


WSaiOS:

        A


        ↓


    Decision


    /      \


   B        C

动态变化。


例如:

AI内容生成流程:

Generate Content


        ↓


Quality Check


        ↓


   ┌─────────┐


   │ Score>90│


   └─────────┘


     /     \


   Yes      No


   ↓        ↓


 Publish   Optimize


49.8.6 Workflow Context上下文管理

条件判断:

需要上下文。

例如:

{

"quality_score":95,


"retry_count":0,


"user_level":"enterprise"

}

设计:

class WorkflowContext:


    def __init__(self):

        self.data={}



    def set(
        self,
        key,
        value
    ):

        self.data[key]=value



    def get(
        self,
        key
    ):

        return self.data.get(key)

49.8.7 Exception Branch异常分支

真实执行:

可能异常。

例如:

API Failed

↓

Retry

设计:

异常节点:

Exception Node


        │


        ▼


Recovery Workflow

源码:

class ExceptionHandler:


    def handle(
        self,
        error
    ):


        return {

        "type":

        "recovery",

        "error":

        error

        }

49.8.8 Retry Workflow重试流程

失败:

不是立即终止。


流程:

Task Failed


      ↓


Check Retry Count


      ↓


Retry


      ↓


Success


源码:

class RetryController:


    def retry(
        self,
        task,
        limit=3
    ):


        if task.retry_count < limit:


            task.retry_count +=1

            return True


        return False

49.8.9 Conditional Workflow Runtime

整合:

Decision Node。


执行流程:


Workflow Executor


        ↓


Current Node


        ↓


Check Node Type


        ↓


Decision Node?


     /       \


   Yes        No


   ↓           ↓


Evaluate     Execute


Condition    Action


   ↓


Select Next

核心代码:

class ConditionalExecutor:


    def execute(
        self,
        node,
        context
    ):


        if node.type=="DECISION":


            return BranchSelector().select(

            node,

            context

            )


49.8.10 条件工作流案例

任务:

Generate Software

Workflow:

Start


 ↓


Coding


 ↓


Testing


 ↓


Decision


 ├── Pass

 │

 ↓

 Deploy


 └── Fail

     ↓

 Debug

     ↓

 Retry

运行:

第一次:

Testing

↓

Failed

进入:

Debug

第二次:

Testing

↓

Success

进入:

Deploy

49.8.11 Conditional Workflow特点

1. 动态执行

流程根据环境变化。


2. 智能决策

结合:

Rule Engine。


3. 异常恢复

支持:

自动恢复路径。


4. 与Agent融合

条件节点:

可以动态选择Agent。


49.8 本节总结

完成:

Conditional Workflow Engine条件分支工作流源码实现

实现:

✅ Decision Node
✅ Rule Evaluation
✅ Branch Selection
✅ Workflow Context
✅ Dynamic Path
✅ Exception Branch
✅ Retry Workflow
✅ Conditional Runtime

当前第四十九章进度:

49.1 Workflow Architecture        ✅

49.2 Workflow Model                ✅

49.3 Workflow Definition           ✅

49.4 Workflow Parser               ✅

49.5 Workflow Graph                ✅

49.6 Workflow Scheduler            ✅

49.7 Workflow Executor             ✅

49.8 Conditional Workflow          ✅

下一节:

49.9 Parallel Workflow Engine并行工作流源码实现

重点:

  • Parallel Node
  • Concurrent Execution
  • Task Synchronization
  • Result Aggregation
  • Async Workflow Runtime
  • Multi-Agent Parallel Processing

进入:

WSaiOS从动态流程 → 并行智能执行阶段。

联系我们

欢迎咨询AI系统开发、网站建设、搜索优化、项目定制合作

联系方式

  • 电话:15089196448
  • 邮箱:1602401899@qq.com
  • 地址:陕西省渭南市
  • 服务时间:周一至周五 09:00 - 18:00 | 7×24小时技术值守