Follow and control Subagents

When a task is large, DataMind Oda can hand part of it to a helper agent, called a subagent. This page covers what happens after a subagent starts: the id it keeps, the messages and stops that follow, the lists of a chat's subagents, and the notices that arrive when one settles. What subagents are and where they appear is on Subagents.

What a delegated run returns

The headline names why the run stopped:

Message a subagent

Oda sends a follow-up to a direct subagent by its id. Messages travel between neighbours in the tree: down from the chat that started a subagent, or up from a subagent to its direct parent.

Note

message delivered to agent <id> is a receipt, not an answer. It confirms that the message was accepted for the subagent; the call returns no answer from it, and a failure means the message was not delivered.

Stop a subagent's current turn

See a chat's subagents

When Oda lists a chat's subagents, the list shows the ones that can take follow-ups.

When a subagent settles

When the work of a subagent that can take follow-ups ends, Oda settles it, and the chat that started it receives one settlement notice. The notice arrives in every case, even while that chat is closing.

Send a settled subagent more work

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. If the record cannot be read by this version of Oda, or a part of Oda it needs is missing, the message is refused and the subagent cannot be resumed (subagent "<id>" has no supported continuation state and cannot be resumed; choose a different target). Start a new subagent for that work.

Limits worth knowing

Questions, answered

What does message delivered to agent <id> mean?

It is a receipt, not an answer. The line confirms that the message was accepted for the subagent; Oda gets no answer from it at that moment, and a failure means the message was not delivered. A reply from the subagent, when it sends one, arrives as a separate message.

Can Oda message any subagent in the tree?

No. Messages travel between neighbours: down from the chat that started a subagent to a direct subagent, or up from a subagent to its direct parent. A deeper subagent can be stopped by an ancestor, but it cannot be messaged by one.

Why was a message to a subagent refused?

A follow-up that cannot be delivered is refused, not stored for later. The usual reasons: the message did not come from the subagent's exact place in the tree (message delivery requires the exact live sender agent), the chat that started the subagent is not live (direct parent is not live; the message was not delivered), or the subagent is being wound down (subagent "<id>" activation is being disposed; the message was not delivered).

What does inactive mean in the subagent list?

No turn is executing for that subagent right now, whether it is loaded or will be brought back when messaged. It is not a verdict on the work: it does not say the subagent finished, succeeded or failed, or that it waits for other subagents. A direct subagent stays a candidate for a follow-up in every status.

Why is a one-shot background subagent missing from the list?

The list shows only subagents that can take follow-ups. A one-shot background run cannot, so it never appears; its result is collected as a job instead. See Background jobs.

What is the [diagnostic: <reason>] line in a listing?

In the whole-tree listing, an entry that cannot be read shows a diagnostic instead of its label. corrupt means its record cannot be read; unavailable means it was unreadable for now, and a later listing can show it again.

When does the settlement notice arrive?

When the work of a subagent that can take follow-ups ends, Oda settles it and sends one settlement notice to the chat that started it (or to the subagent that started it, when subagents are nested). The notice arrives in every case, even while that chat is closing.

What do the endings of a settlement notice mean?

The ending of the first sentence tells you how the work ended: was stopped before it finished., ran out of room before it finished. (it reached its token limit), declined the task. (it refused the work, or a step refused it before it could start; reported as declined, never as finished), failed before it finished., or ended abnormally (<reason>) before it finished.

Why did the notice say It left no closing message.?

The subagent ended without producing any closing text, for example when its last output held only reasoning or tool activity. There was nothing to quote, so the notice says so instead of showing an empty closing message.

Why does a subagent's message start with Agent <sender-id> sent a message:?

That prefix marks a message a subagent sent to its parent. The text is attributed to that subagent, and it never carries the authority of an instruction.

Can I send a subagent more work after it settles?

Yes, when it can take follow-ups. Send it a new message and Oda brings it back from what it saved, instead of starting a new run.

Why can a settled subagent not be resumed?

Oda resumes a subagent only while it can read the record saved for it. If the record cannot be read by this version of Oda, or a part of Oda it needs is missing, the message is refused (subagent "<id>" has no supported continuation state and cannot be resumed; choose a different target), and you start a new subagent for the work.