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 会将每个任务路由到使预期美元成本最小化的那个模型,而不是 token 数量。来自廉价模型的一个 token 与来自昂贵模型的一个 token,成本并不相同;路由器优化的是美元,并受制于一个实测的成功下限以及一个按类别的能力下限。

成本的单位是美元,而非 token

对于类别为 c 的任务,路由器在能力合格的候选模型 m 之上最小化预期的价格加权成本。E[$ | task, m] 是该模型针对该类别的实测平均 token 成本乘以其每 token 价格。即使一次 Haiku 运行使用的 token 多于 Opus,它仍然可能胜出,因为 Haiku 每 token 便宜数倍。目标函数中的每个数字要么是实测的(来自 oracle 的 token 均值、记录的成功率、已公布的模型价格),要么是明确标注的先验——绝不凭空捏造。

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 将任务派发给所选模型。每个决策还会被植入预测 oracle,以便在任务运行后记录其真实成本和结果。

$ 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 都会添加一个美元小节。对于每个已路由的任务,它会按所选模型的费率为实际花费的 token 计价,并将其与始终使用默认模型的基线进行比较——token 数保持固定,只有价格变化。这就是“削减成本,而不仅仅是 token“的视角;在存在真实路由数据之前,该小节保持隐藏,因此它绝不会显示凭空捏造的行。

$ 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。每个已路由的决策都会被植入 oracle;后台 precc-learner 守护进程会获取已完成的消息,记录实际的 token、模型和成功情况,并关闭该行。随着按 (model, category) 的表格逐渐填充,路由器会从“最便宜且有能力“的先验转向实测的选择,而 token 预测器也获得了一个按模型的维度。

探索

为避免永远在陈旧数据上只利用某一个廉价模型,路由器可以在贪婪选择之前,有意地对一个探索不足的 (model, category) 单元进行采样。探索是可选启用的、确定性的(没有随机性——hook 必须可复现)且有界的:它绝不会越过能力下限或实测成功下限,而且价格遗憾上限可防止它偏向某个昂贵得多的模型。

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

实测,绝不假设

只有在存在实测证据表明某个模型未达到成功下限时,才会将其排除——绝不会因为一个猜测的数字而排除未经测量的模型。当某个单元没有数据时,路由器会回退到一个保守的“最便宜且有能力“的先验,并将该决策标记为冷启动,从而让调用方始终知道该选择是基于证据还是基于先验。