Built-in profiles
Setmodel_profile in config.json or switch profiles instantly with /gsd-config --profile <name>.
- quality
- balanced
- budget
- adaptive
- inherit
Uses Opus for all decision-making agents and Sonnet for verification. Best for quota-rich environments and critical architecture work where output quality is the top priority.
Agent tier assignments
The table below shows how the five most-used agents resolve under each profile. The tier names (Opus, Sonnet, Haiku) are resolved to runtime-native model IDs whenruntime is set in config.json.
The full catalog covers all 33 shipped agents with explicit per-profile tier assignments. These five represent the most frequently invoked agents during a standard phase lifecycle.
Per-agent overrides
Override individual agents without changing the profile for everything else. This is useful when you want one agent to use a more powerful model than the profile assigns.opus, sonnet, haiku, inherit, or a fully-qualified model ID such as "openai/o3" or "google/gemini-2.5-pro".
Per-phase-type model assignment
Themodels block lets you tune at the phase level without knowing individual agent names. Specify a tier for each phase type and GSD applies it to all agents in that category.
Resolution precedence (highest to lowest):
model_overrides[<agent>]— per-agent exception, wins over everythingdynamic_routing.tier_models[<tier>]— when dynamic routing is enabledmodels[<phase_type>]— coarse phase-level tiermodel_profile— global profile tier per agent- Runtime default
Dynamic routing with failure-tier escalation
Dynamic routing lets agents start on a cheaper tier and escalate automatically when the orchestrator detects a soft failure (plan-check FLAG, verification inconclusive). Enable it withdynamic_routing.enabled: true.
Dynamic routing settings reference
Dynamic routing settings reference
Effort control
Control the reasoning effort of each agent invocation independently of model tier. The universal effort ladder is:output_config.effort for Claude, model_reasoning_effort for Codex. Cross-provider clamping applies: max is Anthropic-only and clamps to xhigh on Codex; minimal is Codex-only and clamps to low on Claude.
Effort settings reference
Effort settings reference
- Invocation override (e.g.
--effortflag onresolve-execution) effort.agent_overrides[<agent-id>]effort.routing_tier_defaults[<light|standard|heavy>]effort.default"high"(universal default)
Model policy presets
Model policy presets let you pick a provider family and a budget level, and have GSD materialize the concrete(opus, sonnet, haiku) tier mappings for you — no need to spell out every model ID by hand. Use a preset when you want a known-good mapping for a given vendor; fall back to generic when you want full control over individual model IDs.
Anthropic presets
GSD ships two Anthropic-family presets so you can decide whether to stay on the standard Opus 4.8 lineup or opt into Claude Fable 5 for top-tier routing. Both presets share the Sonnet 4.6 and Haiku 4.5 fallback tiers; they only differ at the high end.
Use
anthropic-fable when you want Claude Fable 5 — an Opus-tier model with a 1M-token context window, 128K max output, and adaptive thinking at the xhigh effort level — to handle high-budget Opus and Sonnet routing. The medium and low budgets fall back to the same Opus 4.8 / Sonnet 4.6 / Haiku 4.5 mix as the standard anthropic preset, so opting in only affects the top tier.
If you set context_window: 1000000 to use Claude Fable 5’s full 1M-token window, GSD also enables adaptive context enrichment (deeper SUMMARY.md and anti-pattern reads).
