Skip to content

ControlFlow ​

ControlFlow 决定 哪些 Unit 在何时执行。YAML spec.flow 映射到下列类(Composite 仅代码 API)。

类总览 ​

类typeYAML 支持说明
SequentialFlowsequential✅按顺序逐个执行
ParallelFlowparallel✅并行执行后由 reducer 汇总
RouterFlowrouter✅路由 Unit 决定分支
LoopFlowloop✅单 Unit 迭代直至条件或上限
DAGFlowdag✅规划 → 依赖图执行 → 聚合
DelegationFlowdelegation✅编排者委派专家 Unit
CompositeFlowcomposite❌嵌套子 ControlFlow(仅代码)

SequentialFlow ​

typescript
new SequentialFlow(units: WorkflowUnit[])
YAML 字段说明
type: sequential—
order: string[]Unit ID 顺序;省略则按 units 声明顺序

ParallelFlow ​

typescript
new ParallelFlow(
  units: WorkflowUnit[],
  reducer: WorkflowUnit,
  failureStrategy?: FailureStrategy, // 默认 'fail-fast'
)
YAML 字段说明
units: string[]并行 Unit ID 列表
reducer: string汇总 Unit ID
failureStrategy'fail-fast' | 'continue'

RouterFlow ​

typescript
new RouterFlow(
  router: WorkflowUnit,
  handlers: Map<string, WorkflowUnit>,
  routeExtractor: (output: AgentOutput) => string,
)
YAML 字段说明
routerUnit: string路由 Unit
routes: Record<string, string>路由键 → 目标 Unit ID

默认 routeExtractor:优先 output.metadata.route,否则 output.content.trim()。

示例:记账意图分流

LoopFlow ​

typescript
new LoopFlow(
  unit: WorkflowUnit,
  maxIterations: number,
  terminationCondition?: (state: SharedState) => boolean,
)
YAML 字段说明
unit: string循环体 Unit
maxIterations上限,默认 10
untilStateKeySharedState 键为真时终止

DAGFlow ​

typescript
new DAGFlow(
  planner: WorkflowUnit,
  executors: Map<string, WorkflowUnit>,
  aggregator: WorkflowUnit,
  dependencies: Map<string, string[]>,
)
YAML 字段说明
planner生成计划的 Unit
executors: string[]执行步骤 Unit
aggregator聚合 Unit
dependencies步骤依赖图

DelegationFlow ​

typescript
new DelegationFlow(
  orchestrator: WorkflowUnit,
  specialists: Map<string, WorkflowUnit>,
)
YAML 字段说明
orchestrator委派决策 Unit
specialists: string[]专家 Unit 列表

CompositeFlow ​

typescript
new CompositeFlow(subFlows: ControlFlow[])

YAML v1 不支持。复杂嵌套拓扑请在 TS 中用 createWorkflowEngine 构建子图。

ControlFlow 接口 ​

所有实现均提供:

方法说明
next(state, completedUnits?)返回下一批待执行 Unit
isComplete(state)控制流是否结束
serialize()检查点游标
restore(cursor)从检查点恢复

相关 ​

MIT Licensed