# Models

Separate the model IDs accepted by configuration and shown in Agent Studio from the adapters that can actually run conversations.

## Configuration and Agent Studio options

The current agent configuration accepts these exact IDs, and Agent Studio lists all five in the **LLM** selector:

- `gpt-5-mini`
- `gpt-5`
- `claude-haiku-4-5`
- `claude-sonnet-4-5`
- `gemini-2.5-flash`

Being accepted by configuration or listed in the selector does not mean a production adapter is active. The models endpoint reports this distinction in `adapter_active`.

## Production runtime availability

Only `gpt-5-mini` and `gpt-5` have a production adapter. They use the active GPT adapter when the Operade runtime has its OpenAI credential configured. Without that credential, a conversation also returns `llm_unavailable`.

`claude-haiku-4-5`, `claude-sonnet-4-5`, and `gemini-2.5-flash` are configuration and Agent Studio options, but their `adapter_active` value is `false`. Saving one of those IDs is allowed; trying to run a conversation with it returns `llm_unavailable` because no provider is wired to it.

Do not use selector presence as a runtime readiness check. Check `adapter_active`, then open a fresh test conversation.

## Exact temperature behavior

For `gpt-5-mini` and `gpt-5`, temperature is fixed at `1.0`. Agent Studio disables the slider and resets the saved draft value to `1.0` when either model is selected. The configuration validator rejects another value with `validation_failed`. The `temperature` field is omitted completely from the provider request, including for a legacy configuration that contains another value, so the provider uses its own fixed default.

The Claude and Gemini options report temperature as adjustable, and configuration accepts values from `0.0` through `2.0`. Those values are not sent to a provider today because those models have no active adapter; the conversation stops with `llm_unavailable` first.

## Dashboard and API token controls

The dashboard provides model and supported-temperature controls. `max_tokens` is an API field in the agent configuration; it is not a dedicated dashboard control. Its accepted value is `-1` for unlimited, or an integer from 1 through 32,000.

This distinction matters when comparing a dashboard screenshot with configuration returned by the API: a valid field can be present without having its own visible control.

## Change an active model safely

1. Save the current expected answer for a small set of representative questions.
2. Select `gpt-5-mini` or `gpt-5`, confirm `adapter_active` is `true`, and wait for the draft to save.
3. Start a new [test chat](/docs/agents/test-chat) with the draft enabled.
4. Compare correctness, tone, and boundary behavior.
5. Publish only after the new draft passes those checks.

If the test returns `llm_unavailable`, confirm that the selected model has an active adapter and ask the Operade operator to check the runtime credential. Review [availability and limits](/docs/agents/availability-and-limits) for the exact boundaries documented by this release.
