在AI的世界里,最贵的不是算力,是你以为不用花钱的那些开场白。
你有没有想过,当你在AI编程助手里输入一行指令时,背后已经跑掉了多少“隐形消费”?我们干了一件挺无聊但很较真的事:把Claude Code和OpenCode这两个编程助手拉到同一个实验室里,用同一个模型、同一台机器、做同样的任务,然后像查水表一样,记录它们每一条进进出出的数据。结果发现,在你还没打一个字之前,那个看起来更聪明的家伙可能已经悄悄花掉了你四倍多的“聊天额度”。这不是玄学,这是每一行代码、每一个工具定义堆出来的硬成本。
新来的是个吞金兽
先别管代码写得好不好,咱们先看看进门费。我们给两个助手布置了一道最简单的题:回复“OK”,就俩字母。结果还没开始答题,账单上的数字就让人倒吸一口凉气。
Claude Code在接收这俩字母之前,先往模型里塞了大概三万三千个token的系统提示词、工具模板和各种后台脚手架。你打开它的包裹一看,好家伙,27个工具整装待发,从创建定时任务到监控系统状态,甚至还有推送通知,恨不得把整个办公室都搬进提示词里。
而OpenCode那边就清爽多了,只带了10个经典编码工具,系统提示词简单直接,总共也就七千个token左右。这就好比你去便利店买瓶水,一个人揣着钱包就去了,另一个人拉着装满露营装备的房车,说以防万一要在停车场过夜。第一回合,Claude Code的起跑线就比别人远了四倍多。
更气人的是,这个比例还看人下菜碟。换了个新模型重新测,Claude Code像是收到了内部通知,赶紧把系统提示词精简了不少,比例一下子降到了三倍多。这说明什么?说明那堆多余的词儿不是不能省,是看人给价。OpenCode不管对面是谁,始终就那套标准流程,像个老实人,不挑客户。
这一局,Claude Code在“进场费”上确实更金贵,至于这金贵值不值,得看后面它干活的效率。
缓存里的赔本买卖
既然每次对话都要发这么多东西,那能不能让模型记性好点儿,把重复读的东西缓存起来,省点钱?理论上可以,但实际操作起来,差距大得离谱。
理想状态下,系统提示和工具定义这些东西第一次发过去后会被缓存,后面再读就只收十分之一的钱。我们仔细核对了每一轮的缓存写入和读取记录,发现OpenCode像个强迫症,每一轮对话发出的请求前缀都一模一样,分毫不差。这意味着它在一个会话里只需要付一次写入缓存的钱,后面全是优惠价。
Claude Code这边就精彩了。它不光进门带的东西多,还爱在对话过程中改写缓存。明明是一次完整的任务,同一个文件,它愣是会在中途突然把整个四十多KB的前缀重新写一遍缓存,而且这种事还不是偶然,我们测了好几次都复现了。这就好比你跟人聊天,本来已经记住你长啥样了,结果他每隔几分钟就要重新掏身份证验明正身。缓存写入本来就要加收25%甚至一倍的费用,这么一搞,光是缓存重写的成本差距就达到了几十倍。
如果你的使用量仪表盘突然飙升,别怀疑,很可能是你的助手正在后台“重新装修”缓存呢。
配置文件是隐形的军备竞赛
如果说基础开销是必选项,那配置文件就是无限续杯的加价包。一个现实的项目仓库里,往往躺着几十甚至上百KB的指导文件,比如AGENTS.md或者CLAUDE.md。这东西你得让AI知道吧?好,那每问一个问题,这二十万字符(大概两万token)就得完整地再走一遍。
我们放了个真实项目里72KB的指导文件进去,结果不出所料,两边每轮对话的token数都暴涨了两万多。这玩意儿像个沉重的锚,一旦挂上,每问一句话都要拖着你跑一遍全程。更坑的是,我们还发现Claude Code有时候会装瞎,它只认名叫CLAUDE.md的文件,对AGENTS.md视而不见,除非你手动改个名。这意味着你可能在项目里放了一堆指导文件,自认为安排得明明白白,结果人家压根没读,而你还得为这些它没读的文件反复花钱,这找谁说理去?
所以,先搞清楚你的助手到底听谁的指挥,不然你的配置文件就是个昂贵的摆设。
MCP服务器是越多越贵
现在流行给AI挂载各种MCP服务器,什么邮件日历、任务管理、数据分析,恨不得把它变成万能管家。每多挂一个服务器,就意味着要多塞进一大坨工具定义。我们试了五个小型公开服务器,两边工具数量直接翻倍,每轮对话多出五六千个token。这些公用的还算客气,要是换成生产环境里那些接口丰富的大服务器,那工具定义能再翻好几倍。
最有意思的是,Claude Code对项目里的MCP配置文件还挑三拣四,在某种模式下会无视本地配置,必须得用命令行参数硬指过去。你要是发现挂了一堆服务器但功能没生效,别怀疑,你的助手可能根本没搭理它们。但账单不会骗人,该算的token一个都没少。
所以,在给AI挂载各种神奇插件之前,先算算账,你的每一句话都要为这些插件付“出场费”,哪怕那句话只是问“今天星期几”。
手下小弟多了,花钱如流水
AI编程助手最酷炫的功能之一就是能“招小弟”,也就是派子智能体去并行干活。听起来很高效对吧?但高效不意味着便宜。我们把一个原本直接干只需要十二万token的小任务,分发给两个子智能体并行处理。结果呢?总花费直接飙升到五十一万三千token,翻了四倍多。
原因很简单,每个子智能体都有自己的进场门槛,需要重新加载一套独立的系统提示和工具集。而且当它们干完活回来,它们的整个“心路历程”,也就是对话记录,还要被当作上下文重新喂给老大哥,让老大哥汇总。这就像是你为了做顿饭,叫了两个帮厨,结果他们每人都要从头开始磨刀、洗菜、点灶台,最后还得把他们的工作过程写本书给你看。
如果哪个月的账单高得离谱,别总怪自己用得多,看看是不是你无意中“招聘”了太多免费劳动力,这账全算在你头上了。
真实场景下的恐怖故事
前面说的都是单项测试,现在我们把这些坑全填进一个真实工作环境里,看看是什么效果。
OpenCode这边挂上了十一个MCP服务器,包括邮件、日历、任务、引用管理等等,再加上那个72KB的指导文件。第一次冷启动发请求时,它一口气写了九万多个token,带着179个工具和277KB的工具定义,这时候用户连一个字都还没打。Claude Code那边虽然服务器少点,只有四个,但加上插件和同样的指导文件,也发出了七万五千token的包裹,带着118个工具。
这还只是一个请求。想想你平时跟AI来回对话几十轮,这个数字得乘以多少?所以说,助手本身决定了你花钱的基础,但你的配置决定了你账单的天花板。看着那个冰冷的数字,你只能感叹,原来在AI眼里,我那些配置文件和插件,比我本人说的话重要多了。
质量和浪费是两码事
有人可能会说,贵有贵的道理,Claude Code功能多、质量好,多花点钱不是应该的吗?但这次测试里,关键点在于质量。对于测试用的这几个任务,无论是写代码、跑测试还是修正错误,两边都完美完成了,结果没有任何区别。既然结果一样,那多出来的token就纯粹是成本差。
当然,对于更复杂的工程问题,Claude Code那套复杂的编排系统和后台代理可能确实值这个价。
但我们测出的两个现象跟质量绝对无关:
第一,在一个会话里重写一个字节完全相同的缓存前缀,对代码质量没有任何提升,但你要为这个行为付高价;
第二,配置文件助手压根没读,那这钱也花得毫无意义。不管功能多强大,多付钱应该买到更好的代码,而不是为系统的忘性买单。
最后的忠告
这一通折腾下来,最深切的感受就是,在AI编程的世界里,你以为在写代码,其实是在玩一个隐形的资源管理游戏。你的每次提问,都伴随着几十上百KB的上下文被塞进模型,而你可能连它们是什么都不知道。
最实在的建议就是,自己去门口安个监控。写个简单的代理脚本,拦在助手和模型之间,看看每次到底发了什么数据出去。检查你的助手到底读了什么配置文件,别让它假装工作。
还有,搞清楚你实际调用的到底是哪个模型版本,别让网关在中间偷梁换柱你还蒙在鼓里。下次如果看到账单又涨了,别急着怀疑自己写代码太多,很可能只是你的助手又在后台悄悄地“点亮”了整个缓存森林。