开源模型路由,凭什么敢说「追平 Astra 性能、省一半钱」?
前几天在 Hacker News 上刷到这个帖子,标题很硬:「开源模型路由,达到 Astra 级别性能」。帖主是 Weave Router 的作者,直接甩了一组 benchmark 数据:在 Terminal Bench 4.0 上,路由器的通过率和 GPT-6 Astra 打平,成本只有 Astra 的 52%,完成速度快 2.2 倍;在 SWE Atlas 上也差不多,成本 54%、快 2.5 倍。数字相当漂亮,评论区自然就炸了。
这其实就是我们一直在等的那个东西。过去两年,大家被「单个模型天花板」卡死——想要最强推理就得用最贵的模型,想要省钱就得忍受能力打折。而「模型路由」这个思路一直有人做,但大多只是简单按任务类型分派一下,效果聊胜于无。Weave 想证明的是:一群模型组合起来,比任何单个模型都强。这等于把「选模型」这件事也变成了一个可以训练的智能问题。
外行会觉得,路由不就是「简单任务派便宜模型,难任务派贵模型」吗?难在哪?
帖主算了一笔账:一个典型的 coding agent 会话大概有 100 次 agent turn,也就是 100 次 LLM API 调用。假设候选池里有 10 个模型,那么一次会话就有 10 的 100 次方条可能的路径。这个搜索空间根本不可能暴力穷举。
所以 Weave 的做法是用隐马尔可夫模型(HMM)去追踪会话状态,再用一个分类器把会话映射到「模型桶」——也就是一组能力相近的模型。关键点在于,HMM 不只看到会话当前在哪个状态,还能知道它是怎么走到这一步的。「两个会话在朴素分类器眼里长得很像,但 HMM 能分辨出来」,帖主说这是整个重架构里最大的性能提升来源。
简单说,就是先靠 HMM 把搜索空间砍到很小,把绝大多数不合理的模型直接排除掉,再去精细路由。这思路比逐 turn 贪心选模型聪明得多。
帖里最有意思的是第三点:缓存淘汰的影响计算。这大概是普通用户最没概念、但对账单影响最大的部分。
如果你关心省钱,就绕不开模型缓存。切换模型意味着要花一次性成本去填满一个新的缓存,如果频繁切换,那点省下来的成本全被缓存惩罚吃回去了。Weave 建了一个子系统,专门计算「切换模型的期望价值」,只有在收益大于成本时才切换。帖主说,成本端的大部分提升都来自这里。
这确实是路由里最容易被忽略的技术细节,但也是让「省一半钱」真正落地的关键。毕竟,路由选得再好,如果每次切换都被缓存惩罚磨平了,数字就全是纸面的。
HN 的评论区比帖子本身更有信息量,因为有人在替我们问那些真正影响落地的问题。
有人问:用前沿模型做训练数据标注,凭什么指望能超过前沿模型?作者的回答很直接:不同前沿模型擅长不同的事,而我们负责把它们组合到最优。话没错,但也得说清楚——这是「组合优化」的胜利,不是单模型能力的胜利。
还有人问路由模型是不是开源权重,作者答:不是。也就是说,你拿到的是路由器的代码,但那个真正做决策的路由模型权重并不公开。这算个小保留意见:开源的是框架,核心智能仍是黑盒。
另外一个挺尖锐的问题是关于 bucket 选错怎么办。作者说会话是持续进行的,如果发现走错方向可以「升级」,但没有一次错误决策是零代价的,只是尽量少犯错。这句挺实在,比那些「永远正确」的宣传可信。
还有预算控制——有人直接问能不能预设预算上限,作者答「可以」。这对创业团队来说很实际,等于把「这个月 Agent 账单会不会失控」的焦虑交给了路由器去管。
我得说,这个方向我对它挺有信心的,但也要泼一盆冷水。Weave 对比的是 GPT-6 Astra 这个单一强模型,而 Cursor 的 auto mode、Copilot 的 auto mode 也都在做类似的事。作者自己也承认,概念上和 Cursor auto mode 很像,区别在于他们接入了任意 harness(Claude Code、Codex、OpenCode、Pi),而且「没有动机路由到自家模型」。
关于 Copilot,作者补了一句挺毒的:它「每次会话只路由一次」,而作者认为这基本不可能做对。理由也简单——同一个「把这段代码重写成 Rust」的指令,在一个建了一天的仓库里是 trivial 的,放到 VSCode 那种规模的仓库里就是地狱级。任务难度会随着会话推进不断变化,只在开头选一次模型,等于把后面几十次 turn 的机会全浪费了。
这个观点我基本认同。路由的价值恰恰在于动态——它不是一个起点决策,而是一个持续决策。
当然,现在 Weave 说的是「追平」Astra,不是「超越」。帖主也承认还有很大提升空间,「我们不赢到 Astra/Fable 不会停」。但追平本身已经是里程碑了——它至少证明了「模型组合能打过单模型」这个假设成立。至于能不能稳定跑赢,要看 HMM 架构、训练数据规模和缓存计算这三块还能挤出多少空间。