最近 Anthropic 调整了 Claude 的计费策略,不少开发者发现账单涨了不少——原本一天五六美元,现在轻松上十块。
官方数据显示,开发者平均每天花 6 美元,但这是优化过的数据。实际上很多人在 10-12 美元,一个月 200-300 美元。团队使用的话,这笔开支更可观。
好消息是,Claude Code 按 token 计费的机制,也意味着优化空间很大。关键在于搞清楚RMB花在哪里:token 消耗的大头不是你打的那几行字,而是系统自动加载的上下文。知道了这个,就能有的放矢地省RMB。
一、先搞清楚RMB花在哪里
很多人以为花费主要看"我打了多少字",实际上差得远。
一次 Claude Code 交互的 token 消耗大致是这样的:
- 系统提示词(System Prompt)每次自动加载,大约 2-3 万 token,相当于起步价,没法省
- 上下文包括对话历史、读过的文件、MCP 工具描述,随着对话推进越滚越大,这块是主要开销
- 你实际写的提示词通常就几百 token,占比很小
- Claude 的输出单价最高,但总量不算大
- 扩展思考默认开着,按输出价格计费,一次请求就可能吃掉几万 token
实测数据表明 input token 占总消耗的 70-85%,其中超过 90% 是缓存读取。你和 Claude 聊得越久、读的文件越多,后面每条消息就越贵。
用 /cost 随时能查当前会话的消耗:
Total cost: $0.55
Total duration (API): 6m 19.7s
Total duration (wall): 6h 33m 10.2s
前面的博文也说过,可以把上下文和花费一起展示在底层的状态栏,可以随时监控。 搞清楚了结构,接下来逐个击破。
二、上下文管理:投入产出比最高的一招
上下文是 token 的无底洞。管好它,最大的一块开支就管住了。
1. 用 /clear 切割会话
很多人习惯在一个会话里干完所有事,从修 bug 到加功能再到写测试。到后面上下文已经臃肿不堪,每发一条消息都在为前面积累的"历史包袱"付RMB。
把 /clear 当 git commit 用。做完一个功能点,清一次。要切换到不相关的事,清一次。
怕清掉找不回来?先 /rename 起个名字,之后 /resume 随时接回来。
2. 用 /compact 压缩历史
不想全清,但上下文又太大了,可以用 /compact 把对话历史压缩成摘要。你还能指定压缩时保留什么:
/compact 保留代码改动和测试结果
CLAUDE.md 里也能写压缩规则:
# Compact instructions
When you are using compact, please focus on test output and code changes
3. 按模块拆会话
"处理用户认证"和"写数据导出"分开做,每个会话只加载必要的上下文。这比在一个大会话里改遍全项目便宜得多。
三、模型选择:不是所有任务都值得上 Opus
甚至不需要用AI:
对于一些非常简单的操作型事务,比如 git commit、git status 这类基础命令,其实不需要让 Claude 介入。直接在提示框输入 ! 加命令(如 !git commit -m "fix bug")就能执行,完全不消耗 token。
三个模型,价差不小:
| 模型 | 输入价格(每百万 token) | 输出价格(每百万 token) | 适合场景 |
|---|---|---|---|
| Haiku 4.5 | $1 | $5 | 简单补全、格式化、快速问答 |
| Sonnet 4.6 | $3 | $15 | 日常开发、代码生成、Bug 修复 |
| Opus 4.6 | $5 | $25 | 复杂架构设计、多步推理、疑难调试 |
简单任务选择Sonnet,Opus 什么时候上?复杂的架构决策,跨好几个模块的大重构,那种你自己也想不明白的诡异 bug。
不过这里有个风险:如果用了便宜模型但没得到想要的结果,返工重做反而更费RMB。所以在选模型之前,先评估一下任务的复杂度。拿不准的时候,宁可一开始就用 Sonnet 或 Opus,也别为了省几毛RMB最后花了几块。
四、精简 MCP 和工具配置
MCP 让 Claude Code 调用外部工具,但每个 MCP Server 的工具描述都要占 token。新版默认延迟加载了(只有工具名进上下文),但还有优化余地。
用 /mcp 看看配了哪些服务器,不用的关掉。写后端的时候 chrome-devtools 之类的前端工具可以先禁。gh、gcloud 这些 CLI 工具比对应的 MCP Server 更省 token,因为不需要在上下文里放工具列表描述。
跑一下 /context,看看到底什么在占空间,心里有数。
五、CLAUDE.md 和 Skill:固定成本 vs 按次付费
写好 CLAUDE.md
没有 CLAUDE.md 的项目,Claude 每次都要用大量 cat、find、grep 来摸清项目结构。每次探索都在烧 token。
一份好的 CLAUDE.md 写清楚目录结构、技术栈版本、编码规范、常用构建命令就够了。
但别往死里塞。CLAUDE.md 每个会话启动都加载,塞太多反而增加基础上下文成本。官方建议 200 行以内。
专项指南放 Skill 里
PR 审查流程、数据库迁移步骤、部署手册这些不是每次都用的东西,放 CLAUDE.md 里就是每个会话都在为它付RMB。移到 Skill 里,按需调用,用完就走。
实测数据:同样的重复指令,写在 CLAUDE.md 里每次消耗 150 token,做成 Skill 之后只要 10 token。差了十几倍。
六、配置 .claudeignore 排除噪音文件
跟 .gitignore 一个思路,告诉 Claude Code 哪些文件不用看:
node_modules/
dist/
build/
.next/
__pycache__/
*.lock
*.log
coverage/
.git/
有人实测配完之后,单次对话的 input token 从 15 万降到 6 万。
七、日常习惯也能省RMB
写具体的提示词
"帮我优化这个项目的性能"会让 Claude 大范围扫描代码库。"给 auth.ts 的 login 函数加上输入验证"只需要读一个文件。指令越具体,读的文件越少,token 越省。
更进一步,直接用 @ 把需要的文件提示给 Claude。比如 @src/auth.ts 给 login 函数加验证,这样 Claude 就不用自己去找文件了,直接在指定文件上工作,省下大量搜索和探索的 token。
用 Plan 模式做复杂任务
Shift+Tab 进入 Plan 模式,Claude 先分析代码库、给方案、等你确认,然后才动手。省得写了一大堆发现方向错了,推翻重来 token 翻倍。
跑偏了赶紧打断
发现 Claude 走错方向,马上 Escape 停下来。/rewind 或者双击 Escape 回退到之前的检查点。拖得越久浪费越多。
冗长任务丢给子代理
跑测试、拉文档、处理日志这种输出量大的活儿,交给子代理。冗长的输出留在子代理那边,主会话只收到精简摘要,上下文不会被撑大。
省RMB清单
上下文管理(最重要):
- 完成一个功能点就
/clear,切换不相关任务也清 - 上下文太大用
/compact压缩历史 - 按模块拆分会话,避免一个会话干所有事
模型和命令选择:
- 简单命令(git、ls 等)直接用
!执行,不消耗 token - 日常开发用 Sonnet,复杂架构和疑难 bug 才上 Opus
- 选模型前评估任务复杂度,避免返工更费RMB
工具和配置优化:
- 用
/mcp检查并关掉不用的 MCP Server - 能用 CLI 工具就别用 MCP(如
gh、gcloud) - 配置
.claudeignore排除 node_modules、dist、build 等噪音文件 - 用
/context查看什么在占空间
文档和指令管理:
- CLAUDE.md 控制在 200 行以内,只写核心信息
- 不常用的专项指南(PR 流程、部署手册)做成 Skill 按需调用
日常使用习惯:
- 提示词写具体,用
@直接指定文件,避免大范围扫描 - 复杂任务先进 Plan 模式(
Shift+Tab),确认方案再动手 - 发现跑偏马上
Escape打断,用/rewind回退 - 跑测试、拉文档等输出量大的任务交给子代理
不用全做。先养成 /clear 和 /compact 的习惯,再根据任务切换模型,这两条就够让日均成本降一半。剩下的按需挑几个,够用就行。