How auto decides
Ask for model:"auto" and routsi classifies the current request into a difficulty level — low, medium, or high — then dispatches to the matching member. Decided on the request head, never mid-stream.
What in the config drives it
The global tiers: map. cheap: is the low member, strong: is the high member — cheap/strong are just aliases for low/high. Medium falls back to the nearest declared level.
tiers: cheap: gpt-cheap # low strong: gpt-strong # high
The same level mechanism powers named dynamic-N groups via their levels: {low, medium, high} — see Routing & stickiness.
The v1 heuristic rules scorer
Signals are taken from the current user turn only — the last user message — never the cumulative conversation history. Deliberately: client-managed history grows forever, and scoring on the full transcript would pin every long chat to "high".
The decision is checked in order — high first, then medium, else low:
| Level | Triggers when the message… |
|---|---|
| HIGH | contains a code fence (```), OR matches any of: prove, derive, theorem, refactor, architect, debug, optimize/optimise, "step by step", reason, analyze/analyse, "why does", "explain in detail" (case-insensitive, word-boundary) — OR is longer than 1500 characters. |
| MEDIUM | matches any of: explain, compare, summarize/summarise, implement, design, plan, review, translate, convert — OR is longer than 400 characters. |
| LOW | otherwise. |
Worked examples
"what's 2+2?"→ no keywords, short → low."refactor this module"→ matches refactor → high.- A 600-character question with none of the keywords above → over the 400-char threshold, under the 1500-char one → medium.
Stickiness interaction
A conversation pins to its level and only ever escalates — low → medium → high — never downgrades. The classifier can promote a thread mid-conversation but can never demote it. Full mechanics: Routing & stickiness → Sticky, escalate-only.
Fallback
If a group doesn't declare the chosen level, routsi resolves to the nearest declared one: high → medium → low; medium → low → high; low → medium → high.
Design note
This scorer is deliberately simple and fast. The Router interface is pluggable — per RouterBench, simple heuristics are competitive with learned routers — and a learned/decaying-aggregate scorer is the planned Phase-2 upgrade.