docs(complexity_router): the servability check covers the defaulted tier too

This commit is contained in:
Tin Chi Lo 2026-08-01 00:57:06 -07:00
parent 651f9b43ca
commit ee09339efa

View file

@ -144,7 +144,9 @@ complexity_router_config:
Set `default_tier: SIMPLE` to keep unmatched traffic on the cheapest tier, which is how the router behaved before this setting existed.
`default_tier` names which tier no-signal traffic is classified as; it is resolved to a model by the same chain as any classified tier, so it can be served by its own entry in `tiers`, by `default_model`, or by the MEDIUM tier. A `default_tier` you set explicitly has to be servable by one of those, and the config is rejected at load time when it is not, rather than failing on the first unmatched request. With routing plugins configured that chain stops at the tier's own models, since a model the plugins never vetted must not serve, so the tier itself has to name one.
`default_tier` names which tier no-signal traffic is classified as; it is resolved to a model by the same chain as any classified tier, so it can be served by its own entry in `tiers`, by `default_model`, or by the MEDIUM tier. It has to be servable by one of those whether you set it or take the default, and the config is rejected at load time when it is not, rather than failing on the first unmatched request. A partial `tiers` map is unaffected, since the proxy always derives a `default_model` from the MEDIUM-then-SIMPLE tier and the chain terminates there.
With routing plugins configured that chain stops at the tier's own models, since a model the plugins never vetted must not serve. So a plugin config has to give `default_tier` models in `tiers`, or point it at a tier that has them; `default_model` will not stand in.
The check is on the individual dimensions, not on the weighted score, because contributions cancel. `"hi, quick python question"` scores zero with three dimensions firing (short prompt, a simple indicator, a code keyword); it has real evidence of being simple and stays SIMPLE. Prompts shorter than the `simple` token threshold or longer than the `complex` one also fire `tokenCount`, so they score normally and are outside this path.