Wacht Bench is live — AI-assisted development for Wacht
GuidesAgents

Model overrides

Override the strong or weak model on a single agent without changing deployment defaults.

Model overrides

Each agent has two model roles:

  • Strong — the main reasoning loop. Default: deployment strong_model.
  • Weak — cheap/fast calls (terminal review, summarisation, classification). Default: deployment weak_model.

Both roles fall back to the deployment defaults unless overridden on the agent. The override only sets the provider and model identifier — keys, base URLs, temperature, and other knobs always come from the deployment.

Where to configure

Console → AI agents → pick an agent → Models.

Toggle "Override" on a role to set it; toggle off to revert to the deployment default.

API shape

AgentModelOverride is a flat { provider, model } object. Both fields are required when set; the migration enforces that they're either both present or both null.

{
  "strong_model": { "provider": "openai", "model": "provider-model-id" },
  "weak_model":   { "provider": "gemini", "model": "provider-model-id" }
}

On PATCH /ai/agents/{agent_id}:

FieldEffect
strong_model setReplace the override
clear_strong_model: trueRemove the override; fall back to deployment default
Both omittedLeave unchanged

clear_*_model cannot be combined with a new value for the same role; the API returns 400 if both are sent.

Supported providers

openai, openrouter, gemini. The model field is whatever identifier the provider's API accepts. Wacht does not validate every provider model name ahead of time; an invalid identifier surfaces as a provider error at call time.

When to use this

  • Running an experiment with a stronger or cheaper model on a single agent.
  • An agent whose workload genuinely benefits from a different provider than the rest of the deployment (e.g. a vision-heavy agent on a multimodal model).
  • Rolling out a new model agent-by-agent before flipping the deployment default.

If most of your agents need the same model, change the deployment default instead — that's still the cheapest place to set it.

On this page