大数跨境

一头少进,一头少出:模型账单上的两个token省法

一头少进,一头少出:模型账单上的两个token省法 AI驱动数字化转型
2026-10-01
5
导读:这件事的形态值得单独记一笔,省token不该靠自觉,靠自觉的做法会在忙起来的第一天失效。本机的这两条省法最后都落在机制上,一条由插件在工具返回的那一刻自己动手,一条写进了每一轮都要读的规则里,不依赖当
本机上智能体忙活一整天,账单一共1.17美元,折合人民币约八元,其中模型被调用908次。
把钱花在哪里拆开看只有三块,按计价表折算,一直没变的那段内容被反复重读,占53%;这一轮新添进去的内容,占26%;模型写出来的回答,占21%。前两块合起来八成,都属于进来的那一头,只有两成属于出去的那一头。
这个比例不是偶然,聊天机器人一问一答,进来的和出去的篇幅差不多,智能体不是这样,它一边做事一边读结果,读进来的东西比写出去的东西多得多。

Manus团队在2025年7月那篇官博里给过自己的数字,输入和输出的比例大约是100比1,他们那个量级比本机大得多,比例的方向却完全一致。

省钱的方向由此定下来,一头管住进来的,一头管住出去的。

PART 01
管住进来的一头:减少重复占用上下文的token

进来的这一头,最大的浪费不在人说的话上,而在工具干完活返回的结果里。跑一条命令,日志刷出几千行;打开一个网页,正文加上脚本有几万字;查一次代码,命中一大片。
这些东西进了上下文之后,模型每一次动作都要把它们重新读一遍,读一遍付一次钱,而且越靠前的内容越容易被压缩、被挤掉,人以为它还在那里,模型其实已经看不全了。
token是模型计费的最小单位,上下文里放进多少,账单上就按多少算。
这一天里被反复重读的量是2.33亿个token,同一时间新添进去的内容只有231万个,前者是后者的一百倍上下。
为什么便宜的东西会变成最大的一笔,答案在量级上。从缓存里取回一段不变的内容,单价只有新内容的五十分之一,可这一天里它被取回908次,每一次都要把前面几十万个token的上下文重新过一遍,平均下来每次调用要重读25.6万个token,几次一乘,便宜的那部分就成了账单上最厚的一块。
三块里的份量要分开看,钱的那一面,重复重读占53%,新添进去的占26%,回答占21%;换成token的那一面,重复重读是2.33亿个,新添的231万个,回答93万个,差距被拉得更大,钱主要压在重复上。

工具结果落盘,上下文只留索引
本机真正动手的位置,就在工具返回结果的那一瞬间。返回的内容超过12000个字符,全文写进硬盘上的一个文件,上下文里只留三样东西:开头的四十行、结尾的二十行,以及那个文件的地址。
模型要看细节,按地址去取,取多少读多少,多出来的部分一直待在盘上,不占上下文的位置。
这个做法像把一箱档案搬进办公室时只把目录留在桌上,要看哪一份再让人从档案室里取出来,桌面上永远只有目录那么厚。
留头留尾不是随手写的,工具的结果里最该看见的东西往往在两头,开头是这条命令做了什么,结尾是报错、结论和总数。
中段那几千行明细,绝大多数时候没人再看第二遍,真要看的时候,地址就在那里。
实测的数字有两个,一个是单次,34889个字符的返回,进上下文只剩4298个,省掉87.7%。
另一个是端到端,另起一个会话真跑一条命令,输出40045个字符,最后进上下文的约两千个,省掉94.9%。两次的全文都完整躺在盘上,逐字节与原始输出一致,一个字都没有丢。
有人会问为什么不干脆让模型写一段摘要,答案有两层。摘要这件事本身要花token,而每一次大输出都要花一次;更要紧的是摘要会失真,模型漏掉哪一句,后面对不上就要返工。
这里的取舍是拿确定性换成本,挑行的规则写在代码里,报错、异常、失败、超时这些词命中的行一条不落,剩下的留头留尾,全程不需要模型参与。
当天试过一份中段埋着报错和异常的日志,那两行都被完整保留下来。
让模型自己判断哪一段该搬走,看起来更聪明,代价是每一次都要多一轮判断,判断本身要花钱,判断错了还要返工,账算下来并不划算,能写成代码的部分就交给代码。
这条路并非本机独有:
  • Manus把文件系统当成上下文的一部分,网页的内容可以从上下文里删掉,只要链接还在
  • Claude的官方文档里写着,压缩之后会自动重读最近动过的文件,把任务清单恢复回来
上下文这个位置本来就该这么用,装不下的东西放到外面,只留一张准确的索引。

Anthropic在2025年9月那篇讲上下文工程的文章里把道理说得更直接,上下文是有限资源,里面的token越多,注意力被摊得越薄,取用越不可靠。Chroma在同一年7月发布的一份研究里把结论写得更硬,输入越长,模型对上下文里信息的取用越不稳定,窗口够大不等于看得住。


精简工具定义,去掉冗余开销
工具定义本身也在占地方,这一点同行已经在公开算账。GitHub的工程团队在自家博客里写过,他们那批自动化的流程里最普遍的一处浪费是挂着不用的工具。
四十个工具里如果只用两个,剩下三十八个就成了每次请求都要背上身的开销,把不用的去掉,每次调用的上下文少了八千到一万二千字节。
另一份工程博客量过更直观的数,一套常用工具集光把定义讲清楚就要一万七千多个token,自家那套也要一万上下。
省下来的除了字节,工具调用本身也是一轮完整的往返,模型要写参数、要读返回,遇到能用命令行解决的事,那一次往返整笔都可以省掉。
模型上下文协议的社区已经专门开了议题,讨论给工具定义瘦身,可见这是行业级的账,不是某一家的用法问题。

当前方案的边界
这套做法也有它到不了的地方,它只对文本结果有效,图片、音频这类内容不走这条路;返回内容不超过这条线的,照旧原样进上下文,因为小结果搬一次反而多一道手续。
被搬走的内容如果模型后面真的要用,取回来的这一次也要按新内容付钱。
做这类系统的人得接受一个前提,省的是重复搬进搬出的那部分,不是把信息弄丢。
落到具体形态上,这件事最要紧的一点是它不靠人记着去做。本机把它挂在一个插件里,工具返回结果的那一刻由插件自己判断和搬运,这条线可以按需要调,读技能正文、看网页快照这几类必须完整读的内容被列进了例外,不进这条路;哪天不想用了,一条命令就能关掉,关掉之后行为与从前完全一致。
PART 02
管住出去的一头:减少不必要的输出token

出去的那一头比进来的那一头简单,钱也少一些,可它有一处很容易被忽略。
模型写出来的部分占账上21%,单价比输入贵,本机账上输出每百万0.28美元,输入每百万0.14美元,差一倍;GitHub的工程博客在算自己的账时,给输出token记的权重是输入的四倍,行业里常见的说法也是两到四倍,碰到极端档位还要更高。
更值得单独说的一件事,是模型在想的那部分也要按输出付费。当天930429个输出token里,有480812个是模型在内部先想一遍、最后并不显示出来的内容,占51.7%,折成钱约0.13美元,等于当天总花费的11.5%。
这笔钱花得值不值要看它换回来什么,而本机的三组对照实验给出的答案不太好看,把非思考那一路的模型名显式写进命令行,思考token确实归零;把同样的设置写进配置文件,思考照旧;再加一层按模型单独指定的关闭开关,思考还是照旧。
三条路走完,只有不能被长期使用的那一条有效,于是配置全部回滚,这项省法在当前的组合里不成立。
能动手的是输出本身,模型写给人看的东西里,有一部分是交付物,有一部分只是过程,过程留得越细,账单越厚,而人对过程的需要其实很有限。
本机的做法是把口径写进每一轮都要读的那份规则里,结论先说,长内容落盘给地址,要过程再取。这条规矩听起来像纪律,落到账上却是能算的,模型少写几段过程叙述,账就少一截,真要细节的时候按地址去取,读到的还是完整的原文。

PART 03
不划算的尝试,不是所有省法都值得做

省法说到这里只有两条,可真实过程里试过更多,其中四条量化之后都不划算。
  1. 替换旧的大工具结果:把上下文里又大又旧的工具结果换成一行地址,看上去最像省钱的一招,实测下来行不通。能换掉的内容确实不少,占活消息的48.7%,可这类内容在缓存里的单价只有新内容的五十分之一,每次调用省下的钱不到万分之一美元,而每换一次,前面那一段缓存就作废,后面要按全价重算一遍,算总账净剩一两毛钱,还要冒着模型找不到旧内容、回头重新读一遍的风险。
  2. 拦截重复读取:拦截重复读取同样不划算,本机一天里完全相同的调用是0次,看上去重复的那些,目标不同、返回也不同,拦下来只会让模型误以为内容没有变。
  3. 收紧工具默认返回条数:把工具默认返回的条数收紧也不划算,一天里落在三千到一万五千个字符之间的结果只有17条,收紧之后省不到一毛钱,还伤了精确改文件时的准头。
  4. 压缩固定前缀:固定前缀那一块更小,工具说明与系统提示加起来110.9千字节,占每次重读量的一成上下;可它里面能动的部分很少,本机实测过压缩技能索引,只挪掉972字节,折到账上是零头。
还有一笔账最容易被算错,本机在每一次工具调用之前都有一道判断,由本地的小模型来判这条命令能不能直接执行。
两天里通过检查的调用2216次,升级到人确认的有561次,其中规则判出来的116次,本地模型自己判出来的13次,判决服务超时升上来的375次。
这条路省下的钱其实不多,两天折成人民币两块五上下,原因是判断本身输出就不长,真正贵的那部分它碰不到。
可它的价值本来就不在钱上,判错一条写文件或者删数据的命令,代价不是几分钱能比得过的。
PART 04
省token要靠机制,不靠自觉

两条路适合的场合不太一样,只跟文字打交道的系统,先做输出那一条,它不碰工具,改的是说话方式,改动小、见效快;天天跟日志、网页、代码打交道的系统,先做进来的那一条,因为那里的浪费以百倍计。
两条省法指向同一件事,上下文是有限的,输出是要付钱的,把进来的那一头管成一张准确的索引,把出去的那一头管成一份干净的交付,账自然就下来了。
这一天省下的除了几毛钱,还有注意力的余量,上下文里少放一段无关的内容,模型在关键的地方就多一分看得住的机会。
这件事的形态值得单独记一笔,省token不该靠自觉,靠自觉的做法会在忙起来的第一天失效。本机的这两条省法最后都落在机制上,一条由插件在工具返回的那一刻自己动手,一条写进了每一轮都要读的规则里,不依赖当时有没有人想起它。

【声明】内容源于网络
0
0
AI驱动数字化转型
专注AI,促进智造行业数据衍生,服务智能制造企业的数字化、智能化,聚焦大模型私域部署、大模型微调、数据清洗、AI模型训练、私域知识库及agent技术延展等。行业智能,落地为先。
内容 1096
粉丝 1
AI驱动数字化转型 专注AI,促进智造行业数据衍生,服务智能制造企业的数字化、智能化,聚焦大模型私域部署、大模型微调、数据清洗、AI模型训练、私域知识库及agent技术延展等。行业智能,落地为先。
总阅读12.2k
粉丝1
内容1.1k