# Respond

A workflow answers with what its Output declares. There is no separate respond step: when the steps are done, the model replies once more and that reply, held to the Output, is the answer.

Output step, Respond:

- Written as: `Output`
- Output: `Content`
- Reply: `(ToolResult workflows only)`

## Inputs

- `Output` (output contract, required): What the workflow returns. Values: `Content`, `Structured: <schema>`, `ToolResult`.
  - `Content` (string): Text. An answer that is empty or only whitespace fails the turn.
  - `Structured: <schema>` (object): JSON checked against the schema you give.
  - `ToolResult` (result[]): The tool results the run gathered, each with the query it ran and its sources, for a workflow another workflow calls to collect material.
- `Reply` (object): On a ToolResult workflow only: the field the closing reply is returned under beside the results, and what it is narrowed to, Content or one Structured schema.

## Outputs

- `<result>` (any): The committed result: recorded as result.committed, returned to a calling workflow, and the turn ends Completed.

## Example

```yaml
Output: Content
Steps:
  - ExecuteTool: Pay
    Operations: [IssueRefund]
  - DeliverResults: HandOver
  - ModelCall: Reply
    Instructions: Tell the billing system the refund was issued, and give its refund id.
    Output: Content
```

Whenever the run’s conversation ends on results, the engine asks the model to reply to them: before the next model step, and once the steps are done. A final `ModelCall`, as here, asks your own question last. Either way, the last reply is held to the workflow’s `Output` and becomes the result.

## Reading the result

- **On the stream.** A run started with Accept: text/event-stream sends result.committed, with the value, before the turn ends.
- **Afterwards.** The turn’s resultRef names the result.committed event; the run’s events hold it for as long as the run is kept.
- **From another workflow.** A WorkflowCall step receives the result as its own value.

## Related steps

- [Ask the model](/docs/workflows/steps/ask-the-model/): Write the closing reply with your own question.
- [Run a workflow](/docs/workflows/steps/run-a-workflow/): Use one workflow’s result in another.
- [Run history](/docs/workflows/run-history/): Read a run’s events and results.
