搭 agent 别一上来就选模型:我那本「过秤」的账,其实是在手动做路由

cover

哈喽,我是飞飞。

昨天刷到一篇 VC Tomasz Tunguz 写的短文,一句话把我点住了:多数人搭 AI agent,第一件事就是挑用哪个模型,这是反的,模型选择应该是最后一步。

我盯着这句看了一会儿,因为我心里咯噔了一下:他说的那个「该先想的东西」,我好像天天在做,只是从没给它起过名字。

前阵子我写过一篇,聊我动最贵的模型前会先在心里过秤。今天这篇往上升一层:那本过秤的账,本质上就是一层路由,而路由这东西,才是搭 agent 真正该先设计的。

模型是最后才填的空

先把 Tunguz 的观点说清楚。

他说,真正决定成本和效率的,不在你选了哪个模型,在一小段叫路由的代码,它决定每个请求走哪一档模型。路由设计对了,70% 到 80% 的流量可以跑在本地模型上,每次调用几乎零成本;或者走异步档,把 AI 开销砍掉九成还多。

模型型号,是这套定下来之后,最后才填进去的那个空。

这个次序为什么反直觉?因为你我都被训练成一看到活就问「这个用 Opus 还是用便宜的」。可 Tunguz 说,你该先问的是另一件事:这活到底难不难、急不急,配得上哪一档。型号是最末端的执行细节,不该是你第一个纠结的东西。

我早就在手动做路由

看到这我才反应过来,这事我干了很久了,只是全凭手感。

我这个号背后挂着十几个 skill,从选题、调研、写稿到配图分发。这一路我从来不是一个模型跑到黑。动 Opus 这种最贵档之前,我一定先在心里过一秤:这趟值不值得。格式转换、打标签、粗筛这类死板活,我早就切到便宜模型上省额度了。

这不就是路由吗?我拿脑子当那层调度器,看一眼这活是什么、有多难,再决定派给哪一档。Tunguz 把我这套肌肉记忆,画成了一张清清楚楚的架构图。

就说你正在看的这篇稿子吧。前面调研搜资料,我挂的是便宜档,一条条把料捞回来;初稿铺出来也没舍得动最贵的;只有到最后成稿、润色、把关那几道,我才把 Opus 请出来。整条流水线里,最贵那档我一天也就点用那么几次,剩下的活全在下面几档消化掉了。这套分派我跑了大半年,从来没写成规则,全在手上。

区别只在一点:我是人肉的,他那套是代码。我靠临场手感,他靠一层能复用、能沉淀的东西。手感这玩意儿,换个人就断了,我自己累了忙了也会漏判。

路由到底分哪三层

Tunguz 把路由拆成三层,这是全文我觉得最值得抄下来的部分,我用大白话过一遍。

三层路由 + 夜间闭环流程图

第一层是分类器,负责回答「这是什么活」。把你一句模糊的需求,翻译成一个具体操作:写条回复、总结个仓库、跑个迁移。它干的是听懂意图。

第二层才是路由器,负责回答「这活走哪个档」。关键点来了:它不读你的 prompt,只看分类器贴的标签,加上几个特征,比如这活多复杂、上下文多大、以前这类活成功率高不高。它干的是调度,跟听懂意图是两码事。

第三层是选择器,在定好的那一档里,挑一个满足信心门槛、又最便宜的模型。

为什么非得拆开?因为你要是把「这是什么活」和「走哪个档」糊成一次拍脑袋,模型选择就被埋进了 prompt 里,你再也没法拿同一个活去 A/B 两个模型谁更划算。我以前就是糊在一起的,难怪总觉得选型全靠玄学。

排队才是省钱前提

三层之外,还有个我一开始没琢磨透的前提:排队。

Tunguz 说,本地算力近乎免费,异步批处理比实时推理便宜两个数量级。所以真正该盯的问题换了个方向:到底有多少活,其实根本不需要一秒钟就回你。

答案是,少得惊人。草稿、摘要、尽调备忘、夜里跑的评估,这些压根不用你干等着。系统只要能把它们排进队列,大头就能挪到最便宜的档上慢慢跑。

这条对我太成立了。我这条内容流水线,除了最后成稿要盯着,前面调研、初稿、配图,哪个不能排队?我以前傻乎乎全用实时档一路催着跑,其实大可以让它们夜里排队慢慢出。

我的闭环还差一半

Tunguz 那套里,我最眼熟的是收尾那两条反馈回路。

一条是实时的,给每个请求提前标风险:缺仓库上下文、依赖链太长、危险迁移、涉及敏感操作、高后果的写入,见到就先拦一道。另一条是夜里的,批量把昨天跑过的活翻一遍、打分,回过头更新路由的判断。

第二条我看着眼熟,是因为我早有了。我那个 content-training,就是每写完一篇,把这回踩的坑自动提炼成规则、回写进我那本已经喂到一百多次的写作手册。这不就是他说的夜间闭环嘛。

老实说,我得摊个牌:我有闭环,但没有前面那层自动路由。我是手动挡,靠一双肉眼过秤;他那套是自动挡。我这半套跑了很久,另半套还停在脑子里没落地。

差的这半套,代价其实我天天在付。忙起来手一滑,随手就把本该走便宜档的杂活丢给了最贵那档;或者反过来,图省事把个稍微有点难度的活压给便宜模型,结果它答岔了,我还得回炉重跑一遍,两头都亏。这些漏判要是有一层自动路由兜着,本可以省下来。手感这东西,状态好时准,状态差时就是个筛子。

先分档再挑型号

所以这篇我不灌大道理,就给一个今天能改的动作。

下次再搭一条 agent 流程,先别急着纠结用 Opus 还是用便宜的。先把你要干的活按两个问题分个档:这活要不要实时、到底有多难。把最贵那档死死留给又难又急的,剩下的能排队就排队、能走便宜档就走便宜档。Coinbase 就是靠「更好的默认加路由加缓存」把 AI 开销砍到近一半的,他们 CEO 那句话我很认同:工程师想用哪个模型都行,但默认走什么,才是真正省钱的地方。

搭 agent 真正该先想清的,不在你挑了哪个模型,在你有没有那层「什么活走哪个档」的路由。型号是最后才填的空。

问一句:你现在是像我这样拿脑子当路由手动切档,还是已经搭了一层自动的?你把哪几类活,是打死都只交给最贵那档的?评论区聊聊你那本账怎么记的。