Skip to main content

!!BREAKING CHANGES!!

Summary

The [llm] TOML section has been moved from the top level to [agent.llm]. LLM configuration is now a property of the agent, not a sibling of it. This unlocks per-worker LLM overrides in orchestration mode: each [orchestration.worker.<name>] may declare its own [orchestration.worker.<name>.llm] to run a different model (or a different provider) than the coordinator, inheriting [agent.llm] when omitted.
CONFIGS THAT HAVE NOT BEEN UPDATED WILL FAIL TO PARSE AND THE APP WILL FAIL TO START. The loader detects a top-level [llm] table and emits a migration error pointing to this document. See Startup Errors.

What Moved

No fields were renamed — every provider-specific field inside [llm] keeps its name under [agent.llm].

Before / After Examples

Minimal single-agent config

additional_params nested tables

Ollama additional_params


New Capability: Per-Worker LLM Overrides

Workers now accept an optional [orchestration.worker.<name>.llm] table. When omitted, the worker inherits [agent.llm] (including context_window). When present, the worker uses its own LLM configuration exclusively.
The worker’s resolved context_window is what the runtime reports in aura.session_info events for that worker and what downstream context-budget work (LOG-23439) will use to size per-worker scratchpads.

Startup Errors

Top-level [llm] is no longer accepted

The loader performs a pre-parse check before deserialization. If it sees a top-level [llm] table it fails with:

deny_unknown_fields remains

aura_config::AgentConfig and aura_config::LlmConfig still carry #[serde(deny_unknown_fields)]. Any stray field in [agent] or [agent.llm] (including the fields that were moved out of [agent] in the 10 April 2026 migration) still produces a hard parse error.

Worker LLM fields

[orchestration.worker.<name>.llm] accepts the same fields as [agent.llm] (the full LlmConfig variant set per provider). The same deny_unknown_fields rules apply.