最近一直用 Claude Code,有一个特别折磨人的地方:明明只是改几行简单代码、修复小Bug,Token 消耗却疯狂暴涨,轻轻松松干掉几千万 Token。而且经常没几次会话上下文就100%了。
一开始我特别费解,改动逻辑一点不复杂,为什么 Token 消耗会爆炸式增长?
折腾复盘了好几天,彻底摸清了固定时间窗口+周总量Token套餐的消耗逻辑,也摸透了 AI 代码助手的上下文堆叠规则。今天把这套「省Token、不丢上下文、提升迭代效率」的实战技巧完整分享出来,专门适配和我一样用包月/固定额度套餐的开发者。
先讲核心痛点:你以为的缓存优惠,根本不存在
很多人会混淆两类计费模式,我之前也踩了这个误区:
一类是官方按量计费 API(DeepSeek / Claude 官方)
支持 Prompt 缓存打折,重复的项目代码、系统提示、历史上下文,命中缓存后只收原价 10% 甚至更低的费用(DeepSeek每百万tokens输入缓存命中仅0.02元,而未命中要1元)。哪怕一轮对话带几千万重复 Token,实际账单成本极低。
另一类是我在用的固定 Token 套餐(重点)
按「5小时时间窗口限额 + 每周固定总量」计费,完全不区分缓存命中/未命中。
不管是全新提问、重复携带的项目源码、叠加的历史对话,还是缓存命中的前缀内容,全部全额统计 Token、全额扣额度。
从我的MiniMax订阅套餐上查看,缓存命中基本在95%上下。

这就是核心坑:缓存对套餐额度无效。
哪怕你会话缓存命中率 95%,看着 AI 复用了大量旧上下文,套餐额度照样一分不少扣。多一轮对话,就多叠加一层历史上下文,Token 消耗雪球式暴涨,最后莫名其妙用光额度。
为什么简单修改,会耗掉千万级Token?
很多人疑惑:我就改两三行代码,凭什么消耗千万 Token?
根本原因不是改动量大,是上下文无限堆叠、重复内容无限累加。
AI 模型本身无状态,每一轮对话,都会完整携带所有前置内容:
-
完整系统提示、工具定义规则
-
项目所有已读取的源码、配置文件、说明文档
-
之前每一轮的问答记录、代码 Diff、完整重写文件、命令执行日志
举个最直观的例子,5轮连续对话的真实消耗逻辑:
第1轮:系统提示 + 全量代码 + 第1轮问答
第2轮:系统提示 + 全量代码 + 第1轮 + 第2轮问答
第3轮:叠加前两轮所有内容,以此类推
简单说:5轮对话,所有代码和历史记录会被重复上传、重复计费5次。
中型项目本身基础Token基数就高,不用几轮迭代,轻轻松松冲千万消耗,套餐额度直接被掏空。
我的最优平衡方案:省Token + 不丢上下文
试过很多极端方案:频繁清会话、全程不清理、无脑新开对话,最后总结出一套兼顾极致省Token和开发连贯性的黄金打法,完美适配固定额度套餐。
1. 把 Claude.md 写完整,但不冗余
这是保住上下文的核心关键。
不要依赖历史对话记忆项目规则,把所有固定信息一次性写入 Claude.md:
-
项目技术栈、整体架构、目录规范
-
编码规则、字段约束、错误码规范、序列化标准
-
权限逻辑、业务流程、全局统一约束
优势:
单次会话内,这套规则只加载一次,后续多轮迭代无需重复说明,替代臃肿的历史对话记忆。哪怕后续精简、清空会话,只要 md 文件不变,项目核心上下文就不会丢失。
注意避坑:
不要堆砌无关文档、冗余示例,避免 md 体积过大,导致每次重置会话都一次性消耗大量 Token。精简、精准、够用即可。
2. 单会话严格控制在3轮以内迭代
这是我实测出来的「Token消耗黄金阈值」。
1-3轮迭代:历史对话增量极小,上下文堆叠可以忽略不计,修改连贯性拉满,几乎没有无效Token消耗。
一旦超过3轮:冗余日志、完整代码重写、反复调试记录开始堆积,Token消耗会肉眼可见暴涨,而且大部分都是无效重复消耗。
固定规则:一组关联修改,最多迭代3轮。
3. 3轮之后不直接clear,优先用compact压缩
这里纠正一个最大误区:很多人觉得想省Token就要频繁 /clear。
频繁 /clear 会有致命问题:彻底清空所有修改记录、调试上下文、代码变更链路。
清空后继续迭代,需要重新对齐历史改动,反而要多轮沟通、多耗Token,还容易出现改崩、漏改、逻辑断层的问题。
最优折中方案:
3轮迭代后,先执行 /compact 压缩,不直接clear
/compact 会自动做两件事:
-
精简冗长的对话日志、重复的代码输出、无效的调试记录
-
保留核心修改逻辑、业务规则、本次迭代的关键上下文
既砍掉了90%的冗余Token消耗,又完全保留开发连贯性,不用重复复述需求,完美解决「清空丢上下文、不清空耗Token」的矛盾。
4. 彻底切换业务模块,再执行 /clear
/compact 不是万能的,累积多轮后,基础上下文体量还是会缓慢上涨。
设定硬性切换规则:
同一业务模块迭代,只用compact压缩;完全切换新功能、新模块、新Bug修复时,直接 /clear 重置会话。
比如:刚改完文章接口权限逻辑,接下来要重构前端组件、优化数据库查询,场景完全无关,直接清空。
此时清空没有任何上下文损失,还能彻底切断历史堆叠,从源头压低Token消耗。
5. 善用 /btw,零上下文消耗做临时修改
大部分超额Token消耗,都是AI自动全局检索、全量重写文件导致的。
我现在每轮提问都会带上固定约束指令,直接锁死冗余行为:
仅操作本次指定文件,不全局检索项目其他文件;仅输出diff片段,不返回完整文件;不生成冗余测试代码、不做全局分析、精简文字解释。
这条指令能直接规避两大耗Token元凶:
-
AI 自动全局搜索引用、批量读取无关文件,导致上下文膨胀
-
AI 输出完整源码文件,而非精简Diff,大幅增加输出Token消耗
这里再补一个我最近在用的小技巧:/btw 指令。
平时一些简单的临时修改,不用正经开一轮对话。直接用 /btw 把xxx配置改成1 这类指令,就能快速完成改动。
它最大的优势是:执行操作但不堆叠会话上下文,不会把这次操作记录、日志、代码变更塞进对话历史里,相当于「无痕改代码」,彻底避免无关小改动拖垮整体Token额度,极简又省Token。
我现在在用的一套懒人工作流(仅适配Token Plan套餐)
提前说清楚:这套玩法 只针对Token Plan这种固定窗口、固定周总量的 Token Plan 套餐。
如果你是 DeepSeek、Claude 官方按量付费 API,完全不用这么折腾,官方缓存打折很香,没必要刻意清上下文、控轮次,反而得不偿失。
但只要是「不区分缓存、全额扣额度」的套餐,直接照搬我这套日常流程,简单好用不费脑:
-
先铺好 Claude.md:把项目规矩、架构、写法一次性写死,不靠对话记忆,清空会话也不丢项目上下文
-
小改控制3轮内:简单Bug、小功能迭代,尽量3轮内搞定,不堆冗余对话
-
多轮就压缩不重置:3轮没改完就用 /compact 瘦身,保留核心逻辑,不白忙活、不丢进度
-
换模块就清空:彻底换新需求、改不同业务模块,直接 /clear,杜绝无效上下文堆叠
-
小修改用 /btw:配置改动、参数微调这类小事,用 /btw 无痕操作,不涨上下文
-
全程锁死AI行为:固定指令限制全局检索、完整文件重写,从源头杜绝Token乱耗
简单收尾总结一下
最后简单总结一下核心重点。
这套优化方案只针对 Token Plan 固定额度套餐生效。像 DeepSeek 这类按量计费模型,缓存自带超低折扣,完全没必要刻意清理上下文、限制对话轮次,正常使用即可。
但 Token Plan 的机制很特殊,哪怕缓存命中率拉满,所有重复代码、历史对话也会全额占用额度,这也是大家小改动却爆耗 Token 的根本原因。
我这套日常玩法主打简单省心、不用死抠细节:依托 Claude.md 固化项目上下文,避免清空会话丢失规则;常规迭代控制在3轮内减少堆叠;持续迭代用 compact 压缩瘦身,切换新业务就 clear 重置;零碎配置微调直接用 btw 无痕操作。
这套平衡思路下来,既能稳住开发效率、不丢迭代进度,又能大幅砍掉无效 Token 消耗,彻底解决随便改改就用光周额度的问题,非常适合长期用 AI 做日常开发迭代的人。
