Loading the documentation…

Subagent settings

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.

Where the limits live

The same two limits appear on two surfaces, and both write the same values:

The two limits

LimitWhat it decidesDefault and accepted values
Maximum recursion depthHow 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 limitHow 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.

Change the limits

  1. Open either surface, and edit Maximum recursion depth or Subagent parallelism limit.
  2. Click Save. Nothing is written before you save, and leaving the surface drops what was not saved. While the save runs, the button reads Saving… and the fields lock until it settles.
  3. A field holding your saved value is marked Overridden; Reset to default on a field clears that value, and the next Save writes the change.

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.

What the settings do not change

Messages on the settings surfaces

MessageWhat it meansWhat 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. Discard your draft and try again.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 refuses to load

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:

MessageWhat it meansWhat 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 agentOptionsThe 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 selectionThe provider cannot take a chosen model for the child.Turn model selection off for that tool, or change the provider.
does not support backgroundMode: continuableThe 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 denyA tool filter was set with nothing in it.Fill the allow or deny list, or remove the filter.

When a call is refused

Questions, answered

Where are the delegation limits set?

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.

What does 0 for maximum recursion depth do?

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.

Why does my depth setting not always apply?

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.

Can I change the limits while work is running?

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.

What counts towards the Subagent parallelism limit?

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.

Why is Save unavailable?

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.

Why can I not save my change?

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.

Why can I not edit the limits?

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.

What does Reset to default do?

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.

Why is the Subagent page missing from Plugins?

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.

Where is the teammate limit?

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.