src/model_tiers.json)为一个任务推荐最便宜的能胜任的模型。和那种
在请求时由代理内部决定的网关不同,路由决策在 git 里是可见、可 diff 的。
推荐一个层 —— forge route
从推荐的
route.tier 开始,只在某个外部验证器失败之后再升级,
绝不预防性地升级。这样能在任务确实需要能力时不封顶能力,
同时把开销压下去。先意图,再层级
路由和意图检测共享同一套数学(src/intent.js):一段提示通过同一个样本
k-NN 估计器被映射到某个意图。注意两者用的停用词集合不同 —— route
把通用动词(fix / add / build)视为复杂度噪音,但那些动词
恰恰是意图的信号。
层级表
层级表(src/model_tiers.json)按家族(haiku / sonnet / opus / fable)
钉死了公开的 Anthropic 模型 ID。文档里的价格由文档检查
对着这份文件核对,所以自然语言和表不会漂移。
自建网关的重映射
一个自建的 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”,绝不会给出默认值。数字在被实测之前只是一个假设。