总结篇:12个省token技巧

3 阅读4分钟

用 Claude Code 写了一天代码,账单超出预期两倍——大部分钱花在你看不见的地方。12 个操作可以直接砍掉一半以上,不需要换模型,不需要少用。

每轮都在跑表的——System Prompt 体积

System Prompt 每轮都带着,是固定开销里最大的一块。

一、Skill 用英文写

英文比中文少 30~50% token,中文 100 行 ≈ 800 tokens,英文同等内容 ≈ 500 tokens。Skill 触发时加载进当前对话,文件越长消耗越多,用英文写可以减少每次触发的消耗。

二、精简 CLAUDE.md

CLAUDE.md 每轮都加载,只写 Claude 不知道但需要知道的,不写显而易见的规则。

不该写(Claude 本来就知道):

# 写代码要规范

该写(Claude 无法自己推断的):

## My Role
Senior backend engineer, Java/Spring Boot stack.
Prefer explicit error handling, avoid magic/auto-config.

三、用 Skill+CLI 替代 MCP

MCP server 的全部工具 schema 每轮都带着,即使没用到。简单操作用 Skill + Bash 替代,触发时仅加载该 Skill 内容,通常 200~500 token,比 MCP 少 10 倍以上。用不到的 MCP server 在设置里临时禁用。

越聊越长越贵的——历史对话积累

四、用 /clear 和 /compact 管理对话长度

切换新任务:  用 /clear 清空历史,不发请求,输入 token 从最小值重新开始。上一个任务的历史在新任务里没有价值,却每轮都要带着。

子任务完成后,或 context 用了 50~70% 时:  用 /compact 生成摘要替换历史。本身消耗 token,但换来后续每轮少带大量历史,总体划算。

/compact 是有损压缩。使用前先让 Claude 总结要点,不要在任务中途使用,会丢失关键中间状态。

本来能省 90% 却没省到的——缓存失效

缓存命中后费用降至 1/10,关键是别让它失效。

五、保持 Skill 和 CLAUDE.md 内容稳定

缓存按前缀匹配,内容变了该位置之后全部失效。频繁改动等于每轮重新按全价计。

六、需要反复参考的长文件,在对话开始时一次性读入

先帮我读 src/order/OrderService.java,接下来我们会一直修改它

后续每轮命中缓存只收 1/10 费用。每次用到时才读,缓存永远不会命中。

能少发就少发——输入输出量控制

七、精准描述需求

一次说清楚比三次来回省 token。用结构化需求描述:做什么、不做什么、验收标准。

八、减少解释输出

直接改代码,不需要解释。

输出 token 单价是输入的 5 倍(以常用模型为例),减少废话是最直接的省钱方式。

九、不让 Claude 重复确认

直接执行,遇到真正的问题再问我。

十、限制文件读取范围和片段

指定范围,不让 Claude 自主探索——中型项目累计可达 100K+ 输入 token:

# 贵
"帮我分析这个项目"

# 省
"只看 src/services/ 下,分析订单模块"

指定行号,不读整个文件——500 行文件 ≈ 每轮多 2000 tokens:

只看 UserService.java 的 processOrder 方法(约 120~180 行)

十一、压缩图片再输入

512×512 以下 ≈ 85 tokens,1080p 截图 ≈ 2500~3000 tokens。压缩到 720p 以下,视觉损失极小。

十二、切换轻量模型

/model claude-haiku-4-5   # 最省,适合简单改动
/model claude-sonnet-4-6  # 平衡,适合大部分任务

高频操作场景

高频场景速查,完整操作见上文各章节。

场景Token 消耗建议
读整个大文件指定行号或函数名
长对话继续逐渐增高定期 /compact
让 Claude 自主探索项目很高直接给文件路径
来回修正模糊需求很高一次说清楚,写明做什么/不做什么
输入高分辨率截图中高压缩到 720p 以下再输入
配了很多 MCP固定高开销用不到的临时禁用
切换新任务先 /clear 清空历史

本人公众号「向好慢慢行」,欢迎大家关注。