Choosing the model for a subagent

By default, a subagent runs on the same model as the chat that started it. Subagent model selection lets a delegation choose its own route instead: a provider, a model and, optionally, a reasoning effort, all from a list of allowed routes. Use it when part of the work suits a different model or effort.

Turn on subagent model selection

Subagent model selection is part of the subagent settings, and it is off by default. When it is on, it carries a list of allowed models: the routes a delegation may choose from. An enabled setting must name at least one model; an empty list is refused with enabled subagent model selection requires at least one allowed model. Subagent settings describes the settings surface.

The choice is recorded once per chat:

Choosing a model also needs a delegation target that accepts per-child options. A target that does not keeps its fixed route; Choosing and enabling a delegation backend compares the targets.

What a chat can look up

While a delegation tool in the chat has model selection on, Oda can read the routes it may use with list_subagent_models. A lookup changes nothing about the chat; it only lists what is available.

When there is nothing to show, the lookup says so:

Two rules shape the answer:

A lookup with a mistake is refused as well: a model named without its provider (`model` requires `provider`), a provider named as a blank string (`provider` must be non-empty), or a provider Oda does not know, which reports what is available (LLM provider "<id>" is not registered; available providers: <list>).

Choose a route for a delegation

A delegation names its choice with three fields: provider, model and reasoning_effort. The call itself is described in Delegating work to subagents.

What a subagent inherits and what can be changed

Choosing the chat's own model and effort is covered in Chat with Oda.

Questions, answered

How do I turn on subagent model selection?

It is part of the subagent settings and off by default. When it is on, it carries the allowed list of models a delegation may choose from; Subagent settings describes the settings surface.

Which models can a subagent use?

The routes on the allowed list recorded for its chat. Oda can look up what is available with list_subagent_models, and the lookup is trimmed to what the chat allows. The providers themselves are managed in Settings > Models; see Set up models and providers.

Does the setting change chats I already have?

No. Each chat keeps the decision it started with; changing the setting does not change existing chats, and a chat restored without a recorded decision stays without model selection.

Why was a model choice refused?

Either model selection is off for the delegation tool (child model selection is disabled for this tool instance), or the route is outside the allowed list recorded for the chat (child LLM route "<provider>/<model>" is not allowed for this Session). A half-named route and a blank effort are refused too.

Can a delegation name only the reasoning effort?

Yes, as long as a model is already decided for the call: the chat's own model, a route configured for the delegation tool, or the provider's own default.

I changed the model and the effort reset. Why?

When a delegation changes the model but names no effort, the inherited effort is cleared, and the new model resolves its own default. Name an effort together with the model to keep a specific one.

Does looking up models change the chat's model?

No. The lookup only lists routes; it changes nothing about the chat or its current model.

Why did the list come back empty?

(no LLM providers) means no provider is inside the chat's allowed list; (no advertised models for <provider>) means the provider advertises none; (no advertised reasoning efforts) means the model offers no reasoning efforts.

Do subagent chats inherit model selection?

Yes. A subagent chat takes the decision recorded for the chat that started it.

Which delegation targets support choosing a model?

Those that accept per-child options; a target that does not keeps its fixed route. Choosing and enabling a delegation backend compares the targets.