你以为账单涨是因为用户变多了,其实是你楼下那家菜贩,趁你没留神悄悄换了价签——而你,连去别家问一句价的余地都没有。
先说一句可能让你有点不舒服的话:一个 Agent 产品最危险的时刻,往往不是没人用的时候,而是它跑得好好的、你正准备大干一场的时候,突然被上游供应商掐住了脖子。
这听起来有点吓人。产品跑通了,用户来了,收入有了,怎么反倒危险了?
因为你可能一直没意识到一件事:你这门生意的命脉——那个让 AI 能思考、能回答的大模型——从头到尾,都攥在别人手里。你只认一家供应商进货,人家哪天想涨价、想限流、想改规矩,你一点还手的余地都没有,只能认栽。
这一篇,咱们就把这件"你以为是自己的生意、其实一半握在别人手里"的怪事,从头到尾摊开讲清楚。不讲怎么解决——解决办法留到下篇卷起袖子干活——这一篇只干一件事:把"为什么会被绑架、被绑架有多痛"讲到你心里去。
一、客户的第二张发懵账单
先讲个故事。
有个做 AI 产品的小团队,咱们就叫它"A 团队",负责人叫小 K。产品上线大半年,好不容易熬过了最难的冷启动期,用户稳住了,收入也开始有模有样。小 K 心里那块石头刚落地,正盘算着下个季度怎么扩规模。
结果某个月底,账单一出来,小 K 又懵了。
这回懵的不是"没在用也涨"那种账——那笔账他之前已经吃过一次亏、也想明白了。这回是另一张脸更陌生的账单:模型调用费,凭空翻了将近一倍。
他第一反应是:是不是用户暴涨了?翻了翻后台,没有,用户量该多少还是多少,用得也没比上个月凶。那这多出来的钱,是从哪冒出来的?
小 K 一行一行往下扒,最后目光钉死在一个地方:单价变了。
上游那家模型供应商,在某个不起眼的时间点,悄悄调了计费规则——有的按 token 涨了价,有的把原来的优惠取消了,还有的把他一直在用的那个型号标了个"即将下线,请迁移到新版"。新版,更贵。
小 K 盯着屏幕,憋出一句话:
“我啥也没改啊?产品还是那个产品,用户还是那些用户,怎么它自己就贵了?”
这个困惑,几乎是每一个把 Agent 产品跑起来的中小厂负责人,迟早都要撞上的第二根钉子。第一根钉子是"没在用也烧钱",那笔账好歹还算在自己头上;这第二根钉子更憋屈——账是别人替你涨的,你连讨价还价的资格都没有。
想把这事讲透,得先请出这一篇会一直陪着咱们的一个比喻——楼下那家菜贩。
你开了一家小餐馆,生意还不错。你的厨房每天都得进一批食材——葱姜蒜、油盐酱、鸡鸭鱼肉。这些食材,你全都在楼下那家菜贩那儿进。为啥?因为方便啊,就在楼下,熟门熟路,一个电话人家就送上来了。
日子久了,你几乎不去想别家。菜谱是按他家的货配的,进货的时间、包装、结账的方式,全按他那套来。你甚至懒得记别家菜贩的电话。
直到有一天,他悄悄把价签换了。
葱涨了,油涨了,连你天天要的那种鱼,他说"以后不进这种了,换成隔壁那种更贵的"。你想理论两句,人家慢悠悠一句话把你噎回去:“嫌贵你去别家买啊。”
可你去得了别家吗?你的菜谱、你的流程、你厨房里的一切,早就是按他家的货长出来的。你真要换一家,等于把整个后厨推倒重来。于是你只能咽下这口气,认了这个涨价。
小 K 那张翻倍的账单,就是这家菜贩换掉的价签。
而最要命的地方在于——这不是你不够精明,而是你从一开始,就把整个厨房的命,押在了一家你根本管不住的菜贩身上。
二、为什么你会不知不觉只认一家菜贩
你可能会想:我又不傻,怎么会把命押在一家身上?
问题就在这儿——这事从来不是你哪天拍脑袋决定的,而是你在不知不觉中,一步一步走进去的。
咱们倒回去,看看小 K 当初是怎么走到这一步的。
产品最开始起步的时候,小 K 要接一个大模型。市面上供应商一大把,他随手挑了一家——不是因为这家最好,而是因为这家的文档最全、例子最多、注册最快,半天就能跑通一个 demo。对一个恨不得明天就上线的小团队来说,"最省事"就是唯一的标准。
于是他接了。接的时候,一切都顺理成章:
按这家的 SDK 写代码,按这家的鉴权方式配密钥,按这家返回数据的格式解析结果,连出错了怎么办,都是照着这家的错误码来处理的。
这些东西,一开始只是"接一家"。可它们像藤蔓一样,慢慢缠进了产品的每一根血管里。
三个月后,小 K 的代码里,到处都是这家供应商的影子。哪个功能调模型、怎么调、调完怎么处理,全都跟这家的接口死死焊在了一起。
这时候有人劝他:要不要多接一家备着?小 K 摆摆手——“现在跑得好好的,接那玩意儿又要改一大堆代码,等有空再说。”
"等有空再说"这五个字,就是绑架的开始。
你看,这就是那口温水。你不是被谁按着头绑死的,而是你自己,为了图一时省事,一点一点把绳子缠到自己身上的。
回到菜贩的比喻,这个过程再熟悉不过了:你不是一开始就发誓"我这辈子只认这一家",而是第一次图方便在他那儿进了货,然后第二次、第三次,菜谱慢慢按他的货调,流程慢慢按他的节奏走,直到有一天你回头一看——你已经离不开他了,可你自己完全没察觉这个过程是什么时候完成的。
这就是温水煮青蛙最阴的地方:水不是一下子烧开的,是一度一度往上升的。等你觉得烫了,想跳,才发现腿早软了。
小 K 的迁移成本,就是这么一天天滚大的。刚接的时候,换一家可能就是改几行代码的事;跑了大半年之后,换一家意味着把产品里几百处调用全部翻出来重写一遍,还要重新测试、重新踩坑。越用越深,越深越换不动,越换不动就越只能忍——这是一个会自己收紧的死结。
所以别怪自己当初没长眼。绑死一家供应商,往往不是一个错误的决定,而是一连串"太合理"的省事选择,攒到最后的结果。
这话你得品一品:单看每一步,都对。第一次图省事,对;跑通了不折腾,对;有空再优化,也对。可这一串"对"叠在一起,就把你叠进了一个动不了的墙角。绑住你的,从来不是某一个坏决定,而是一堆好决定叠出来的惯性。
三、绑死一家的三笔隐性代价
想清楚了"你是怎么被绑上的",接下来得算算:被绑着,到底要付出什么代价?
摊开看,是三笔藏在暗处的账,平时你根本感觉不到,一旦爆发,笔笔要命。
第一笔,涨价传导——你把定价权,拱手交给了别人。
这是小 K 这回撞上的那笔账。当你只认一家菜贩,他涨不涨、涨多少、什么时候涨,全是他一句话的事。他涨,你的成本立刻跟着涨,一分都躲不掉,因为你没有第二个选择去牵制他。
token 是 Agent 产品最大的一块边际成本——用户每问一句、AI 每想一次,都在烧 token。你把这块成本的定价权交给一家供应商,等于把自己利润的生死线,交到了别人手里。他不用抢你的客户,只要动一动价签,就能从你碗里舀走一大勺利润。
说白了,只认一家进货,省下的不是当下那点对接功夫,而是你以后讨价还价的资格。
第二笔,条款单方变更——什么时候关门、卖什么、怎么卖,全是他说了算。
涨价还算是明面上的。更让人没脾气的,是那些"规矩"上的变动。
今天他给你限个流,说你调用太频繁,得排队;明天他把你正用得好好的那个型号下线了,逼你迁到新版;后天他改一条使用条款,某个功能不给用了。这些,你一个都拦不住,因为这不是你的菜摊,你只是个来进货的。菜摊几点开门、卖不卖某样菜、给不给你留货,从来轮不到你做主。
对一个把产品架在这家供应商之上的团队来说,这意味着你的产品稳定性,永远悬在别人的一念之间。人家改条款的时候,根本不会先问问你方不方便。
这不是合作,这是寄人篱下。你以为你是客户,其实你是房客,而且是个连房东电话都不敢多打的房客。
第三笔,单点故障——他一打烊,你整条街都得关灯。
前两笔好歹还是"贵一点"“烦一点”,这第三笔,是直接要命的。
只认一家菜贩,还有一个你平时压根不会去想的风险:万一哪天他自己出事了呢?
他的仓库着火了、他的车坏在半路了、他这个片区临时停业了——不管什么原因,只要他今天送不上货,你的厨房就一粒米都下不了锅。你的餐馆,只能挂上"今日暂停营业"。
放到 Agent 产品上,就是那家模型供应商一旦服务中断——不管是他自己宕机,还是限流,还是某个区域出故障——你的产品,当场就是一块砖。用户点进来,AI 一句话都答不出来,转个圈就是报错。
你没有任何 B 计划,因为你从来就只有一个 A。
一家菜贩正常营业的时候,你觉得这安排挺好,省心。可它就像一根只有一股的绳子——平时吊着东西看不出毛病,哪天这一股断了,东西直接摔地上,连个缓冲都没有。只认一家,平时省的是心,出事赔的是命。
这三笔账合起来,就是"绑死一家"的真实代价:价格上任人拿捏,规矩上任人摆布,命脉上系于一线。平时风平浪静,你甚至觉得这样挺高效;可只要上游那家有任何一点风吹草动,这三笔账就会同时找上门来,把你按在地上。
四、还有一笔更冤的钱:顿顿去米其林点炒青菜
前面三笔账,都是"绑死一家"这个结构惹的祸。但还有一笔钱,冤得更彻底——它不是供应商坑你,是你自己,把钱往贵里花,还浑然不觉。
咱们先看一个反常识的事实。
你产品里那个 AI,一天到晚在处理各种各样的请求。可你有没有想过,这些请求,难度天差地别?
有的用户问的是硬核问题——帮我分析一份复杂的报告、写一段有点门道的代码、理清一团乱麻的逻辑。这种活儿,确实得用最聪明、最贵的那个大模型来干,就像疑难杂症得挂专家号。
可更多的时候,用户问的是什么?“你好”“这个怎么用”“帮我把这句话改通顺点”“今天几号”……这些,说白了都是常识题,随便一个便宜的小模型就能答得又快又好。
问题来了:在只认一家、而且图省事只用它最贵那个型号的架构里,这些常识题,也全都一股脑打到了那个最贵的专家模型上。
用大白话说就是:你让一个挂了专家号的老教授,天天坐在诊室里,给人量体温、发感冒药。
这有多浪费?咱们看一组公开数据(来自 2024-2025 年公开的模型能力与价格对比,随时会变,别当死数字):
在衡量模型综合能力的一个公开测评里,那些顶级的贵模型,能力得分在 88 到 92 分之间,价格是每百万 token 五到十美元;而一些够用的小模型,得分也有 75 到 82 分,价格却低到每百万 token 一两毛人民币,甚至更低。
你把这两层价差分开看:顶级贵模型和够用小模型直接比较,账面单价能拉开数百倍;即便只在"够用"这一档里横向比较,最贵的和最便宜的,单价也能差出大约 50 倍。
50 倍是什么概念?就是同样一笔活儿,你花的钱,可能是本该花的 50 倍。而这 50 倍的差价里,绝大部分,是你拿去给"量体温、发感冒药"这种常识题买单了。
这就是所谓的"大模型滥用":不是模型太贵,是你拿高射炮打蚊子,还顿顿都打。
回到餐馆的比喻,这事就更荒诞了:你不光只认一家菜贩,你还顿顿都去这家菜贩最贵的那个柜台,进最高级的食材,回来就为了炒一盘再普通不过的青菜。炒青菜要用得着神户牛肉级别的价格吗?不要。可你就是这么干的,一天三顿,月月如此。
更扎心的是,这笔冤枉钱,账单上根本不会单列出来告诉你。它就悄悄混在那笔"模型调用费"里,跟着你的用量一起,月复一月地滚大。你甚至会误以为"AI 就是这么贵",然后认了。
你回头看看小 K 那张翻倍的账单:里头一部分是供应商涨价涨上去的,另一部分,其实是他自己长年累月拿专家号看常识病、一点点堆上去的。两笔钱混在一起,他连"哪些贵是别人涨的、哪些贵是自己花的"都分不清楚。而这,恰恰是绑死一家、又图省事只用一个贵型号,最隐蔽的连带伤害——你不光被人拿捏了价格,还失去了把钱花在刀刃上的能力。
所以你以为的"AI 太贵",很多时候不是 AI 贵,而是你把每一道家常菜,都送去了米其林后厨。
五、为什么"我直接多接几家 if-else"救不了你
聊到这儿,你脑子里大概已经冒出一个特别自然的念头了:
“这好办啊!我不就是绑死了一家吗?那我多接几家不就行了?代码里写个判断,这种情况用 A 家,那种情况用 B 家,A 家挂了就切 C 家——问题不就解决了?”
这个念头,几乎是每个人的第一直觉。听起来天衣无缝,实则是个更大的坑。咱们把它掰开看。
你说的"多接几家、写个判断来回切",翻译成大白话就是:在你的产品代码里,硬生生塞进一堆"如果……就……否则……"的岔路。
如果是这种请求,就调 A 家的接口——按 A 家的格式;
否则如果 A 家挂了,就调 B 家的接口——按 B 家的格式;
再否则用 C 家——按 C 家的格式……
第一眼看,好像是解耦了,从一家变成了三家。可你仔细想想,你到底干了什么?
你不是把绳子解开了,你是把一根绳子,换成了三根缠在一起的绳子。
因为每一家供应商的接口都不一样:鉴权方式不一样、参数格式不一样、返回结构不一样、错误码不一样。你这堆"如果否则"里,塞的全是这些乱七八糟的差异。它们像一团越缠越紧的毛线,死死缠在你产品最核心的业务逻辑里。
于是新的噩梦开始了:
你想加第四家供应商?对不起,回去改代码,在那团毛线里再加一坨。
某一家改了接口格式?对不起,回去改代码,把那一坨拆了重织。
你想调整一下"什么请求走哪家"的策略?对不起,还是回去改代码。
你每动一次供应商,就得动一次产品最核心的代码。而每一次动核心代码,都是一次风险——可能引入新 bug,可能测试没覆盖到,可能上线就炸。
回到菜贩的比喻,这就好比:你为了不被一家绑架,干脆让每个厨师,各自去认识一批不同的菜贩,每个人手里攥着一沓不同菜贩的电话、不同的砍价话术、不同的送货时间表。厨房是热闹了、也不怕一家断供了,可整个后厨彻底乱成一锅粥——没人知道今天到底该找谁、哪个便宜、哪个靠谱,换个菜贩全厨房都得跟着重新记一遍规矩。
所以你看明白了:直接 if-else 多接几家,不是解耦,是把"绑死一家"换成了"绑死一堆 if-else"。你没有获得自由,你只是把一个枷锁,换成了一副更重、更乱的枷锁。
这里藏着整件事最关键的一句话,你一定要记住:
解耦真正的难点,从来不是"能不能换第二家",而是"每家的接口都不一样,你得有一个统一的地方,把这些乱七八糟的差异全接住、抹平"。
if-else 恰恰做反了——它非但没把差异抹平,反而把每一家的差异,全都摊在了大太阳底下,摊进了你最不该碰的核心代码里。
那到底该怎么办?该有一个什么样的"统一的地方",来把这些差异接住?
别急,这正是下篇要卷起袖子干的活儿。这一篇,咱们先把"为什么 if-else 救不了你"这个坑,认认真真绕明白。
六、把痛点钉死:几句你该记住的话
一大圈绕下来,咱们把这一篇摊开的账,收一收。我想用几句"反着说"的话,帮你把这件事真正刻进脑子里。
不是 AI 本身贵,而是你把进货的定价权,整个交给了一家你管不住的菜贩。
小 K 那张翻倍的账单,涨的不是"AI 变聪明了"的钱,是"你没有第二个选择"的代价。只认一家,你就永远只能当那个被通知涨价的人。
不是你当初瞎了眼选错了供应商,而是你在一连串"太合理"的省事里,把自己一点点缠死了。
第一次图方便,对;跑通了不折腾,对;有空再优化,对。可这一串对,攒成了一个你动不了的死结。绑架从来不是一个坏决定,是一堆好决定叠出来的惯性。
不是多接几家就叫解耦,而是你得有个统一的地方,把各家的差异全接住。
直接 if-else 硬切,不是把绳子解开,是把一根绳子换成三根缠一起的绳子。你没获得自由,只是换了副更重的枷锁。
不是 AI 干的活太高级才贵,而是你拿专家号,去看了太多本该挂普通号的常识病。
同一档能力的模型,价差能到大约 50 倍。你把家常菜顿顿送进米其林后厨,账单当然下不来——可这笔冤钱,账单上从来不单列。
不是这门生意不能做,而是你不能把命,全押在一家你管不住的供应商身上。
这句话,是这一整篇的核心。你把它记住,就等于把这一篇读明白了。
金句听着痛快,但你要真信这几句,才算真看懂了小 K 那张翻倍的账单——它涨的从来不是"AI 的钱",是"你没得选的钱"。
把这几笔账并在一起看,你就会发现一个共同的根子:问题的根源,从来不是你选了哪一家,而是你只有一家。只要你只有一家,涨价你得认、改规矩你得认、断供你得认、贵型号你也只能硬用——所有的被动,都从"只有一家"这四个字里长出来。
看懂了这个根子,你其实已经离答案不远了。
七、写在最后
咱们把这一整篇收个尾。
小 K 盯着那张翻倍账单发懵的时候,他撞上的,是中小厂做 Agent 的第二根钉子——只认一家模型供应商进货,人家一涨价、一改规矩、一断供,你连还手的余地都没有。
这根钉子扎得深,是因为它背后是一整串环环相扣的被动:图省事绑死了一家,绑死之后迁移成本越滚越大,越大越换不动,越换不动就越只能任人拿捏——价格上被涨价传导、规矩上被单方变更、命脉上系于单点故障,还顺带被"顿顿用最贵型号"这笔冤枉钱慢慢放血。而你想靠"多接几家 if-else"自救,结果只是把一副枷锁换成了一副更重的。
所有这些痛,归到最后,都是同一个根子:你只有一家,你没得选。
那答案是不是就呼之欲出了?
既然痛的根子是"只有一家、没得选、还得自己在代码里手忙脚乱地切"——那能不能,请一个专门的人来管这摊事?
一个不站在任何一家菜贩那边、只替你厨房打算的人。你只管说"我今天要这些菜",剩下的——去哪家进最划算、这家断供了立刻切哪家、每一笔进货花了多少钱记在哪本账上——全交给他去操心。你的厨房,从此只跟这一个人打交道,再也不用记一沓菜贩的电话,再也不用被谁一句"嫌贵去别家"噎得说不出话。
这个人,就是解开整个困局的那把钥匙。
而这,恰恰是下篇要卷起袖子干的活儿——怎么给你的厨房,配一个会比价、会兜底、会记账的"采购总管"。怎么让它替你在多家供应商之间挑最划算的,怎么让它在一家断供时不声不响切到备用的,怎么让它把每一笔账都记得清清楚楚。这一篇咱们把"为什么非得请这么个人"讲透了,下篇咱们就动手,看看这位采购总管到底该怎么搭出来。
先记住这一篇最要紧的一句:你为 Agent 烧的冤枉钱,大头不在 AI 有多贵,而在于你把整个厨房的进货大权,全交给了一家你根本管不住的菜贩。
关于 ArchAIHarness
这篇文章是「看懂 AI 与智能体」专栏的一部分,由ArchAIHarness持续输出。
ArchAIHarness 是一套面向 AI 时代软件工程的人机协同架构哲学与公开工程资产,主张:
架构师定义秩序,AI 在秩序中生长。人立法,AI 执行,体系审计。
如果你也希望 AI 在明确的架构边界内协作,而不是在混沌中碰运气,欢迎到 GitHub 上看看我们在做什么:
- 组织主页:github.com/ArchAIHarness — 了解完整理念与资产全景
- 本专栏:
zhuanlan-ai-and-agents— 所有文章的源码与发布记录 - 实践指南:
docs— 架构哲学、工程方法和落地指南 - 开源工具:
agent-workflows— 可复用的 AI 协作 Agents、Skills 与 Tools - 工程样例:
framework— DDD + AI 协作的工程底座,展示如何在开发中融合 AI
Engineered by Architects · Empowered by AI · Audited by Discipline