Skip to content

YAML Loader

What(是什么)

YAML Loader 将 Workflow YAML(apiVersion: uniflow/v1)解析、校验、实例化为可运行的 Engine:

typescript
createEngineFromYaml(source: string | path, options?: {
  registry?: Record<string, UnitFactory>;
  bindings?: HttpBindings;
}): Promise<WorkflowEngine>;

source 可以是文件路径或 YAML 字符串;校验依据 schemas/uniflow.workflow.schema.json

Who(谁在用)

  • 人类与 AI 编辑拓扑的配置作者
  • CI:npx uniflow validate <path>
  • Orchestrator:POST /workflows/from-yaml

Why(为什么需要)

若没有 Loader + Schema后果
拓扑只在代码里人与 Agent 无法共用可 diff 真源
无 validate坏图到运行时才发现
uses 无法声明领域能力被迫写进引擎

Loader 是 YAML-first 纪律 的 enforcement 点,见 AGENTS.md

How(怎么用)

校验:

bash
npx uniflow validate examples/templates/sequential-mock.yaml

加载:

typescript
import { createEngineFromYaml } from 'uni-flow';

const engine = await createEngineFromYaml('./workflow.yaml', {
  registry: {
    'builtin.mock': () => createMockUnit(/* ... */),
    'myapp.classifier': myClassifierFactory,
  },
});

flow 映射: type: router | sequential | parallel | ... → 对应 ControlFlow 类。

模板: examples/templates/ 可复制修改。

仓库现状

状态
Schemaschemas/uniflow.workflow.schema.json
Loadersrc/yaml/loader.ts
CLI validatedist/cli/uniflow.js
Composite 全表达🟡 复杂嵌套用代码 API
HTTP bindings✅ Orchestrator 侧

相关链接

若你只记住一件事

改拓扑先改 YAML,改完必 validate——Loader 是契约守门人。

MIT Licensed