v0.8.4

Reasoning Levels

Last updated

How the six llmrouter.Reasoning levels map onto each vendor and what happens when a model cannot honor one.

Levels

The levels map onto each vendor's own mechanism: Claude's thinking budget, Gemini's thinking config, OpenAI's reasoning effort.

Level String Alias
ReasoningNone none —
ReasoningLow low minimal
ReasoningMedium medium (default) —
ReasoningHigh high —
ReasoningXHigh xhigh extra
ReasoningMax max ultra

Clamping to the model's range

A request outside a model's range is not rejected; it is clamped to the nearest legal value and logged at debug level:

if limited, ok := agent.(llmrouter.ReasoningAgent); ok {
    low, high := limited.ReasoningLimits()
    reasoning = llmrouter.ClampReasoning(reasoning, low, high, "openai", "gpt-5.1")
}

Clamping beats failing because the caller usually holds one setting shared across models; letting a lower-ceiling model run at its ceiling is closer to what the caller meant than failing the whole request.

中文