A model router reads the incoming request and picks a model. Most of the routing policies in circulation are static: a request class goes to a fixed model, and only the newest designs decide per request. The distinction is worth keeping because static routing is where most of the safe savings live, while the learned layer sits on top of it (the routing guide from MLflow). If your router has no idea whether a request is a read-only lookup or an instruction to move money, it cannot make a safe decision even with a good model behind it.
The argument for putting a classifier in front is economic before it is architectural. Price spreads between model tiers are large: the cost optimisation summary from NeuralTrust notes that one small model costs a fraction of a frontier model per million tokens and handles most classification, summarisation, and routing tasks just as well (NeuralTrust). A classifier that costs a sliver per call and keeps a measurable share of traffic off the frontier tier pays for itself long before you tune the router.
The second argument is safety. Risk is a property of the action, not of how hard the request is to answer. "Summarise this invoice" and "pay this invoice" are both short, both easy to classify, and both completely different in consequence. A text-only router sees the same shape in both. A tag of risk=high on the second one lets the policy force a stronger model, require a confirmation step, or refuse to route at all.
The third argument is operational. Every routing event becomes an auditable record: this request, this intent, this risk, this confidence, this model. When someone asks why a particular request reached a high-cost model, the answer is a row, not a reconstruction. The routing guide makes the same point about telemetry: capture the routing decision as a first-class event, not just the model's output (MLflow). The classifier is what makes that event meaningful.



