
“不要只优化 Prompt,更要优化 Context。
Claude Code 很强大,这在前面的实践文章中我们已经验证过了,但与此同时,也有不少朋友说Token消耗过多,成本过高。
面对这个问题,很多人第一反应是:是不是Prompt写得太啰嗦了?
其实,很多时候真正“烧 Token”的,并不是输入的那句话,而是Claude背后带着的整段上下文。
它们可能包括:
CLAUDE.md 这样的记忆文件也就是说,当Token消耗越来越高时,问题往往不是Prompt不够简洁,而是上下文已经变得臃肿。
很多所谓的建议,比如“尽量缩短对话”,当然没错,但太泛了,真正落地时帮助有限。
真正有效的做法,是搞清楚Claude Code的上下文是怎么构建的、哪些内容会被重复携带,以及工作流里有哪些“隐性成本”正在不断累积。
这篇文章我们来讲7个真正实用的方法,在不牺牲效率的前提下,尽可能降低Claude Code的Token开销。
这一点最简单、但也最容易被忽视:不是所有任务都值得用最贵的模型。
如果使用按API计费,不同的模型成本大概有几倍的差距;如果使用订阅方案,那么更重的模型也会更快消耗额度。
在执行任务时,可以做一个简单的分层:
不同的任务采用不同的模型,像日常任务使用适中的模型即可,复杂任务则切换到能力更强,具备深度分析能力的模型,而且单纯的普通操作、机械性任务交给一般的低参数模型即可。
以国外模型为例:

国外模型选择
国内模型参考:

国内模型选择参考
另外,不少人忽略了 /effort。

对于一些本来就很直接的问题,适当降低 effort level,可以减少模型的“思考预算”,从而直接降低输出 Token。

effort level设置
一句话总结:模型能力要和任务复杂度匹配,不要让高性能模型去做低价值工作。
CLAUDE.md 当“规则索引”,而不是“百科全书”如果你经常在每次对话里重复输入项目约束、开发规范、测试方式,那其实是在持续浪费 Token。这正是 CLAUDE.md 的意义所在。
在《使用Claude Code最需要做的一件事:与AI签订一份契约(CLAUDE.md)》一文中我们也有专门讲到。
CLAUDE.md会在Claude读取代码之前就被加载,而且会在整个会话过程中一直驻留在上下文里。
重点在于:它不是按需加载的,也不会轻易被“挤出去”。
这意味着什么?如果你的 CLAUDE.md 有 5000 Token,那么每一轮对话几乎都要为这 5000 Token 付费。
不管你本次会话只有 2 轮,还是 200 轮,它都会持续产生成本。
CLAUDE.md 的内容有哪些?建议只放那些长期稳定、反复要用到的规则,比如:
很多团队会把下面这些东西也一股脑塞进去:
这些都不适合。
一个更好的原则是:
让CLAUDE.md像“速查手册”,而不是“信息垃圾场”。
写得越精炼,长期收益越高。
这是一个非常值得重视的技巧,因为它能从根本上改变上下文膨胀的方式。Claude Code 的 Subagent,本质上是一个独立上下文窗口中的 Claude 实例。
当你让 Subagent 去执行任务时,它产生的很多“过程性噪音”——比如:
当使用Subagent去执行任务时,可以避免上述噪声直接污染主会话。
最终回到主线程的,通常只是一个总结结果。这对于保持主上下文干净非常有帮助。
但这里也有一个常见误区:
Subagent 并不天然更省 Token。
如果只是处理很小的任务,比如简单 shell 操作、快速 git 命令,Subagent 往往反而更浪费。
因为它本身也有启动成本,包括:
所以,正确的使用原则不是:“所有事情都交给 Subagent。”
而应该是:
“只有当它节省下来的主上下文污染,足以覆盖启动成本时,再使用它。”
适合交给 Subagent 的任务,通常有以下特征:
很多 Token 浪费,根本不是因为 Claude 回答太长,而是因为你给它的任务太模糊,导致它要先花很多 Token 去“找问题”。
比如这类说法:
“你帮我看看 auth 相关代码哪里有问题。”
这听起来很自然,但在 Claude 看来,这基本等于:
如果问题实际上只在 1~2 个文件里,这种探索就是纯浪费。更好的写法应该像这样:
“请对比 src/auth/session.ts 第 30~90 行,和 src/api/login.ts 第 10~60 行,说明两者之间的逻辑不一致在哪里。”
这类表达有几个好处:
在执行一些可能成本较高的操作前,可以先切到 Plan Mode(Shift+Tab)。这个模式下,Claude 会先给出一个分步骤计划,而不会直接修改代码。
你可以先审核这个计划,把明显没必要的步骤删掉,再切回正常模式执行。
为什么这很重要?
因为实际使用中,最浪费 Token 的环节之一就是:试错式执行。
比如 Claude 先尝试一种方案,失败了;再试第二种;又报错;然后继续修正……每一次尝试、每一次报错、每一次迭代,都是在消耗 Token。
而提前规划,往往能大幅减少这种无效来回。
/compact,不要等“上下文快炸了”才想起来很多人知道 Claude Code 有 /compact,但真正用得好的人并不多。原因通常不在于“会不会用”,而在于用得太晚。

campact命令
一个典型场景是:
这时候其实已经积累了很多“历史噪音”。而这些内容,对你接下来的任务未必还有价值。这正是最适合执行 /compact 的时机。
因为如果你拖到后面,等到Claude开始遗忘前文,出现上下文告警,回答质量变差时,才去压缩,那么此时的会话已经很“脏”了。
这时生成的摘要,往往也不够清晰、不够高质量。
相反,如果在会话还比较健康的时候就主动 compact:
所以,/compact 的最佳用法不是“亡羊补牢”,而是“定期保养”。
一个很实用的心法是:
当关键结论已经出来,而中间过程开始变多时,就该考虑compact了。
/context 找到真正的“耗 Token 元凶”很多开发者在发现 Token 消耗过快时,第一反应是改Prompt、缩短提问、减少对话轮次。这些当然可能有帮助,但很多时候你根本没打到重点。
因为真正昂贵的内容,未必是你当前看到的 Prompt。它可能是:
这时候,/context 就非常关键。它相当于你的“上下文诊断面板”。

context命令
在大改工作流之前,先看一眼到底是谁在占用上下文,通常会更有价值。

Context Usage
很多优化收益最大的场景,并不是你 Prompt 写得更精炼了,而是你终于发现:
有一个“沉默的大块头”,一直在每一轮对话里默默消耗 Token。
所以,不要盲目优化。正确顺序应该是:
/context先诊断,再优化。这条原则在 Claude Code 里非常重要。
Claude Code 可以接很多外部工具、数据源和辅助能力,这一点非常强大。但强大的另一面,是它也更容易把你的上下文结构搞复杂。
当工具接得越来越多时,模型可能需要额外处理:
问题在于:很多任务根本不需要这么重的配置。
如果你把所有能接的技能、插件、辅助器全部挂上去,最后很可能出现一个尴尬局面:
任务很小,但系统开销很大。
因此,一个更稳妥的策略是:
对 Claude Code 来说,精简的工具链通常比“全家桶式”集成更高效。
真正该优化的,不只是Prompt,而是 Context Architecture。
如果只用一句话概括这篇文章,那就是:
降低 Claude Code Token 成本的核心,不是对每条 Prompt 精打细算,而是设计好你的上下文架构。
真正带来大收益的,通常不是“把一句话少写 20 个字”,而是这些更本质的动作:
说到底,Claude Code 的成本问题,本质上是一个上下文管理问题。很多开发者只盯着 Prompt 在优化,但真正成熟的用法,应该开始转向另一层思考:不要只写 Prompt,要设计 Context。
以下是Claude Code系列其的他相关文章:
第1篇:《国内环境下的Claude Code安装与使用教程》
第2篇:《使用Claude Code最需要做的一件事:与AI签订一份契约(CLAUDE.md)》
第3篇:《Claude Code实践:从零开始,一行代码不写生成一个项目》
第4篇:《Claude Code的Skills实践及利器推荐:工欲善其事,必先利其器》
第5篇:《6条Claude Code实践中的经验与思考》
第6篇:《Claude Code的一次真实项目实践》
第7篇:《Claude Code在不同开发环节的应用案例分享》
全文完,感谢阅读,如果喜欢请三连。