Workflow 深度技术博客:从流程编排到 AI Agent Workflow Runtime

Workflow 深度技术博客:从流程编排到 AI Agent Workflow Runtime

摘要

Workflow(工作流)并不是简单的“任务 A → 任务 B → 任务 C”。在传统企业软件中,Workflow 解决的是复杂业务流程的编排、状态管理、异常处理、人工审批和长期运行问题;进入 AI Agent 时代后,Workflow 又承担了一个新的职责:把 LLM 的非确定性推理能力放进一个确定性的执行框架中。

本文从 Workflow 的基本模型出发,深入分析 DAG、State Machine、Task、Step、Event、Condition、Parallel、Retry、Timeout、Compensation、Persistence、Checkpoint、Event Sourcing、Durable Execution 等核心机制,并进一步讨论 Workflow 与 LLM、Agent、Tool Calling、Multi-Agent 的关系,最终构建一个生产级 Agent Workflow Runtime 的架构模型。


1. 为什么 AI Agent 时代需要 Workflow?

传统程序通常是:

Input
Function A
Function B
Function C
Output

代码直接表达执行流程:

resultA = serviceA.execute();

resultB = serviceB.execute(resultA);

resultC = serviceC.execute(resultB);

return resultC;

这种方式非常适合:

  • 短事务
  • 同步执行
  • 状态简单
  • 生命周期短

但现实企业系统经常是:

创建订单
支付
库存
物流
人工审核
通知

其中任何一步都可能:

失败
超时
重试
等待
暂停
恢复
人工介入
补偿

于是流程不再只是:

A → B → C

而是:

               ┌── Retry ──┐
               │           │
               ▼           │
A → B → C → Failure        │
        │       │           │
        │       └───────────┘
        ├── Human Approval
        └── Compensation

这就是 Workflow 要解决的问题。


2. Workflow 到底是什么?

可以把 Workflow 定义为:

Workflow 是对一组任务、状态、依赖关系、条件、异常处理和执行策略进行声明式建模,并由 Runtime 持续执行的流程模型。

可以抽象为:

[ Workflow = (Tasks, Dependencies, Conditions, Events, Policies, State) ]

其中:

Tasks
    任务

Dependencies
    依赖关系

Conditions
    条件

Events
    事件

Policies
    Retry / Timeout / Compensation

State
    当前执行状态

所以 Workflow 本质上不是一个“流程图”。

它实际上是:

一个可执行的计算模型。


3. Workflow 和普通代码有什么区别?

这是理解 Workflow 的第一步。

普通代码:

void process() {

    stepA();

    stepB();

    stepC();
}

Workflow:

Workflow
 ├── Step A
 ├── Step B
 └── Step C

表面看起来没有区别。

真正的区别在于:

Workflow 把控制流从代码中提升成了可持久化、可观测、可恢复的数据模型。

例如普通 Java:

stepA();
stepB();
stepC();

如果 JVM 在 stepB() 执行过程中挂掉:

JVM Crash
Process Lost

系统不知道:

Step A 是否完成?
Step B 是否执行了一半?
Step C 是否执行?

Workflow Runtime 则可以保存:

Workflow ID
Current Step
Step Status
Input
Output
Retry Count
Checkpoint
Execution History

因此:

普通代码
    = execution logic

Workflow
    = execution logic + lifecycle + persistence

4. Workflow 的核心组成

一个成熟 Workflow 通常包含:

Workflow
├── Task
├── Step
├── State
├── Dependency
├── Condition
├── Event
├── Retry
├── Timeout
├── Parallelism
├── Compensation
├── Persistence
├── Checkpoint
└── Human Interaction

可以进一步划分为四层:

┌─────────────────────────────┐
│      Workflow Definition    │
├─────────────────────────────┤
│      Execution Engine       │
├─────────────────────────────┤
│      State / Persistence    │
├─────────────────────────────┤
│      Infrastructure         │
└─────────────────────────────┘

5. Workflow Definition:描述“应该怎么执行”

Workflow Definition 是流程本身。

例如:

A → B → C

或者:

        ┌→ B ─┐
A ──────┤     ├→ D
        └→ C ─┘

甚至:

A
├── B
├── C
└── D
     E

Definition 关注:

What should happen?

而 Runtime 关注:

How is it executing now?

这是 Workflow 系统非常重要的分层。


6. Workflow Runtime

Workflow Runtime 是整个系统的执行引擎。

例如:

Workflow Definition
┌──────────────────────┐
│  Workflow Runtime    │
│                      │
│ Scheduler            │
│ Executor             │
│ State Manager        │
│ Retry Manager        │
│ Timer Manager        │
│ Event Manager        │
│ Recovery Manager     │
└──────────┬───────────┘
       Workers

Runtime 负责:

加载 Workflow
读取当前状态
寻找 Ready Task
调度 Task
执行 Task
保存结果
推进 Workflow

因此 Workflow Runtime 可以理解成:

Workflow 的操作系统。


7. Workflow 最核心的抽象:DAG

很多 Workflow 都可以表示为 DAG:

Directed Acyclic Graph

即有向无环图。

例如:

A
├──── B
├──── C
└──── D
       E

表示:

A → B
A → C
A → D

B → E
C → E
D → E

如果:

B
C
D

互不依赖,那么它们可以并行。

这就是 Workflow 最重要的性能优化之一。


8. DAG 为什么重要?

假设:

A = 2s
B = 3s
C = 4s
D = 2s

串行执行:

[ T = 2 + 3 + 4 + 2 = 11s ]

如果:

A
├── B
├── C
└── D

那么:

[ T = 2 + max(3,4,2) ]

即:

[ T = 6s ]

所以 Workflow Engine 的一个重要职责就是:

发现任务之间的依赖关系,并最大化可并行执行的任务。


9. Task Dependency

一个 Task 只有满足所有依赖条件之后才能执行。

例如:

A
├── B
└── C
     D

D 的依赖:

B
C

因此:

B = SUCCESS
C = SUCCESS

之后:

D = READY

可以定义:

boolean ready(Task task) {

    return task.dependencies()
        .stream()
        .allMatch(this::isCompleted);
}

这其实就是一个拓扑排序问题。


10. Topological Sort

如果 Workflow 是 DAG:

A → B → D
A → C → D

拓扑顺序可能是:

A
B
C
D

Workflow Runtime 可以使用:

Kahn Algorithm

计算:

in-degree

例如:

A: 0
B: 1
C: 1
D: 2

首先:

A

执行完成:

B: 0
C: 0

于是:

B
C

成为 Ready Tasks。

最后:

D

Ready。

因此:

Workflow Scheduler 的核心之一就是 DAG Scheduling。


11. Workflow 不等于 DAG

这是一个非常重要的区别。

DAG 擅长:

A → B → C

但是很多 Workflow 有:

Loop
Retry
Human Wait
Timer
Event
Compensation

例如:

A
B
C
Failure
Retry
B

这已经不是简单 DAG。

因此更准确地说:

DAG
    = 一种 Workflow Execution Model

Workflow
    = 更大的流程抽象

复杂 Workflow 通常需要:

DAG
+
State Machine
+
Event Model
+
Persistence

12. Workflow 与 State Machine 的关系

这是前一篇 State Machine 文章之后非常自然的延伸。

State Machine:

State
Event
Transition
State

Workflow:

Task
Dependency
Execution
Next Task

两者可以结合:

Workflow
   ├── Task A
   │     └── State Machine
   ├── Task B
   │     └── State Machine
   └── Task C
         └── State Machine

或者:

Workflow State
Task State
Execution State

因此可以认为:

Workflow 描述宏观流程,State Machine 描述生命周期。


13. Workflow Task 的生命周期

一个 Task 不应该只有:

RUNNING
SUCCESS
FAILED

生产系统至少需要:

PENDING
READY
SCHEDULED
RUNNING
WAITING
SUCCESS
FAILED
RETRYING
CANCELLED
TIMEOUT

例如:

PENDING
READY
SCHEDULED
RUNNING
   ├── SUCCESS
   ├── FAILED
   └── TIMEOUT
        RETRYING

这就是 Task State Machine。


14. Workflow 的执行模型

一个典型 Workflow Runtime 可以运行:

while workflow.notFinished():

    readyTasks = scheduler.findReadyTasks();

    for task : readyTasks:

        executor.submit(task);

Task 完成之后:

Task Result
State Store
Dependency Resolver
New Ready Tasks
Scheduler

形成一个闭环:

State
Scheduler
Executor
Worker
Result
State

这就是 Workflow Engine 的基本心跳。


15. Worker 和 Scheduler 必须分离

一个成熟系统不要:

Scheduler
直接执行任务

更合理:

Scheduler
Task Queue
Worker

例如:

              Scheduler
               Kafka
        ┌─────────┼─────────┐
        ▼         ▼         ▼
     Worker1   Worker2   Worker3

好处:

  • 水平扩展
  • 任务削峰
  • 故障隔离
  • Worker 独立扩容
  • 异步执行

16. Workflow Worker

Worker 的职责应该非常明确:

Receive Task
Load Context
Execute
Report Result

Worker 不应该决定整个 Workflow:

Worker
   ❌ 修改 Workflow 全局逻辑

而应该:

Worker
Task Result
Workflow Runtime
Next State

这是一种非常重要的职责边界。


17. Workflow Persistence

Workflow 最大的优势之一:

长时间运行。

例如:

提交申请
等待人工审批
等待 3 天
继续执行

因此不能依赖:

JVM Thread

也不能依赖:

Thread.sleep(3 * 24 * 3600 * 1000);

正确设计应该是:

WAITING_APPROVAL
Persistent State
Application can shutdown
      │ 3 days later
APPROVED Event
Resume Workflow

这就是:

Durable Workflow


18. Durable Execution

Durable Execution 的核心思想:

Workflow 的执行状态应该独立于具体 Worker 进程。

例如:

Worker A
Task A
Persist
Worker Crash

之后:

Worker B
Load State
Resume Task B

因此:

Workflow
Process

这是 Workflow 与普通程序最大的区别之一。


19. Checkpoint

Workflow 需要不断保存 Checkpoint。

例如:

Workflow ID: W1001

Completed:
A
B
C

Running:
D

Pending:
E
F

Checkpoint:

{
  "workflowId": "W1001",
  "completed": ["A", "B", "C"],
  "running": ["D"],
  "pending": ["E", "F"]
}

如果 Runtime 重启:

Load Checkpoint
Recover
Continue

而不是:

Start From Beginning

20. Event Sourcing

Workflow 也非常适合 Event Sourcing。

例如:

WORKFLOW_STARTED
TASK_A_STARTED
TASK_A_COMPLETED
TASK_B_STARTED
TASK_B_COMPLETED
TASK_C_FAILED
TASK_C_RETRY
TASK_C_COMPLETED
WORKFLOW_COMPLETED

通过 Event Replay 可以重新构造 Workflow 状态。

优势:

Audit
Debug
Replay
Recovery
History

尤其是 AI Workflow:

为什么 Agent 最终得出这个结果?

可以通过 Event History 还原。


21. Retry 是 Workflow 的基础能力

生产 Workflow 几乎必然需要 Retry。

例如:

Task A
FAILED
RETRY
FAILED
RETRY
SUCCESS

但是 Retry 不能简单:

for (int i = 0; i < 3; i++) {
    execute();
}

因为真正的 Workflow Retry 需要:

Retry Count
Backoff
Jitter
Retry Policy
Failure Type
Maximum Attempts
Timeout

22. Exponential Backoff

经典策略:

[ delay = min(maxDelay,\ baseDelay \times 2^n) ]

例如:

Attempt 1 → 1s
Attempt 2 → 2s
Attempt 3 → 4s
Attempt 4 → 8s

再加入随机 Jitter:

[ delay = base \times 2^n + random() ]

避免大量 Worker 同时 Retry:

Thundering Herd

23. Retry 不是万能的

Workflow Engine 必须区分:

Transient Failure
Permanent Failure

Transient:

Network Timeout
503
Connection Reset
Rate Limit

可以 Retry。

Permanent:

Invalid Parameter
Permission Denied
Business Rule Violation

通常不应该 Retry。

所以:

Failure
  ├── Retryable
  │       ↓
  │    RETRY
  └── Non-Retryable
        FAILED

这是一项非常重要的 Workflow Engineering 能力。


24. Timeout

每个 Task 都应该拥有:

executionTimeout
scheduleTimeout
workflowTimeout

例如:

Task Timeout = 30s
Workflow Timeout = 1h

如果:

Task Running > 30s

触发:

TASK_TIMEOUT

然后由 Workflow Policy 决定:

Retry
Fail
Compensate
Escalate

25. Cancellation

用户可能随时:

Cancel Workflow

但是:

Cancel

并不意味着:

Kill Process

需要考虑:

Current Task
Running Tool
External Side Effect
Child Workflow

例如:

Workflow
Payment
Cancel

如果 Payment 已经成功:

Cancel

不能简单地让 Workflow 消失。

可能需要:

COMPENSATING

因此:

Cancellation 本身也是 Workflow State Transition。


26. Compensation

Workflow 经常无法真正 Rollback。

例如:

Create User
Charge Payment
Send Email

数据库 Transaction 可以:

ROLLBACK

但:

Email
Payment
External API

无法简单 rollback。

因此使用:

Compensation

例如:

Charge Payment
Compensation:
Refund Payment

Workflow:

A
B
C
Failure
Compensate C
Compensate B
Compensate A

这就是 Saga Pattern。


27. Workflow + Saga

可以将 Workflow 看成:

Forward Execution

Saga 提供:

Backward Compensation

整体:

          Forward
A ──→ B ──→ C ──→ D
                 │ Failure
          Compensation
             Compensate C
             Compensate B
             Compensate A

这是分布式长事务的经典解决方案。


28. Workflow 中的 Human-in-the-loop

企业 Workflow 经常需要人工参与。

例如:

Agent Analysis
Risk Evaluation
Human Approval
Execute

Workflow Runtime 进入:

WAITING_HUMAN

然后释放 Worker。

这是非常重要的设计:

Worker
   ❌ 一直等待

而应该:

Persist State
Release Worker

等事件回来:

HUMAN_APPROVED
Resume Workflow

这样可以支持:

等待几分钟
等待几小时
等待几天
甚至等待几个月

29. Workflow 中的 Condition

Workflow 不一定是固定路径。

例如:

                 Validate
          ┌─────────┴─────────┐
          ▼                   ▼
      amount < 1000       amount >= 1000
          │                   │
          ▼                   ▼
     Auto Approve        Human Review

Condition:

if (amount < 1000) {
    autoApprove();
} else {
    humanReview();
}

在 Workflow Definition 中则应该变成:

Condition
   ├── true  → AutoApprove
   └── false → HumanReview

这使流程变成:

Declarative

而不是:

Hard-coded


30. Workflow 的声明式设计

命令式:

if (...) {
    stepA();
} else {
    stepB();
}

声明式:

workflow:
  steps:
    - validate

  branches:
    - condition: amount < 1000
      next: autoApprove

    - condition: amount >= 1000
      next: humanReview

声明式 Workflow 的优势:

可视化
可修改
可版本化
可分析
可验证
可审计

31. Workflow Definition Versioning

这是生产系统中经常被忽略的问题。

假设:

Workflow v1

已经运行:

10,000 executions

此时修改 Workflow:

Workflow v2

问题来了:

已经运行中的 Workflow 到底应该使用 v1 还是 v2?

正确答案通常是:

Execution → Definition Version

例如:

W1001 → v1
W1002 → v1
W1003 → v2
W1004 → v2

不要直接:

UPDATE workflow_definition

然后让所有实例自动改变。


32. Workflow Migration

如果必须迁移:

v1
v2

需要考虑:

State Mapping
Task Mapping
Context Migration
History Compatibility

例如:

v1:
A → B → C

v2:
A → B → D → C

已经运行到:

B

应该怎么办?

需要定义:

Migration Rule

否则 Workflow 升级会成为灾难。


33. Workflow Idempotency

Workflow 天然会遇到:

Retry
Duplicate Message
Worker Crash
Network Timeout

例如:

Worker
Create Payment
Payment Success
Worker Timeout

Worker 以为失败:

Retry

于是:

Create Payment

执行第二次。

如果没有幂等:

Double Payment

因此 Workflow Task 必须尽可能支持:

Idempotency Key

例如:

workflowId + taskId + attempt

或者:

businessRequestId

34. Exactly Once 是一个危险的幻想

分布式 Workflow 中经常有人说:

“我要 Exactly Once Execution。”

现实中很难做到真正的:

Exactly Once

更常见的是:

At Least Once Delivery
+
Idempotent Execution

即:

Message
At Least Once
Worker
Idempotency
Effectively Once

这是更加现实的工程模型。


35. Workflow Queue

Workflow Scheduler 通常不会直接调用 Worker。

中间需要:

Queue

例如:

Workflow Engine
Task Queue
Worker

Queue 可以提供:

Load Balancing
Backpressure
Retry
Dead Letter
Partition
Ordering

Kafka 非常适合:

Event Stream

Redis Streams、RabbitMQ 等也可以用于 Task Queue。


36. Backpressure

假设:

Workflow:
100,000 tasks/s

但是 Worker:

10,000 tasks/s

如果 Scheduler 不控制:

Task Queue
无限增长

最终:

Memory
CPU
Network

全部被压垮。

因此 Workflow Runtime 需要:

Concurrency Limit
Rate Limit
Queue Limit
Admission Control
Backpressure

例如:

maxConcurrentTasks = 1000

只有:

runningTasks < 1000

才继续调度。


37. Workflow 与分布式系统

Workflow Engine 本质上是一个分布式系统。

它需要解决:

Concurrency
Consistency
Durability
Failure
Ordering
Partition
Recovery
Leader Election

因此 Workflow Engine 并不是:

一个简单的流程图执行器。

而更接近:

Distributed Execution Platform


38. Scheduler 的竞争问题

假设:

Scheduler A
Scheduler B

同时看到:

Task T = READY

两者都调度:

Worker A → T
Worker B → T

于是出现:

Duplicate Execution

可以使用:

Distributed Lock

或者:

Compare-And-Set

例如:

UPDATE task
SET status = 'SCHEDULED'
WHERE task_id = ?
AND status = 'READY';

只有:

affectedRows = 1

的 Scheduler 获得执行权。


39. Leader Election

另一种架构:

Scheduler
   ├── Leader
   ├── Follower
   └── Follower

只有 Leader 负责:

Scheduling

Follower:

Standby

Leader Crash:

Follower
Leader Election
New Leader

但需要注意:

Leader Election 不是解决所有一致性问题的万能方案。

最终仍然需要:

Idempotency
Version
CAS
Persistence

40. Workflow 与 AI Agent 的结合

现在进入最重要的部分。

传统 Workflow:

Step A
Step B
Step C

Agent Workflow:

Analyze
LLM Decision
Tool Selection
Tool Execution
Observation
LLM Reasoning
Next Action

关键变化:

Workflow 中出现了概率性决策节点。

因此:

Traditional Workflow
    = deterministic

Agent Workflow
    = deterministic workflow
      +
probabilistic decision

41. LLM 应该成为 Workflow Task,而不是 Workflow Runtime

一个常见错误:

LLM
决定整个 Workflow

例如:

LLM:
我认为下一步应该是:
A → B → C → D

问题:

LLM Hallucination
Invalid Tool
Illegal Transition
Missing Step
Unsafe Action

更好的设计:

Workflow Runtime
LLM Task
Structured Decision
Policy Validation
Workflow Transition

即:

LLM 是 Workflow 中的一个智能节点,而不是 Workflow Engine 本身。


42. Agent Workflow 的经典模型

可以设计:

                 ┌─────────────┐
                 │   START     │
                 └──────┬──────┘
                 ┌─────────────┐
                 │   PLANNER   │
                 │     LLM     │
                 └──────┬──────┘
                 ┌─────────────┐
                 │  VALIDATOR  │
                 └──────┬──────┘
                 ┌─────────────┐
                 │  EXECUTOR   │
                 └──────┬──────┘
                 ┌─────────────┐
                 │  OBSERVER   │
                 └──────┬──────┘
              ┌─────────┴─────────┐
              ▼                   ▼
          Continue              Finish
              └──────→ PLANNER

这其实已经是:

Agentic Workflow Loop


43. Workflow 与 Agent Loop 的关系

Agent Loop:

Think
Act
Observe
Think

Workflow:

Task
Dependency
Task

二者结合:

Workflow
   └── Agent Task
           ├── Think
           ├── Act
           └── Observe

因此:

Workflow 提供宏观结构,Agent Loop 提供局部智能。

这是非常值得掌握的架构思想。


44. Agent Workflow 中的 Human Approval

例如:

User Request
Agent Planning
Risk Analysis
Human Approval
Tool Execution
Result

Workflow:

START
PLAN
ANALYZE_RISK
WAITING_APPROVAL
APPROVED
EXECUTE
VERIFY
COMPLETED

这种设计特别适合:

金融
医疗
企业审批
生产运维
代码发布
安全操作

45. Multi-Agent Workflow

进一步:

                    Orchestrator
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
      Research        Coding         Review
       Agent           Agent          Agent
          │              │              │
          └──────────────┼──────────────┘
                     Synthesis
                      Final

Workflow Engine 负责:

Dependency
Scheduling
Retry
Timeout
State
Persistence

Agent 负责:

Reasoning
Planning
Tool Selection
Natural Language

这是比较成熟的 Multi-Agent Architecture。


46. Workflow Orchestration vs Choreography

这是分布式 Workflow 非常重要的两个模型。

Orchestration

中心 Workflow Engine:

             Orchestrator
             /     |     \
            A      B      C

Orchestrator 决定:

谁执行
什么时候执行
执行什么
失败怎么办

优点:

流程清晰
可观测
易审计
易管理

缺点:

中心化
Orchestrator 复杂度高

Choreography

没有中央 Controller:

A
 ↓ Event
B
 ↓ Event
C
 ↓ Event
D

每个服务根据 Event 自己决定行为。

优点:

松耦合

缺点:

流程难以理解
Debug 困难
全局状态困难

47. Agent Workflow 更适合哪一种?

对于复杂企业 Agent:

通常推荐:

Orchestration

例如:

Workflow Engine
        ├── Research Agent
        ├── Analysis Agent
        ├── Coding Agent
        └── Review Agent

原因是:

Agent 本身已经具有不确定性。

如果再让整个系统使用完全去中心化的 Choreography:

Agent A
Agent B
Agent C
Agent D

系统复杂度会迅速上升。

因此:

Agent 可以是自治的,但 Workflow 应该尽可能保持可控。


48. Workflow 与 Policy Engine

企业 Agent Workflow 还需要 Policy。

例如:

if amount > 10000:
    requireHumanApproval()

或者:

if tool == delete_account:
    requireHumanApproval()

于是:

Workflow
Policy Engine
Allow / Deny / Require Approval

这形成:

LLM
Workflow
Policy
Tool

而不是:

LLM
Tool

49. Workflow 的安全模型

一个成熟 Workflow Runtime 至少需要:

Authentication
Authorization
Tool Permission
State Permission
Data Permission
Tenant Isolation
Audit

可以定义:

State = PLANNING
Allowed Tools:
    search
    retrieve

State = APPROVED
Allowed Tools:
    create_order
    charge_payment

于是:

Workflow State 可以参与 Authorization。

这是 Agent 安全架构非常重要的一层。


50. Workflow Observability

生产 Workflow 必须支持:

Workflow Metrics
Task Metrics
Queue Metrics
Worker Metrics
LLM Metrics
Tool Metrics
State Metrics

例如:

workflow_execution_total
workflow_execution_duration
task_execution_duration
task_failure_total
task_retry_total
workflow_active
queue_depth
worker_utilization

AI Workflow 还可以增加:

llm_latency
llm_token_usage
llm_cost
tool_call_count
agent_retry
agent_handoff
human_approval_time

51. Workflow Trace

一个完整 Trace:

Workflow: W1001

 ├── PLAN
 │    └── LLM
 ├── RESEARCH
 │    ├── Search
 │    └── Database
 ├── ANALYSIS
 │    └── LLM
 ├── HUMAN_APPROVAL
 ├── EXECUTION
 │    ├── Tool A
 │    └── Tool B
 └── COMPLETED

可以使用:

OpenTelemetry

将:

Workflow
Task
Agent
LLM
Tool
Database

连接到同一条 Trace。


52. Workflow Cost Control

AI Workflow 有一个传统 Workflow 没有的问题:

Token Cost。

例如:

Workflow
 ├── Agent A → 5K tokens
 ├── Agent B → 10K tokens
 ├── Agent C → 8K tokens
 └── Reviewer → 12K tokens

总成本可能快速增长。

因此 Workflow Runtime 可以加入:

Token Budget
Cost Budget
Time Budget
Tool Budget

例如:

maxTokens = 100000
maxCost = $1
maxDuration = 10min
maxToolCalls = 50

超过预算:

BUDGET_EXCEEDED

然后:

STOP

或者:

HUMAN_APPROVAL

53. Workflow 的资源治理

一个企业级 Agent Workflow 需要同时管理:

CPU
Memory
LLM Tokens
Tool Calls
API Rate
Database
Queue

所以 Workflow Runtime 可以进一步成为:

Resource Governance Layer

例如:

Tenant A
    max 100 concurrent workflows

Tenant B
    max 50 concurrent workflows

Agent X
    max 10 LLM calls/min

Tool Y
    max 100 calls/min

这和传统微服务限流、配额管理可以很好地结合。


54. Workflow 的版本化

一个成熟 Workflow Definition 应该像代码一样:

workflow-v1
workflow-v2
workflow-v3

支持:

Git
Code Review
CI/CD
Testing
Deployment
Rollback

例如:

Production
   ├── v1 → 60%
   └── v2 → 40%

甚至可以:

A/B Testing
Canary
Blue/Green

这使 Workflow 本身进入:

Software Delivery Lifecycle


55. Workflow DSL

复杂 Workflow 可以设计 DSL:

workflow:
  name: investment-analysis

  steps:

    - id: research
      agent: research-agent

    - id: financial-analysis
      agent: finance-agent
      dependsOn:
        - research

    - id: risk-analysis
      agent: risk-agent
      dependsOn:
        - research

    - id: review
      agent: reviewer
      dependsOn:
        - financial-analysis
        - risk-analysis

    - id: human-approval
      type: human
      dependsOn:
        - review

Runtime 读取:

YAML
Workflow Definition
DAG
Scheduler
Execution

这样 Workflow 就真正成为:

可配置、可版本化的执行模型。


56. Workflow DSL 的本质

DSL 并不是为了让 YAML 看起来漂亮。

它真正的价值是:

Workflow
AST / Graph
Validation
Optimization
Execution

例如 Runtime 可以在执行前发现:

Cycle
Missing Dependency
Invalid State
Unknown Task
Duplicate Task ID
Invalid Condition

甚至可以:

Static Analysis

提前发现错误。


57. Workflow 编译器

更进一步,可以把 Workflow 看成一种 Programming Language。

例如:

Workflow DSL
Parser
AST
Validator
Execution Plan
Runtime

这与:

Source Code
Compiler
AST
IR
Machine Code

非常类似。

因此:

高级 Workflow Engine 本质上正在逐渐演化成一种流程编程语言 Runtime。


58. Workflow Optimization

既然 Workflow 是 Graph,就可以进行优化。

例如:

A → B
A → C

可以并行。

又例如:

A → B → C

如果:

B

只是简单数据转换,可以进行:

Task Fusion

即:

B + C

合并。

还可以进行:

Parallel Scheduling
Resource-aware Scheduling
Priority Scheduling
Critical Path Optimization

59. Critical Path

Workflow 的总执行时间通常取决于:

Critical Path

例如:

A(2s)
├── B(10s)
│     │
│     ▼
│     D(5s)
└── C(3s)
      D

关键路径:

A → B → D

时间:

[ 2 + 10 + 5 = 17s ]

C 即使从:

3s → 1s

整个 Workflow 也不会明显改善。

所以 Workflow Optimization 应该优先:

优化 Critical Path。


60. Agent Workflow 的 Critical Path

AI Workflow 特别容易出现:

LLM
Tool
LLM
Tool
LLM

如果所有调用都是串行:

Latency
=
LLM1
+
Tool1
+
LLM2
+
Tool2
+
LLM3

因此可以尽可能:

                 ┌── Tool A
LLM Decision ────┼── Tool B
                 └── Tool C

然后:

Results
LLM Synthesis

这样可以大幅降低:

Latency

61. Workflow 与 Parallelism

需要注意:

并行不是越多越好。

如果同时执行:

1000 LLM Calls

可能导致:

Rate Limit
Cost Explosion
Database Pressure
API Overload

因此需要:

Concurrency Control

例如:

Workflow concurrency = 100
Agent concurrency = 20
Tool concurrency = 10

形成层级资源控制。


62. Workflow 的故障模型

生产 Workflow 必须假设:

Worker Crash
Scheduler Crash
Network Partition
Database Failure
Queue Failure
LLM Timeout
Tool Timeout
Duplicate Message
Out-of-order Event

因此设计目标不是:

“系统永远不失败。”

而是:

“系统失败之后能够继续正确运行。”

这就是:

Fault-tolerant Workflow。


63. Workflow Recovery

一个完整 Recovery:

Worker Crash
Task Lease Expired
Task Recovered
Retry
Worker B
Continue

这里通常需要:

Lease
Heartbeat
Timeout
Retry
Idempotency

例如 Worker 获得:

Lease = 30s

每隔:

10s

发送 Heartbeat。

如果:

Heartbeat Lost

Scheduler 可以认为:

Worker Dead

然后重新调度 Task。


64. Workflow Lease

数据库可以设计:

task_id
status
worker_id
lease_until
version

Worker 获取任务:

UPDATE task
SET worker_id = ?,
    lease_until = NOW() + INTERVAL '30 seconds',
    status = 'RUNNING'
WHERE task_id = ?
AND status = 'READY';

Worker 定期:

Heartbeat

更新:

lease_until

如果过期:

RUNNING
RECOVERABLE

重新进入:

READY

这是分布式 Worker 系统非常常见的模式。


65. Workflow 与 Exactly Once 的现实设计

一个更加现实的执行语义:

Workflow
At Least Once
Idempotent Task
Durable State
Effectively Once

而不是试图做到:

Exactly Once

这与 Kafka、消息队列、分布式任务系统的工程思想高度一致。


66. Workflow Engine 的核心模块

一个生产级 Workflow Engine 可以拆成:

┌──────────────────────────────────────────┐
│              Workflow API               │
├──────────────────────────────────────────┤
│          Workflow Definition             │
├──────────────────────────────────────────┤
│          Workflow Validator              │
├──────────────────────────────────────────┤
│              Scheduler                  │
├──────────────────────────────────────────┤
│            Task Dispatcher              │
├──────────────────────────────────────────┤
│             State Manager               │
├──────────────────────────────────────────┤
│             Retry Manager               │
├──────────────────────────────────────────┤
│              Timer Service              │
├──────────────────────────────────────────┤
│          Recovery Manager               │
├──────────────────────────────────────────┤
│             Event Bus                   │
├──────────────────────────────────────────┤
│            Persistence                  │
├──────────────────────────────────────────┤
│           Observability                 │
└──────────────────────────────────────────┘

这已经不是一个简单的 Spring Boot Service。

它本质上是:

一个分布式执行平台。


67. Workflow Engine 的数据模型

核心表可以设计:

workflow_instance

保存:

workflow_id
definition_version
status
context
created_at
updated_at

Task:

workflow_task

保存:

task_id
workflow_id
task_type
status
attempt
worker_id
lease_until
input
output
error

Event:

workflow_event

保存:

event_id
workflow_id
task_id
event_type
payload
timestamp

这样:

Workflow
Task
Event

形成完整生命周期模型。


68. Workflow + Redis + Kafka + PostgreSQL

如果使用你比较熟悉的技术栈,可以设计:

                 API
          Workflow Engine
       ┌──────────┼──────────┐
       ▼          ▼          ▼
   PostgreSQL   Redis       Kafka
       │          │           │
 Definition     Lock       Event Bus
 State          Cache      Task Queue
 History        Lease
                Worker
       ┌──────────┼──────────┐
       ▼          ▼          ▼
     Tool        LLM       Database

职责可以明确分离:

PostgreSQL

Source of Truth

保存:

Workflow
Task
State
Execution History

Redis

Fast Coordination

用于:

Lock
Lease
Cache
Rate Limit
Short-lived State

Kafka

Event / Task Transport

用于:

Task Queue
Event Bus
Workflow Event

这种架构对于 Java/Spring Cloud 背景的工程师非常容易落地。


69. AI Agent Workflow Runtime

最终可以形成一个完整架构:

                         User
                  ┌───────────────┐
                  │ Workflow API  │
                  └───────┬───────┘
                ┌───────────────────┐
                │ Workflow Runtime  │
                │                   │
                │ State Machine     │
                │ Scheduler         │
                │ Policy Engine     │
                │ Retry Manager     │
                │ Timer Manager     │
                │ Recovery Manager  │
                └─────────┬─────────┘
                     Task Queue
            ┌─────────────┼─────────────┐
            ▼             ▼             ▼
       Agent Worker   Tool Worker   Human Task
           LLM
         Decision
       Policy Validation
          Action
          Event
      Workflow Runtime

这个架构实际上就是:

Agent Runtime + Workflow Engine + Event-driven Architecture


70. Workflow 与传统微服务架构的关系

微服务解决:

Service Boundary

Workflow 解决:

Process Boundary

例如:

Order Service
Payment Service
Inventory Service
Shipping Service

Workflow:

Order
Payment
Inventory
Shipping

因此:

Microservice
    = Who owns the data/capability?

Workflow
    = Who executes the process and in what order?

两者应该结合,而不是互相替代。


71. Workflow 与 Kafka 的关系

Kafka 是:

Event Transport

Workflow 是:

Process Execution

不要认为:

Kafka = Workflow Engine

Kafka 可以传递:

TASK_READY
TASK_COMPLETED
PAYMENT_SUCCESS
APPROVAL_GRANTED

但 Kafka 本身并不会天然解决:

Workflow State
Dependency
Human Wait
Compensation
Task Lifecycle
Versioning

因此:

Kafka
    = Event Infrastructure

Workflow Engine
    = Process Orchestration

72. Workflow 与 Kubernetes 的关系

Kubernetes 负责:

Container
Pod
Deployment
Service
Infrastructure Scheduling

Workflow 负责:

Business / Agent Process
Task Dependencies
Retry
Approval
Compensation
Long-running Execution

例如:

Kubernetes
运行 Workflow Worker

Workflow
运行 Business Process

两者属于不同层次。


73. Workflow 与 Temporal 类系统的核心思想

现代 Durable Workflow 系统的一个重要思想是:

Workflow Code 可以像普通代码一样写,但 Runtime 会记录执行历史并在故障后恢复。

例如概念上:

Workflow.execute(() -> {

    Result a = stepA();

    Result b = stepB(a);

    Result c = stepC(b);

    return c;
});

背后 Runtime 实际维护:

Workflow History
Task State
Timer
Retry
Checkpoint
Recovery

这使开发者能够:

用接近普通程序的方式编写长期运行流程。

这是 Workflow Engine 发展的一个重要方向:

Durable Execution。


74. Workflow 的真正价值:把时间纳入程序模型

这是我认为 Workflow 最深层的一个概念。

传统程序:

Request
Execution
Response

Workflow:

Start
Execute
Wait 3 days
Resume
Execute
Wait human
Resume
Complete

因此:

Workflow 把“时间”变成了程序的一部分。

普通代码主要描述:

What to do

Workflow 还描述:

When to do
What happens while waiting
What happens after failure
How to resume

这就是 Workflow 的本质价值。


75. AI Agent Workflow 的真正变化

传统 Workflow:

Human defines:
A → B → C → D

AI Workflow:

Human defines:
A → Agent → B → Agent → C

Agent 节点能够:

Reason
Plan
Select Tool
Generate Decision
Adapt Strategy

但是:

Workflow Runtime

仍然负责:

State
Permission
Persistence
Retry
Timeout
Recovery
Audit

所以未来更可能出现:

Deterministic Workflow
        +
Probabilistic Agent
        +
Policy Engine
        +
Durable Runtime

而不是:

Everything controlled by LLM

76. Workflow Architecture 的最终抽象

可以把整个系统抽象成:

[ AgentWorkflow = Workflow + StateMachine + LLM + Tool + Event + Persistence + Policy ]

其中:

Workflow
    → Process

State Machine
    → Lifecycle

LLM
    → Intelligence

Tool
    → Capability

Event
    → Communication

Persistence
    → Durability

Policy
    → Safety

最终形成:

              Intelligence
                  LLM
              Decision
            ┌─────────────┐
            │  Workflow   │
            │   Engine    │
            └──────┬──────┘
          ┌────────┼────────┐
          ▼        ▼        ▼
       State      Event    Policy
          │        │        │
          └────────┼────────┘
                Action
          ┌────────┼────────┐
          ▼        ▼        ▼
        Tool     Human     Agent

77. 最重要的十条 Workflow Engineering 原则

如果只保留本文最重要的内容,我建议记住:

1. Workflow 是可执行的流程模型

不是简单流程图。

2. Workflow Definition 和 Runtime 分离

Definition ≠ Execution

3. DAG 是基础,但不是全部

复杂 Workflow 需要:

DAG + State Machine + Event

4. Worker 与 Scheduler 分离

Scheduler → Queue → Worker

5. Workflow 必须 Durable

Process Crash ≠ Workflow Crash

6. Retry 必须考虑幂等

At Least Once
+
Idempotency

7. Failure 必须显式建模

Retry
Timeout
Compensation
Recovery

8. Human Wait 不能占用 Worker

Persist → Release → Resume

9. Workflow 必须支持 Versioning

Workflow v1
Workflow v2
Workflow v3

10. LLM 应该是 Workflow 中的智能节点

而不是:

LLM = Workflow Runtime

78. 最终总结

Workflow 的发展经历了一个非常有意思的过程:

传统流程
BPM
DAG
Workflow Engine
Distributed Workflow
Durable Execution
AI Workflow
Agent Workflow
Multi-Agent Workflow

传统 Workflow 解决的是:

如何可靠地执行一个复杂流程。

AI Agent 解决的是:

如何让机器具备推理和自主决策能力。

两者结合以后,真正有价值的系统变成:

让非确定性的 AI 决策运行在确定性的 Workflow Runtime 之中。

因此,一个成熟的 Agent 系统不应该只是:

Prompt
LLM
Tool

而应该是:

                         User
                  ┌──────────────┐
                  │   Workflow   │
                  │   Runtime    │
                  └──────┬───────┘
              ┌──────────┼──────────┐
              ▼          ▼          ▼
           State       Policy      Event
              │          │          │
              └──────────┼──────────┘
                    Agent / LLM
                    Decision
                       Tool
                       Result
                       Event
                  Workflow Runtime

最终可以用一句话概括:

State Machine 管理“状态”,Workflow 管理“流程”,LLM 提供“智能”,Tool 提供“能力”,Event 负责“连接”,Durable Runtime 保证“可靠执行”。

这六者很可能会成为下一代 Agent Runtime Architecture 的核心组成部分。

而真正成熟的 Agent Engineering,最终追求的不是:

“让 Agent 尽可能自主。”

而是:

在明确的边界、状态、流程、策略和持久化机制中,让 Agent 尽可能自主。

下一篇建议选 “Durable Execution 深度技术博客”“Agent Workflow Runtime 源码级架构设计”

Vincent zhai
Vincent zhai
Full-Stack Engineer