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] は、そのカテゴリにおけるモデルの測定された平均トークンコストに、そのトークンあたりの価格を掛けたものです。Haiku の実行が Opus よりも多くのトークンを使ったとしても、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

測定する、決して仮定しない

モデルが成功フロアを満たさないとして除外されるのは、それが測定された証拠で示されている場合に限られます — 測定されていないモデルが、推測された数値に基づいて除外されることは決してありません。あるセルのデータがない場合、ルーターは保守的な最も安価で能力のある事前分布にフォールバックし、その決定をコールドスタートとしてラベル付けします。これにより、呼び出し元はその選択が証拠に基づくのか事前分布に基づくのかを常に把握できます。