Oda can hand part of a task to a helper agent, called a subagent. A continuable subagent can work while your chat continues, and it can be sent more work later. When its work ends, Oda settles it and its parent receives a settlement notice. This page explains that notice, how a subagent reports results back, and what Oda keeps about it.
Oda sends one settlement notice each time a subagent's work ends. The notice goes to the subagent's parent: the chat that started it, or the subagent that started it when subagents are nested. Oda delivers it in every case, even while the parent is closing.
The notice names the subagent and says it will not act again unless it is sent more:
Background subagent <child-id> finished and will do no further work unless you send it more.
The ending of that sentence tells you how the work ended:
was stopped before it finished. when the work was stopped.ran out of room before it finished. when the subagent reached its token limit.declined the task. when the subagent refused the work, or a policy step refused it before it
could start.failed before it finished. when the run ended in an error.ended abnormally (<reason>) before it finished. when it ended for another reason; the reason is
named in brackets.A subagent that was refused before it could start is reported as declined, never as finished.
The notice also carries the subagent's closing text, when there is any:
Its closing message: followed by the closing text.It left no closing message. when the subagent produced no closing text, for example when its
last output held only reasoning or tool activity.Only the closing text is quoted. The subagent's reasoning and its tool activity are not part of the
notice, and the notice stays apart from any message the subagent sent itself, so only the text under
Its closing message: reads as the subagent's own wording.
Your chat does not receive a subagent's transcript, tool output or reasoning on its own. A continuable subagent is told the id of its parent and asked to send a self-contained result back before it finishes, using its message tool. Sending a message does not end the subagent's turn, so it can keep working after sending one.
A message from a subagent arrives prefixed with its id:
Agent <sender-id> sent a message:
The prefix marks the text as a relay from that subagent. Oda attributes it to that subagent, and it does not carry the authority of an instruction.
Oda settles a subagent when three conditions hold: no turn is running, no messages are waiting for it, and no subagents it started are still running. Oda then saves the subagent's final state and closes it, closing any subagents it started first.
If that final save cannot complete, Oda warns that the subagent's saved state may be out of date when it is resumed.
Oda saves a record inside every subagent it starts. The record describes the subagent: its id and label, whether it runs once or can be continued later, and what Oda needs to bring it back. The record is written once, during the subagent's first turn, and the first record is the one that counts.
The parent also keeps a record for the subagents it starts: when one starts, when it ends, and how it ended, for example that it was stopped or that it ran out of room. A subagent is added to that record once it is established; a start that fails leaves nothing behind.
Timing for a subagent counts from its own record, and its latest turn state reports only how its most recently finished turn ended. These records are part of the chat's saved history; Search past sessions covers how Oda looks back at earlier chats.
A settled subagent is inactive, not gone. Send it a new message and Oda brings it back from what it saved, instead of starting a new run. For follow-up messages and interrupts, see Continuable subagents: follow-ups and control.
A subagent can be resumed only while Oda can still read the record saved for it. A record from a version of Oda that no longer supports it cannot be read, so that subagent cannot be resumed; start a new one for the work.
One-shot background helpers report differently: collect their output as a job with the job tools, as described in Background subagents and job collection.
The subagent's work ended and Oda settled it. The subagent will do no further work unless it is sent
more, so your chat will not receive anything more from it on its own. The ending of the notice tells
you how the work ended, for example was stopped before it finished. or failed before it finished.
It left no closing message.?The subagent ended without producing any closing text. When its last output holds only reasoning or tool activity, there is nothing to quote, so the notice says so instead of showing an empty section.
declined the task mean?The subagent refused the work, or a policy step refused it before it could start. A declined subagent is reported as declined, never as finished. The refusals a subagent run can meet are listed in Subagent failures and diagnostics.
ran out of room before it finished. mean?The subagent reached its token limit before it could finish, so the work stopped incomplete. Resume the subagent and send it what remains, or start a new one for that part.
Yes. Oda delivers the settlement notice to the subagent's parent in every case, including while that parent is closing.
Agent <sender-id> sent a message:?That prefix marks a message sent by a subagent to its parent. The text is attributed to that subagent, and it does not carry the authority of an instruction.
No. A subagent's transcript, tool output and reasoning do not reach your chat on their own. What comes back is the result the subagent sends with its message tool, and the closing text carried by the settlement notice.
Yes, when it is a continuable subagent. Oda brings it back from what it saved and delivers your message, without starting a new run. See Continuable subagents: follow-ups and control.
Oda can resume a subagent only while it can still read the record saved for it. A record from a version of Oda that no longer supports it cannot be read, so the subagent cannot be resumed and you should start a new one. Other reasons a resume can be refused are listed in Subagent failures and diagnostics.