DataMind Oda can ask a subagent to answer with a result that matches a fixed shape, called a schema, instead of plain text; the subagent reports it with the structured_output tool, and the run carries the recorded answer back. This page covers the call, what counts as the answer, and the cases that end without one.
structured_output tool. How delegation itself works is in Delegating work to subagents.Structured output recorded., and the subagent's turn ends there: the run makes no further requests.Error: structured output already recorded: the run is complete, so <tool> is not executed.unsupported JSON schema. Nothing starts for it: the refusal happens before the subagent is created.The failures a subagent run can meet are collected in Subagent failures and diagnostics.
It calls structured_output once with the finished answer. The call is acknowledged with Structured output recorded., the subagent's turn ends there, and the run's result carries the recorded answer. Plain closing text is not the answer.
structured_output twice?The second call is refused with Error: structured output already recorded: the run is complete, so <tool> is not executed. The run already has its answer, and the first recorded call stands.
Yes. Calls before the recorded one still run, so it can use its tools before it reports. Only its recorded call ends the turn.
unsupported JSON schema?The schema asked for a feature outside the supported subset, so the run was refused before any subagent started. Reduce the schema to the supported subset and delegate again.
The run settles as an error. A clean turn that ends without the recorded call is not accepted as a plain-text answer, and the run is not prompted again to report.
A cancelled run reads as cancelled, not as an error. The error is kept for a clean finish without the report, so a cancellation is never misread as a failure to answer.
The call is refused with an invalid-arguments result, and the subagent can correct the call and try again within the same turn.
No. Only runs that carry an output schema. A delegation without one does not give the subagent the tool, and a target that cannot carry a schema refuses the request before the run starts. See Choosing and enabling a delegation backend.
The recorded answer, carried with the run's result, so the delegating side has a result it can check against the schema instead of free text. How a result reaches your chat depends on the run's shape; see Delegating work to subagents and Background subagents and job collection.