src/model_tiers.json)。与在代理内部于请求时决策的网关不同,路由决策在 git 中是可见且可 diff 的。
推荐一个层级 —— forge route
从推荐的
route.tier 开始,只有当外部验证器失败之后再升级,永远不要预防性升级。这样既压得住花费,又不会在任务确实需要能力时封顶。先意图,再层级
路由与意图检测 (src/intent.js) 共享同一套数学:一段 prompt 通过同一个示例 k-NN 估计器映射到意图。注意两者使用不同的停用集合 —— route 把泛化动词(fix / add / build)视为复杂度噪声,而这些动词恰好是意图信号。
层级表
层级表 (src/model_tiers.json) 按家族(haiku / sonnet / opus / fable)固定了公开的 Anthropic 模型 ID。文档中的价格通过 docs check 与这份文件对账,所以散文和表格无法漂移。
自托管网关重映射
自托管的 LiteLLM 或代理网关会提供自己命名的模型,直接把库存 ID 原样发过去会 404。当配置了非默认的网关 base URL 时,Forge (src/gateway_model_map.js) 每个进程仅一次拉取 GET /v1/models,并对每个层级家族对被宣告的每一个 id 打分:
1
硬家族门
家族关键词(haiku / sonnet / opus / fable)必须匹配 —— 这是硬门。
2
最佳重叠胜出
在同一家族内,由层级名字 token 的
setOverlap 系数挑出最佳匹配。3
平局回退到规范名
平局时倾向于最接近规范名的 id。
forge doctor 的 gateway models 行会打印解析后的 tier → model 映射,便于校验。
提供商与成本
forge cost --stages 只报告实测过的阶段 —— 没有事件的阶段会显示”no data”,而不是给出默认值。一个数字在被测量之前只是假设。