Defining a Workflow
Workflows live inconfig/workflows/*.yaml:
Step Dependencies
Steps declare which other steps they depend on viadepends_on. The orchestrator resolves the DAG and executes steps in the correct order, running independent steps concurrently where possible.
Conditions
Step conditions use a safe expression evaluator (noeval()) to check results from previous steps. A step only executes if its condition evaluates to true.
Supported operators: >=, <=, >, <, ==, !=, and, or, not.
Retries and Failure Handlers
Each step can declare retry policies and failure handlers:Triggering Workflows
Workflows can be triggered by:- Pub/Sub events: An agent publishes an event matching the workflow’s
triggerfield - Webhooks: External systems POST to a webhook URL
- Manual dispatch: Via the CLI or REPL
How the Orchestrator Works
- Receives a trigger event matching a workflow’s
triggerfield - Builds the DAG from step dependencies
- Executes steps in topological order
- For each step: checks conditions, dispatches task to the agent, waits for result
- On failure: applies retry policy, then failure handler
- Workflow completes when all steps finish or a failure handler aborts
