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

비용 가중 라우팅

여러 모델을 사용할 수 있을 때 — Opus, Sonnet, Haiku 또는 자체 호스팅된 odysseus 게이트웨이 뒤의 로컬 모델 — PRECC는 토큰 수가 아니라 예상 달러 비용을 최소화하는 모델로 각 작업을 라우팅합니다. 저렴한 모델의 토큰과 비싼 모델의 토큰은 비용이 같지 않습니다. 라우터는 측정된 성공 기준선과 카테고리별 역량 기준선을 충족하는 범위 내에서 달러를 최적화합니다.

비용의 단위는 토큰이 아니라 달러다

카테고리 c의 작업에 대해, 역량 요건을 충족하는 후보 모델 m 중에서 라우터는 가격 가중 예상 비용을 최소화합니다. E[$ | task, m]는 해당 카테고리에 대한 모델의 측정된 평균 토큰 비용에 토큰당 가격을 곱한 값입니다. Opus보다 더 많은 토큰을 사용하는 Haiku 실행이라도 여전히 선택될 수 있는데, Haiku는 토큰당 몇 배 더 저렴하기 때문입니다. 목적 함수의 모든 수치는 측정된 값(오라클 토큰 평균, 기록된 성공, 공개된 모델 가격)이거나 명시적으로 라벨링된 사전값이며, 결코 조작되지 않습니다.

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

작업 라우팅

precc route "<task>"는 작업을 분류하고, 역량 기준선을 적용하며, 예상 달러 비용으로 적격 모델의 순위를 매기고, 결정을 출력합니다. --execute를 사용하면 odysseus 세션 API를 통해 선택된 모델에 작업을 전달합니다. 각 결정은 또한 예측 오라클에 시드되어, 작업 실행 후 실제 비용과 결과를 기록할 수 있습니다.

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

달러 절감

precc savings는 라우팅된 작업이 완료될 때마다 달러 섹션을 추가합니다. 라우팅된 모든 작업에 대해 실제로 소비된 토큰을 선택된 모델의 요율로 가격을 매기고, 이를 항상 기본 모델을 사용하는 기준선과 비교합니다 — 토큰은 고정되고 가격만 달라집니다. 이는 “토큰뿐 아니라 비용을 절감한다“는 관점입니다. 이 섹션은 실제 라우팅 데이터가 존재할 때까지 숨겨져 있으므로, 결코 조작된 행을 표시하지 않습니다.

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

피드백 루프

라우팅은 스스로 개선됩니다: route → execute → record → retrain. 라우팅된 각 결정은 오라클에 시드되며, 백그라운드 precc-learner 데몬이 완료된 메시지를 가져와 실제 토큰, 모델, 성공 여부를 기록하고 행을 마감합니다. (model, category)별 테이블이 채워짐에 따라, 라우터는 가장 저렴하면서 역량을 갖춘 사전값에서 측정된 선택으로 전환되고, 토큰 예측기는 모델별 차원을 얻게 됩니다.

탐색

오래된 데이터로 하나의 저렴한 모델을 영원히 활용하는 것을 피하기 위해, 라우터는 탐욕적 선택 이전에 충분히 탐색되지 않은 (model, category) 셀을 의도적으로 샘플링할 수 있습니다. 탐색은 옵트인이며, 결정론적이고(무작위성 없음 — 훅은 재현 가능해야 함), 한계가 있습니다. 즉, 역량 또는 측정된 성공 기준선을 결코 넘지 않으며, 가격 후회 상한이 훨씬 더 비싼 모델로 벗어나는 것을 막아줍니다.

# ~/.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

측정된 값, 결코 가정하지 않음

모델이 성공 기준선을 충족하지 못한다는 측정된 증거가 있을 때에만 해당 모델이 배제됩니다 — 측정되지 않은 모델은 추측한 수치로 결코 배제되지 않습니다. 셀에 데이터가 없으면 라우터는 보수적으로 가장 저렴하면서 역량을 갖춘 사전값으로 대체하고 그 결정을 콜드 스타트로 라벨링하므로, 호출자는 그 선택이 증거에 근거한 것인지 사전값에 근거한 것인지 항상 알 수 있습니다.