Workflows

Draw, author and follow an agent workflow. The execution model is an ordered tree rather than a graph, so both surfaces derive their edges and neither can author one — see the outline and the canvas side by side on the same definition.

Workflow run, from the real timeline shape

Driven by the shape the runtime already returns. It leads with the two questions an operator actually has — what failed, and what is waiting on a person — because a parked step needs a person while a running one only needs patience.

  • WorkflowRunView

Waiting on a person, not on the runtime

  • signOff — 1 request(s) open
6 steps32.9s of step time

Select a step to see its timing, gate decision, artifacts and error.

Workflow editor (option A, authoring)

Add a step from the palette or from any list own menu, reorder by dragging the handle or with the arrow controls, and edit every property as a field. The palette states where the step will land before you click, because a sidebar is attached to no list and a wrong guess would be silent. A fetch step picks its tool from the catalog and renders that tool declared inputs.

  • WorkflowEditor
  • WorkflowStepForm
  • WorkflowJsonView

10 of 25 steps

  • high-volume

    else

Select a step to edit its prompt, inputs, outputs and reliability settings — or open the JSON tab to read and copy the whole definition.

Steps reorder within their own list, by dragging the handle or with the arrow controls. Moving one into a different container would change which artifacts are in scope for it, so it is not offered — the runtime would reject the result.

Derived view, live

  1. high-volume

    else

Every primitive, configured

One representative step of each of the twelve, with the properties that make it that primitive rendered as real fields. An agent step shows no prompt box on purpose — its prompt lives on its agent config, and inventing the field here would discard whatever was typed into it.

  • WorkflowStepForm

Agent step

Invoke an agent config serially. The default when no primitive is set.

This step's prompt and model live on its agent config, not on the step. Editing how it writes means editing that config; the payload below is what this step adds to the call.

Identity

The agent config invoked for this step. Its prompt and model live on the config, not here — so changing how this step writes means editing that config.

A human name for the step. Falls back to the primitive when unset, and does not key anything.

Inputs
Step payload

Step-specific input merged into what the step receives, alongside input, previousResult and stepResults.

Outputs

Keys this step output in the artifact context. Later steps read it as artifacts.<name>. Letters, digits, underscore or dash; must start with a letter.

Control

Overrides the config model for this step only.

Reliability

Bounds ACTIVE execution only. A step parked on a human stops the clock, so an approval wait is unaffected.

Total attempts including the first. Leave empty for a single attempt. Terminal failures — policy denials, validation — never retry.

Delay before the second attempt, multiplied after each failure.

Retry only on

Error codes that may retry. Empty means any non-terminal failure.

What each position accepts

The rule the palette enforces, stated where it can be read. It is not intuitive: a return is legal inside a branch case and illegal inside a forEach body at the same depth, because a case flattens into the sequence while a forEach body becomes a Map state.

  • WorkflowEditor
PrimitiveTop levelBranch caseforEach / parallel body
operationallowedallowedallowed
gateallowedallowedallowed
waitallowedallowedallowed
fetchallowedallowedallowed
transformallowedallowedallowed
forEachallowed
branchallowed
parallelallowed
subworkflowallowed
returnallowedallowed
approvalallowedallowed
waitForEventallowedallowed
  • Top level. The sequence itself. Everything is legal.
  • Branch case. Flattens into the sequence at compile time, so it keeps return, approval and waitForEvent — but cannot open a new container.
  • forEach / parallel body. Compiles to a Map or parallel state, which holds no nesting, no jump, and no human park.

The definition as JSON

The escape hatch, not the primary surface. These definitions are authored by agents as well as people, so someone reviewing one needs the exact text — and copy takes the source rather than a re-serialization that would reorder keys. Invalid JSON leaves the definition untouched.

  • WorkflowJsonView

Definition — edited here or in the form

The same definition, drawn

  1. high-volume

    else

Workflow outline (option A)

The nested-list surface the execution model argues for: reading order is execution order, and no canvas is involved. References are stated rather than drawn.

  • WorkflowSequence
  1. high-volume

    else

Select a step to inspect it. Both surfaces report the same selection.

Workflow canvas (option B)

The same definition on React Flow. Read-only by construction — there is no onConnect, because the runtime has no representation for a user-drawn edge.

  • WorkflowCanvas
Mini Map

Select a step to inspect it. Both surfaces report the same selection.

Workflow run, both surfaces

One in-flight run rendered by both options, from the identical graph — so the comparison is about the surface rather than the fixture.

  • WorkflowSequence
  • WorkflowCanvas

Run, as an outline option A

  1. high-volume

    else

Run, on the canvas option B