AI 太勤快了:被“主动帮忙”烧掉的 token
TOKENCOSTAGENT
AI 没有成本意识,它只会把活干到最漂亮。于是“勤快”没有开关,便成了你账单上最隐形的推手。
小项目你感觉不到,一旦做起前后端全站,它就开始主动补测试、加文档、顺手重构——一堆看着有用又没用的活,把 token 蹭蹭烧光。
我一个朋友最近跟我吐槽:他有点想不通,那些明明买了高价套餐的人,为什么还老喊额度不够用。听了半天,我反倒有点明白了——问题可能不在套餐贵不贵,而在 AI 太勤快了。
我自己也是这么过来的。平时开发的都是小项目,很简单,几个文件几行逻辑,你让 AI 改个东西,它改完就完了,额度掉得毫无波澜。可一旦你要做前后端全站,画风立刻变了。
你会突然发现,AI 可勤快了。你只是想让它把登录接口打通,它顺手帮你把单元测试也写了;你只是想加个字段,它自作主张把整个模块的错误处理重构成了一套统一方案;你只是想修个 bug,它觉得顺带把文档和注释也补了更"完整"。每一件,单独看都是正经活,可堆到一块儿,token 消耗特别快。
我琢磨了很久,觉得根子在一个很朴素的地方:AI 没有成本意识。
AI 编码助手的训练目标和默认性格,是被设定成"把任务做到最好"的。它衡量自己成功与否的标准,是活干得漂不漂亮、覆盖得全不全、边界处理得细不细——而不是"替我省了多少 token"。对它来说,多写一个测试、多补一段文档,是负责任的表现;至于这responsibility 值不值你那点额度,它根本无从感知。
换句话说,它没有"省钱"这根神经。它只有"把活干好"这一根神经。于是当它面对一个稍微复杂点的全站任务,那根神经就自动开足马力:能多做的都做,能补的都补,能顺手优化的都顺手优化。
为什么小项目感觉不到,全站就突然"爆表"?因为那堆"看着有用又没用的活",是跟着任务规模做乘法的。
小项目文件少、依赖少、边界少,AI 想多加活也没多少地方可加,额外开销被摊得很薄。可全站项目一上来就是前后端、数据库、鉴权、接口契约、跨模块联调——每一个环节,AI 都能"贴心地"帮你在边上再叠一层保险:测试、文档、异常分支、日志、类型约束……
- 小项目:改一处 → 多写 0~1 个文件,几乎无感
- 全站:打通一个接口 → 顺带补测试、重构错误处理、更新文档,×3 起跳
- 全站再叠"顺手优化":把相邻模块也一并收拾了,×N 不可控
- 套餐按月固定 → 这些活全从同一口井里抽水,井会干
所以高价套餐不够用,常常不是因为套餐小,而是因为你的"井"被一堆非必要动作持续抽水。厂商卖的是一口更大的井,可如果你的取水方式本身就在漏,井再大也填不满。
我把 AI 最爱"自作主张"加的活,大致归了个类。每一件单独拎出来,你都没法说它没用——可放到你那个轻量项目里,往往是杀鸡用牛刀:
② 顺手重构。本来只改三行,它觉得"既然动了这里,不如把这块一起收拾干净",范围悄悄扩大。
③ 补全文档与注释。把"活干完"理解成"交付一份完整工程",于是 README、接口说明、注释全给你写上。
④ 过度防御。多加异常分支、边界校验、日志埋点,覆盖一堆你这辈子都触发不到的场景。
这几类活有个共同特征:它们在"专业工程"语境里是美德,在"小项目/快速验证"语境里是冗余。而 AI 默认站在前者那一侧,因为它被训练成"专业工程师",而不是"帮你省额度的人"。
想明白这点之后,我的做法很简单——主动给 AI 立规矩,把成本意识外包给它。它自己没有开关,那我就替它装一个。几招挺管用:
x.go 第 20 行改这个逻辑" 比 "帮我优化登录功能" 省太多 token。越开放的描述,它越能自由发挥。说白了,把"别瞎帮忙"写进提示词里,比事后心疼额度强多了。
AI 的“勤快”是能力,不是缺点;可对我们这些按额度过日子的人来说,没有开关的勤快,就是隐形的成本。高价套餐不够用,先看是不是被一堆"看着有用又没用"的活抽干了井,再决定要不要换更大的井。而最省的那口井,往往是一句写进提示词的"别瞎帮忙"。
让 AI 的“勤快”乖乖听你调度。