Auto stays in the tier you set.
Cost tiers: low, balanced, high. Lower is cheaper. Higher is more capable. Send hopscotch/auto and the project tier is the band. Name a model instead and that is what runs.
Auto
- model
- hopscotch/auto
- cost tier
- low
Or write the list yourself.
A model slug you already know, or a hop list with failover. That is the add-on. It is not how the cost tier is chosen.
Auto is hopscotch/auto, a slug you send on purpose, not a cheaper stand-in. When a slug is sold by more than one upstream, the catalog lists them. A 200 is still the model you named.
- skip unhealthy
When a hop cannot serve.
Failover is classified, not guessed. A 429 from the first model, a 503 from the second, and the third serves. Your client saw one request and one answer; the log kept all three attempts and the reason each one moved on.
A 429, a 5xx, a reset, or a time-to-first-token timeout. The same route gets one more attempt, because most of these clear on their own.
The model is unavailable on this provider, or the Retry-After is long enough that waiting is worse than moving. We go to the next hop and stop offering this one for a while.
Malformed request, context length exceeded, unsupported parameter. Another upstream would fail the same way, so you get the error rather than a slower version of it.
Our adapter cannot parse a well-formed response. That is our bug, and retrying a bug just bills you twice for it.