昨天我让数据师去做一件我以为十分钟就能完的事:把机器上挂着的十个 AI 服务,挨个查一遍余额。
我们每个月在这上面花钱,模型、生图、视频、搜索、转写,十个账户各有各的密码。我一直以为「还剩多少钱」是最基础的信息——就像手机话费,拨个号码就有人告诉你。
结果十家里,只有一家能当场报出数字:三十四块四毛四,清清楚楚。
剩下九家,用九种不同的方式,把门关上了。
有一家能查,但要我先去后台生成一对访问密钥,再写代码签名去调它的计费接口。翻译过来就是:想知道还剩多少,先证明你是个工程师。
有一家的余额查询接口已经下线了,HTTP 直接返回 410——接口被删了。但它的服务还用得好好的,每天照常出图。它删掉了「告诉你还剩多少」这个功能,保留了「继续扣你的钱」这个功能。
有两家的密钥直接返回 401。我第一反应是”余额不足”,其实不是——是这张钥匙本身过期了。你连门都进不去,谈不上查账。
有一家的额度页是空的。不是零,是空白。空白比零更难受,零至少是个答案。
还有一家告诉我:你所在的地区不支持。
我盯着这一屏幕的失败,忽然觉得这不像在查账,像在办证——你想知道自己的钱还剩多少,得先证明你还活着、还有资格、还在服务范围内。而这四件事,跟钱本身没有一件有关系。

一、这不是接口没做完,这是账本的选择
如果你身边有做技术的朋友,他会告诉你:这是接口不完善,是技术债,等等就好了。
我不这么看。
这九家里没有一家是”忘了做”。它们都把用量统计做得极其漂亮——日报、周报、按模型的分布、按项目的拆解、花超了给你发邮件。它们给你的不是余额,是发票。 发票是过去式,余额是将来式。一个人要做的所有决定——要不要再买、要不要换、要不要停——都需要将来式。
预付的钱躺在别人账上,你手里握着的其实只是一个承诺。承诺能不能兑现,取决于对方愿不愿意开一个口子让你看。这就是为什么”能查到余额”这件事,比”能调用服务”稀罕得多。
更狠的是,我在翻这些账户的时候才发现,我们有几个服务其实早就停了,只是没人通知我们。几家大厂这两年陆续把”永久免费额度”取消了,有的是九月底整平台停服,有的是九月一号直接砍掉免费 API,存量密钥到点失效。没有一条公告发到我们手上,是我们自己去查的时候才发现的。
免费额度的死法,从来不是”到期”,是”你不知道它已经到期”。
二、能应答,不等于还能干活
这十家里,有一家的接口特别有意思:它的模型列表端点完全免费,不需要额度,余额为零也照样返回 200,还列出一长串可用的模型名。
我们自己的脚本曾经拿它当健康判据——能返回列表,就认为服务正常。直到有一次我们真的去生成一张图,才发现账上早就没钱了。
后来我们改了判据:不用列表端点,改用一次最小的真实生成请求。真正的余额不足会返回 402,那才是答案。列表接口永远会跟你说”我在”,因为它不花钱;而你要问的是”你还能不能干活”,它答不了。

这件事让我难受了很久,因为它太常见了。
员工每天打卡,打卡机证明他来了,不证明他在干活。供应商回你一句”在的在的”,证明他还接电话,不证明他有产能。客户回你”收到”,证明他看见了,不证明他会批。我们自己的八个检测脚本,判据全是”任务交没交”,没有一个在看”站点开没开”——任务按时提交,站点挂着,两个都是真的。
我们用”它还回我话”当”它还活着”,是因为回话太容易观测了。 观测成本决定了我们会误判成什么样。
三、余额四问
这件事之后我给自己定了一套很笨的流程,四步,每次新接一个服务都过一遍。
第一问:能不能查? 不是”有没有后台页面”,是”有没有一个不用人工点、能自动拿到的数”。查不到的,别骗自己说”我心里有数”,直接在清单上标成不可观测。
第二问:查到的数是余额还是用量? 只肯给你用量的,按余额算等于零——因为你不知道那条线在哪。可以自己记日增量反推,但那是估算,估算不能用来做决策。
第三问:查不到的,配一个探针。 花最少的钱做一次真事:生成一个像素、转写一秒音频、发一条最短的请求。看它拒你还是接你。这个探针的价值不在于准确,在于它问的是对的问题。
第四问:每月固定一天,把这张表抄一遍。 因为一个孤立的余额数字没有意义——你不知道它是在涨还是在跌,是三天前充的还是三周没动过。只有连成一条线,它才变成趋势。

最后
今天的热榜上有一条:我国智能算力规模全球第二。这是真的,宏观上的算力确实越来越便宜、越来越多、越来越像水电。
但微观上,我手里能确认”还活着”的服务,比去年少了。
这两件事同时为真,而且不矛盾。总量在涨的时候,个体账本的可见度可以同时在跌——因为规模化的前提就是把你变成一个统计口径,而不是一个需要被通知的人。
我们现在的做法很土:一张表,每个服务一行,最后一列写”最后确认可用日期”。超过三十天没确认过的,一律当作”可能已经不能用了”来规划。
这不是悲观。这是把”还剩多少”的判断权,从别人的服务器上,搬回自己手里。
毕竟,能连上,不等于还有钱。