WorkflowRun a workflow
- Step kind
- WorkflowCall
- Operations
- Intent
- Input
- Prompt, Location
Inputs
- Operationsstring[]Required
- Declared workflow operations to run. Several run side by side and return together.
- Inputmapping
- What each called workflow is started with, checked against the request schema of its trigger.
- AttemptsintegerDefault
1 - How many attempts the step may take.
- OnExhaustedpolicy
- What happens when the attempts run out.
Outputs
- <output>any
- What the called workflow declares in its Output, checked against it before it is returned.
Example
Operations:
- Workflow:
Name: Intent
Locator: 85d12c16-c88a-47e5-94a9-28b16fa05436
Trigger: Request
Steps:
- WorkflowCall: Collect
Operations: [Intent]
Input:
Prompt: { Field: Trigger.Prompt }
Location: { Field: Trigger.Location }A Workflow binding’s locator is the id of the workflow it calls. Trigger names which of its requests the call uses, and is needed only where it accepts more than one. A workflow can be bound only if it declares a Description, because that is how it is described to a model that calls it.
How the called workflow runs
- Inside the turn. It opens no run and no turn of its own. Its steps are recorded in the calling run, under the calling step’s path.
- Its own conversation. It sees only the input you map, not the caller’s conversation, and the caller sees only its output, not its model exchanges.
- Pinned. It runs the version that was current when it started, even if a newer one is uploaded while it runs.
- Its questions surface on the caller. A wait it raises pauses the calling turn and is answered on the calling run; the answer goes back to the workflow that asked.
- Its own Budget is not applied. Its work counts against the calling turn’s budget instead. Its steps keep their own attempts and loop bounds.
A model can call a workflow tooList a workflow operation on a
ModelCall and the model can call it like a tool, with the workflow’s request schema as the tool’s input. ExecuteModelToolCall runs those calls the same way.