src/model_tiers.json)。与在代理内部于请求时刻做决定的 gateway 不同,路由决定在 git 中是可见且可 diff 的。
推荐一个 tier —— forge route
从推荐的
route.tier 开始,只在外部校验者失败后升级,绝不预先升级。这样既压低支出,又不会在任务确实需要时限制能力。先意图,后 tier
路由与意图识别(src/intent.js)共享同一套数学:一段提示通过同一个样本 k-NN 估计器映射到一个意图。注意二者使用不同的停用集——route 把泛用动词(fix / add / build)视为复杂度噪声,而这些动词恰是意图的信号。
Tier 表
tier 表(src/model_tiers.json)按家族(haiku / sonnet / opus / fable)固定了 Anthropic 的公开模型 ID。文档里的价格通过文档检查与该文件对账,因此正文和表格不会漂移。
自托管 gateway 的重映射
自托管的 LiteLLM 或代理 gateway 会使用它自己的模型名称,所以直接把 stock ID 发过去会 404。当配置了非默认的 gateway base URL 时,Forge (src/gateway_model_map.js)会每个进程只取一次 GET /v1/models,并把每个已宣告的 id 对每个 tier 的家族打分:
1
家族硬闸
家族关键词(haiku / sonnet / opus / fable)必须匹配——它是硬闸。
2
最佳重叠胜出
在同家族内部,tier 名称 token 的
setOverlap 系数选出最佳匹配。3
平局倒向规范名
平局时,更接近规范名的 id 胜出。
forge doctor 的 gateway models 行会打印解析出的 tier → model 映射以便核对。
提供方与成本
forge cost --stages 仅报告已实测的阶段——没有事件的阶段会显示 “no data”,绝不使用默认值。一个数字在被测量之前只是一个假设。