Omkostningsvægtet routing
Når flere modeller er tilgængelige — Opus, Sonnet, Haiku eller lokale modeller bag en selvhostet odysseus-gateway — router PRECC hver opgave til den model, der minimerer den forventede dollaromkostning, ikke antallet af tokens. Et token fra en billig model og et token fra en dyr model koster ikke det samme; routeren optimerer dollaren under hensyntagen til et målt mindstekrav til succes og et kapabilitetsgulv pr. kategori.
En dollar, ikke et token, er omkostningsenheden
For en opgave af kategori c, blandt de kapabilitetskvalificerede kandidatmodeller m, minimerer routeren den forventede prisvægtede omkostning. E[$ | task, m] er modellens målte gennemsnitlige tokenomkostning for den kategori ganget med dens pris pr. token. En Haiku-kørsel, der bruger flere tokens end Opus, kan stadig vinde, fordi Haiku er flere gange billigere pr. token. Hvert tal i målfunktionen er enten målt (orakelets tokengennemsnit, registreret succes, offentliggjorte modelpriser) eller en eksplicit mærket forhåndsantagelse — aldrig fabrikeret.
choose argmin_m E[$ | task, m]
subject to P(success | task, m) >= min_success
capability(m) >= capability_floor(category)
At route en opgave
precc route "<task>" kategoriserer opgaven, anvender kapabilitetsgulvet, rangerer de kvalificerede modeller efter forventede dollars og udskriver beslutningen. Med --execute sender den opgaven til den valgte model via odysseus’ sessions-API. Hver beslutning sås også ind i forudsigelsesoraklet, så dens reelle omkostning og resultat kan registreres, efter opgaven er kørt.
$ precc route "fix the broken parser"
category : fix (capability floor 0)
→ model : anthropic/claude-haiku-4-5 [Measured, confidence 0.60]
est. cost : $0.0096 (12000 tok)
reason : measured cheapest-capable for `fix` (by cost): claude-haiku-4-5
prediction : #42 (seeded; learner will auto-close after the task runs)
Dollarbesparelser
precc savings tilføjer et dollarafsnit, når routede opgaver er gennemført. For hver routet opgave prissætter den de faktisk forbrugte tokens til den valgte models takst og sammenligner dem med et baseline med altid-standardmodellen — tokens holdes faste, kun prisen varierer. Dette er “skær omkostningen, ikke kun tokens”-perspektivet; afsnittet forbliver skjult, indtil der findes reelle routede data, så det aldrig viser fabrikerede rækker.
$ precc savings
Routing cost (USD) — baseline: always claude-opus-4-5
claude-haiku-4-5 : 1 task(s) $ 0.0096 chosen vs $ 0.0600 baseline
claude-sonnet-4-6 : 1 task(s) $ 0.1200 chosen vs $ 0.2000 baseline
total : 2 task(s) $ 0.1296 chosen vs $ 0.2600 baseline
→ saved $0.1304 (50.2% of baseline spend)
Feedback-løkken
Routing forbedrer sig selv: route → execute → record → retrain. Hver routet beslutning sås ind i oraklet; baggrundsdæmonen precc-learner henter den gennemførte besked, registrerer de faktiske tokens, model og succes og lukker rækken. Efterhånden som tabellen pr. (model, category) fyldes ud, skifter routeren fra forhåndsantagelser om billigst-kapable til målte valg, og tokenforudsigeren får en dimension pr. model.
Udforskning
For at undgå at udnytte én billig model i det uendelige på forældede data kan routeren bevidst udtage en stikprøve fra en underudforsket (model, category)-celle før det grådige valg. Udforskning er tilvalgsbaseret, deterministisk (ingen tilfældighed — hooket skal være reproducerbart) og afgrænset: den krydser aldrig kapabilitets- eller målt-succes-gulvene, og et prisfortrydelsesloft forhindrer den i at forvilde sig over på en langt dyrere model.
# ~/.config/precc/odysseus.toml
explore_n_min = 3 # sample each (model, category) cell ~3× before trusting it
explore_eps = 1.0 # allow up to 2× the cheapest price while exploring
Målt, aldrig antaget
En model udelukkes kun for ikke at opfylde succesgulvet, når der findes målt evidens for, at den ikke gør — en umålt model udelukkes aldrig på et gættet tal. Uden data for en celle falder routeren tilbage til en konservativ billigst-kapabel forhåndsantagelse og mærker beslutningen som en koldstart, så kalderen altid ved, om valget hviler på evidens eller på en forhåndsantagelse.