Delegating work to subagents

DataMind Oda can split a task and hand one self-contained piece of it to a subagent: a helper agent Oda starts for that piece of work. This page covers the delegation call, what it can carry, and how the result of a run that waits comes back.

How delegation works

One-shot, continuable or unknown

What the call carries

Each backend registers its own delegation tool, and a chat can hold several at once: the default tool is named subagent, and other tools carry their backend in the name, for example subagent_codex or subagent_claude_code. A tool exists while its backend does.

What a run that waits returns

How far delegation can go

What is checked before a run starts

Questions, answered

What does Oda put in the brief for a subagent?

A description for the step and a prompt that is the subagent's brief. Oda writes the prompt so the task stands on its own, because a fresh subagent starts from it alone and does not see your chat.

Does a subagent see this chat?

No. A fresh subagent starts from its brief alone and does not read the conversation. It runs in the chat's working folder, so it works on the same files, but what it knows about the task comes from the prompt. One backend starts a subagent from the chat's completed turns instead; even then it does not see the turn in flight. See Choosing and enabling a delegation backend.

What do I get back when a subagent finishes?

The subagent's final text, joined into the step as the result. The call does not carry the subagent's transcript, tool output or reasoning, and the subagent's intermediate steps stay in its own record. If the run ends early, the text it did produce is kept under Partial output before the run ended:.

Can a subagent start its own subagent?

By default, no: the depth budget allows direct subagents only, so a chat can start a subagent, and that subagent cannot start subagents of its own. When the budget is raised in Subagent settings, nested subagents are allowed up to the new depth. A start past the limit is refused with subagent depth <n> exceeds maxDepth <m>, and a subagent that resumes keeps the depth it had.

Why does a failed run carry a Diagnostic line?

A run that does not complete keeps what it knows and what it produced: a headline that names why it stopped, a Diagnostic: line, and any partial text under Partial output before the run ended:. The five headlines are subagent run was cancelled, subagent run failed, subagent run hit its token limit before finishing, subagent declined the task and subagent run ended abnormally (<reason>). Subagent failures and diagnostics explains each one and the diagnostic text.

Why was a delegation refused before it started?

Before a subagent starts, the call is checked against the backend it names: a request that needs a feature the backend does not offer is refused there instead of being started and ignored, and a one-shot task must be text only. See Choosing and enabling a delegation backend.

Can Oda delegate several parts at once?

Yes. Oda can delegate parts of the work that do not depend on each other together, and those runs overlap instead of queueing one behind another.

What happens if a delegation backend is not available?

Each delegation tool exists while its backend does, and a call whose backend is missing or has changed fails instead of starting. A backend that changes while the subagent's model route is being resolved reports subagent provider "<name>" changed while resolving the child LLM route; retry the delegation, which asks for a retry. A run that already started is not stopped when its backend is later removed.

Do subagents work on my files?

Yes. A subagent starts in the chat's working folder and shares the workspace with the chat, so it reads and changes the same files. The chat's access mode shapes what a subagent may do; see Subagent permissions and sandboxing and Workspaces, files and permissions.