Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Routing ważony kosztem

Gdy dostępnych jest kilka modeli — Opus, Sonnet, Haiku lub modele lokalne za samodzielnie hostowaną bramą odysseus — PRECC kieruje każde zadanie do tego modelu, który minimalizuje oczekiwany koszt w dolarach, a nie liczbę tokenów. Token z taniego modelu i token z drogiego modelu nie kosztują tyle samo; router optymalizuje dolara, z zachowaniem zmierzonego progu skuteczności oraz progu zdolności specyficznego dla kategorii.

Jednostką kosztu jest dolar, a nie token

Dla zadania kategorii c, spośród kwalifikujących się pod względem zdolności modeli kandydujących m, router minimalizuje oczekiwany koszt ważony ceną. E[$ | task, m] to zmierzony średni koszt tokenowy modelu dla danej kategorii pomnożony przez jego cenę za token. Uruchomienie Haiku, które zużywa więcej tokenów niż Opus, nadal może wygrać, ponieważ Haiku jest kilkukrotnie tańsze w przeliczeniu na token. Każda liczba w funkcji celu jest albo zmierzona (średnie tokenowe z oracle, zarejestrowana skuteczność, opublikowane ceny modeli), albo jawnie oznaczona jako wartość a priori — nigdy nie jest zmyślona.

choose argmin_m   E[$ | task, m]
       subject to  P(success | task, m) >= min_success
                   capability(m) >= capability_floor(category)

Routing zadania

precc route "<task>" kategoryzuje zadanie, stosuje próg zdolności, porządkuje kwalifikujące się modele według oczekiwanych dolarów i wypisuje decyzję. Z flagą --execute wysyła zadanie do wybranego modelu poprzez odysseus session API. Każda decyzja jest również zasiewana do oracle predykcji, aby po wykonaniu zadania można było zarejestrować jego rzeczywisty koszt i wynik.

$ 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)

Oszczędności w dolarach

precc savings dodaje sekcję dolarową za każdym razem, gdy ukończone zostaną routowane zadania. Dla każdego routowanego zadania wycenia faktycznie zużyte tokeny według stawki wybranego modelu i porównuje je z punktem odniesienia opartym na zawsze domyślnym modelu — przy ustalonej liczbie tokenów zmienia się jedynie cena. Jest to ujęcie “tnij koszt, a nie tylko tokeny”; sekcja pozostaje ukryta, dopóki nie istnieją rzeczywiste dane z routingu, więc nigdy nie pokazuje zmyślonych wierszy.

$ 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)

Pętla sprzężenia zwrotnego

Routing sam się doskonali: route → execute → record → retrain. Każda routowana decyzja jest zasiewana do oracle; działający w tle demon precc-learner pobiera ukończoną wiadomość, rejestruje rzeczywiste tokeny, model i skuteczność oraz zamyka wiersz. W miarę jak tabela per (model, category) się zapełnia, router przechodzi od wartości a priori “najtańszy zdolny” do wyborów opartych na pomiarach, a predyktor tokenów zyskuje wymiar specyficzny dla modelu.

Eksploracja

Aby uniknąć wiecznego wykorzystywania jednego taniego modelu na podstawie nieaktualnych danych, router może celowo próbkować niedostatecznie zbadaną komórkę (model, category) przed zachłannym wyborem. Eksploracja jest opcjonalna (opt-in), deterministyczna (bez losowości — hook musi być odtwarzalny) i ograniczona: nigdy nie przekracza progu zdolności ani zmierzonej skuteczności, a pułap żalu cenowego powstrzymuje ją przed zboczeniem na znacznie droższy 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

Zmierzone, nigdy założone

Model zostaje wykluczony za niespełnienie progu skuteczności tylko wtedy, gdy istnieje zmierzony dowód, że tak jest — niezmierzony model nigdy nie jest wykluczany na podstawie zgadywanej liczby. Przy braku danych dla komórki router wraca do ostrożnej wartości a priori “najtańszy zdolny” i oznacza decyzję jako zimny start, więc wywołujący zawsze wie, czy wybór opiera się na dowodach, czy na wartości a priori.