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. |
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.
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.
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.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.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.
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.
None on this surface. The shape of a delegation, one-shot or continuable, is set on the delegation tool itself; one-shot is the default, and continuable needs a provider that supports it. See Background subagents and job collection.
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.