Loading
Workflows are declared as YAML. A file may be wrapped under a workflow: key,
which is unwrapped automatically. The compiler enforces an acyclic DAG with a
single entry node.
name: my-flow
version: "1.2.0"
description: An example workflow
inputs: { goal: "write a hello world" }
nodes: [...]
outputs: { result: "{{approve.output}}" }
metadata: { tags: [prod] }
| Field | Purpose |
|---|---|
id | Unique node id |
type | One of the 13 node types |
depends_on | Upstream node ids (DAG edges) |
config | Node-specific config (validated by schema) |
condition | Per-node guard expression |
on_error | abort / retry / skip / fallback_branch / delegate_replan |
retry | Retry policy |
timeout_seconds | Per-node timeout |
sensitivity | public / internal / confidential / restricted |
disabled | Skip the node |
depends_on targets existdepends_on){{node_id.field}} template references resolve to real node ids- id: b
type: Tool
depends_on: [a]
condition: "a.output.score > 0.5"