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

實測,而非假設

只有在存在實測證據顯示某模型未達成功率下限時,該模型才會被排除——未經實測的模型絕不會因猜測的數字而被排除。當某個格沒有資料時,路由器會退回到保守的「最便宜且有能力」先驗值,並將該決策標示為冷啟動,如此呼叫方便始終知道該選擇是基於證據還是基於先驗值。