Salman Parvez
Self-taught full-stack engineer. Founder of ML Systems, a Rhode Island construction tech company. Shipped a React Native app to both stores
Paid model as fallback rather than default is the whole trick, and it is worth naming why it works: most agent runs are not doing anything that needs a frontier model. Routing, extraction, formatting and the boring middle steps are well within a small model's range, and the expensive calls are a minority you can route to deliberately. The number I would love to see alongside total spend is the fallback rate over time, because that is the metric that tells you whether the arrangement is stable or slowly degrading into always paying. It is also the early-warning signal when a provider changes something upstream. One caution for anyone copying the seven-provider chain: failing over between models is not transparent. Output shape, refusal behaviour and tool-call formatting all shift, so a run that falls through to provider five can complete and produce something the next step cannot parse. Validating each response against a schema on every path is what keeps a cost optimisation from becoming an intermittent correctness bug.
The list at the end — billing errors disguised as rate limits, missing credentials, a scheduler that silently stopped — is the part I'd pull out and put first. Every one of those is a failure that reports itself as something else, and the fix isn't a better model, it's a record of what actually happened per run: which provider answered, under what limit, at what time, and whether the scheduler fired at all. Once each run leaves a claim with a source and a timestamp, a scheduler that quietly died shows up as a gap in the record instead of a suspiciously calm week.