Skip to main content
One llm= on AgentTeam or AgentFlow becomes the default model for every member that never named one, while any agent that pinned its own model keeps it.

Quick Start

1

One team, one model

The team’s llm= flows to every member that didn’t pick its own.
2

Same rule for a flow

AgentFlow(llm=…) fills in ready-made steps the same way AgentTeam does.

How It Works

The container’s llm= is a default, not an override. A member that named its own llm= / model= / auth= keeps it; a member with no model adopts the container’s. A pinned member keeps its model even when the container names another:
llm= on the container is a default. If a member was constructed with its own llm= / model= / auth=, the container never overrides it. Otherwise the container’s llm= becomes the member’s model.

manager_llm Is Separate

manager_llm= is the hierarchical manager’s own model and never touches the members.
manager_llm= sets the model for the hierarchical manager agent only. It is never propagated to member agents — use llm= for that.

AgentFlow’s Fallback Is Not Propagated

AgentFlow falls back to "gpt-4o-mini" internally when it needs a model to run, but that fallback is not a caller’s choice — so it is never pushed onto steps.
An AgentFlow(steps=[…]) with no llm= leaves each step’s model to Agent’s own env-aware default (OPENAI_MODEL_NAME, else gpt-4o-mini).

Common Patterns

Pin one member, let the rest follow the container — no code change needed to see the split.

Panel agents are skipped

A panel descriptor (panel:<name>) is not a model name, so the fill-in leaves it alone.

`auth=` counts as pinned

A subscription seat pins the vendor, so a team default of another vendor never overrides it.

List or dict rosters

AgentTeam accepts a list or a dict (multi-group teams); both forms are filled in.

Non-Agent members skipped

Members without _apply_default_llm are duck-typed and left untouched.
A member used before the container fills it in caches a dispatcher bound to the old model; the fill-in drops that cache so the next call rebuilds against the new model. Pinned members keep their dispatcher.

Configuration Options


Best Practices

Put llm= on AgentTeam / AgentFlow and pin per-agent only where the job justifies a different model.
Use manager_llm= for the hierarchical manager — don’t try to reuse the team default there.
When every member should share a vendor, one container llm= beats repeating llm= on each Agent.
Earlier versions stored the container llm= but never read it. Upgrade to the version that ships this fill-in so the parameter actually reaches members.

AgentTeam Params

Which params apply at the team level.

Parameter Scope

Team-level vs per-agent parameter scope.

AgentTeam

Multi-agent teams overview.

AgentFlow

Deterministic step pipelines.