Top-level fields
- WorkflowstringRequired
- The workflow’s name. It can change; the workflow’s id does not.
- Descriptionstring
- What the workflow does, as a calling model reads it. Required for a workflow another workflow binds.
- Triggersentry[]Required
- The requests the workflow accepts, each under New with a JSON Schema.
- ModestringDefault
Queue - What a request does while a turn is live.
QueueRejectSupersedeQueueThenSupersedeAfterQueueThenRejectAfter - WaitTimeoutduration
- Required by the two modes ending in After, refused by the others.
- StandalonebooleanDefault
true - False leaves the workflow to be called by other workflows only; starting a run on it is refused.
- Modelmodel selectorDefault
auto - The models the workflow’s model steps run on where they name none. Where absent, the steps ask for auto: the models the organization lists in Settings › Models, tried in order.
- Instructionsstring
- Instructions for every model step: raw text, or a reference to a prompt Momor holds.
- Operationsbinding[]
- Every tool, workflow and wait the steps may name.
- Functionsfunction[]
- Reusable expressions, each with Name, Parameters and Body.
- Budgetobject
- What a turn of this workflow may spend. Declaring it requires OnExhausted.
- Callsinteger
- Operation calls.
- Roundsinteger
- Model requests.
- Durationduration
- Working time, with time spent waiting left out.
- MemoryProbesinteger
- Memory reads. Declared on the workflow’s Budget only.
- OnExhaustedpolicy
- What happens when the Budget runs out.
BestEffortWaitReturn: <value> - RecoveryModestringDefault
Manual - How a failed turn is resumed.
ManualAuto - Outputoutput contractRequired
- What the workflow returns.
ContentStructured: <schema>ToolResult - Replyobject
- On a ToolResult workflow only: the field the closing reply is returned under, and its shape.
- Stepsstep[]Required
- The steps, in order.
- OnAfterhook[]
- Hooks run after a turn ends.
- StreambooleanDefault
true - Whether model text is sent live as it arrives. What is recorded is the same either way.
- GatherstringDefault
AsNeeded - The default for model steps. Always requires each reply to call an operation.
AsNeededAlways - KnowledgestringDefault
Open - The default for model steps. ToolsOnly answers from results already in the conversation.
OpenToolsOnly
Operation bindings
Operations:
- Tool: Fetch
Locator: embedded://momor.ai/services/tools/fetchPage
- Workflow: Intent
Locator: 85d12c16-c88a-47e5-94a9-28b16fa05436
Trigger: Request
- Wait: Clarification
Locator: embedded://momor.ai/services/tools/clarificationStep fields
Every step takes an optional name, as the value of its key or as Name. These are the fields each kind adds.
Model selectors
The object form takes Name, Tier, Publisher, Provider and System together: { Name: Auto, Tier: High, Provider: Anthropic }. Selectors work as they do in Gateway.
Output contracts
Output: Content
Output: ToolCall
Output: ToolResult
Output:
Structured:
type: object
required: [Topic]
properties:
Topic: { type: string }
Output:
OneOf: [Content, ToolCall]ToolCall and OneOf apply to model steps; ToolResult to a workflow’s own Output.
Diagnostics
An upload is compiled before anything is stored. A refused upload answers 422, or 400 where the YAML does not parse, with one line per problem: where it is, a stable code, the field path and what is wrong.
workflow.yaml(14,7): error MOMOR012: Steps[1].Operations: The step names the operation 'Refund', which Operations leaves undeclared.