Loading the documentation…
DataMind Oda can hand part of a task to a subagent. Two limits decide how deep and how wide that delegation may go, and both are edited in the app. This page covers those limits, their defaults, where they are set, and what overrides them.
The same two limits appear on two surfaces, and both write the same values:
| Limit | What it decides | Default and accepted values |
|---|---|---|
| Maximum recursion depth | How many levels of subagents a task may create. 0 disables subagents; 1 means only the main agent creates them; higher values let each level create the next, until the limit is reached. | 1; a whole number of 0 or more. |
| Subagent parallelism limit | How many subagents can be live at the same time under the same main agent, across all levels. The main agent is not counted, and new subagents are refused while the limit is reached. | 8; a whole number of 1 or more. |
Each field has a disclosure, About maximum recursion depth and About the Subagent parallelism limit, that explains these rules; opening it does not change the values you are editing.
A delegation tool can carry a maximum recursion depth of its own, or leave the maximum to its provider with provider-managed. Either way, it takes precedence over Maximum recursion depth. Delegating work to subagents covers how far a run can go.
On the Plugins page, one Save writes the Limits section and the Model selection section together.
The values are read as delegation happens: a changed depth applies from the next delegation, and the parallelism limit is counted whenever a subagent starts. Lowering the parallelism limit does not stop subagents that are already running; further starts are refused until the number of live subagents falls below it.
Background mode. The shape of a delegation, one-shot or continuable, is set on the delegation tool itself, not on these surfaces. one-shot is the default, and continuable needs a provider that supports it. See Background subagents and job collection and Continuable subagents.
Model selection. Whether agents may choose a model for a subagent starts off; the switch is the Model selection section of the Subagent page. See Choose models for Subagents.
The tool around the limits. A delegation tool names the provider it delegates to, and it exists while that provider is registered. It ships under the name subagent with background runs enabled, and its depth comes from Maximum recursion depth unless it carries a maximum of its own. The call itself is in Delegating work to subagents.
The teammate limit. The Subagent surfaces carry no teammate count. Teammates have their own card under Agent Teams on the Agent presets page; see Agent teams.
| Message | What it means | What to do |
|---|---|---|
Enter a whole number of 0 or more. | The Maximum recursion depth value is not a whole number of 0 or more. | Correct the value; Save waits until the field is valid. |
Enter a whole number of 1 or more. | The Subagent parallelism limit value is not a whole number of 1 or more. | Correct the value; Save waits until the field is valid. |
The deployment did not accept these values; they were left for you to correct. | The change was not saved, and your draft is kept. | Correct the values and save again; if it repeats, ask your administrator. |
Settings changed elsewhere. | The settings changed somewhere else while you were editing, so Oda does not overwrite the newer values. | Discard your draft, reopen the surface, and make the change again. |
This deployment stores settings read-only. | This installation keeps its settings read-only, so the fields stay disabled. | Ask your administrator. |
This plugin is not loaded, so it cannot be configured right now. | The deployment does not offer these settings right now. | Try again later; if it stays this way, ask your administrator. |
When a delegation tool is set up, Oda checks it against the provider it names. A mismatch stops the tool from loading, with messages like these:
| Message | What it means | What to do |
|---|---|---|
cannot enforce maxDepth (no depthLimit capability). The message then says set maxDepth: 'provider-managed' to leave the recursion budget to the provider. | A tool asked for a numeric maximum from a provider that cannot enforce one. | Leave the maximum to the provider with provider-managed, or use a provider that can enforce depth. |
does not support child agentOptions | The provider cannot take per-child options, such as a model or a token cap. | Remove the child options, or use a provider that takes them. |
does not support child model selection | The provider cannot take a chosen model for the child. | Turn model selection off for that tool, or change the provider. |
does not support backgroundMode: continuable | The provider cannot keep a subagent for later messages. | Use one-shot background mode with this provider. |
tool-subagent: toolFilter is configured but names neither allow nor deny | A tool filter was set with nothing in it. | Fill the allow or deny list, or remove the filter. |
background jobs unavailable: load the jobs and tool-jobs plugins: this installation cannot start a background run. Use a foreground delegation, or load the jobs plugins in this installation.subagent provider "<name>" changed while resolving the child LLM route; retry the delegation: the provider was replaced while the child's route was being resolved. Run the delegation again.On two surfaces, both writing the same values: the Subagent limits card under Settings > Agent presets, below the preset roster, and the Limits section of the Subagent page under Plugins in the sidebar. The second needs Developer tools on; the first needs no developer switches.
It disables subagents for every delegation tool that takes its depth from this setting. A tool with a maximum of its own, or one left to its provider with provider-managed, keeps working: its own maximum takes precedence.
A delegation tool can carry a maximum recursion depth of its own, or leave the maximum to its provider with provider-managed. Where a tool has one of those, it takes precedence over Maximum recursion depth, so the tool's own number is what applies.
Yes. The values are read as delegation happens: a changed depth applies from the next delegation, and the parallelism limit is counted whenever a subagent starts. Lowering the parallelism limit does not stop subagents that are already running.
Every Subagent that is live at the same time under the same main agent, across all recursion levels. The main agent itself is not counted, and new subagent starts are refused while the limit is reached.
Save waits until you change something. It stays unavailable while a value is invalid, while a save is running, and while a draft is out of date because the settings changed elsewhere.
Usually because a value was not accepted. A message shows below the field: Enter a whole number of 0 or more. or Enter a whole number of 1 or more., and the save waits until the value is fixed. If the save itself is refused, the message reads The deployment did not accept these values; they were left for you to correct., and your draft stays for you to correct.
If the surface says This deployment stores settings read-only., this installation keeps its settings read-only, and the fields stay disabled; nothing in the form changes that.
It clears your saved value for that field, so the value the app composes applies again. A field holding your value is marked Overridden; Save writes the reset like any other change.
It is a developer surface. The Plugins page appears while its own switch, Plugins page, is on in Settings > Developer > Advanced features, and the Subagent card while Developer tools are on, a switch in Settings > General. See Advanced features and Plugins and bundles. You do not need either for the limits: they are also under Settings > Agent presets.
Not on these surfaces: the Subagent limits carry no teammate count. Teammates have their own card under Agent Teams on the Agent presets page, and Agent teams covers the teams themselves.