Anthropic 官方指南:教你如何在和Claude Code 对话的时候节省 Token
一个小修复为什么会拖成长会话?这份指南教你看懂额度花在哪里,并在 clear、compact、rewind 与 Subagent 之间做出正确选择。
- 文件、日志和工具结果进入会话后会跟随后续请求;无关内容进入越早、存活轮数越多,额度负担和判断干扰越大。
- 处理时先看跨任务长会话,再看无关上下文,然后检查模型与 Effort 是否过高、提示缓存是否失效。
只改了几行代码,为什么额度已经掉了一截
你让 Claude Code 修一个失败测试。最后的改动可能只有三行;在找到这三行之前,它已经搜索了仓库、打开一批候选文件、跑出几百行测试日志,又在错误方向上试了几轮。
这些过程不会在 Claude 找到答案后自动消失。你每让它继续一次,模型都要再次处理此前积累的系统提示、项目规则、文件、命令结果和对话历史。
这套成本逻辑和传统开发工具不同。编辑器往往免费或按月、按年付费,多修一个 Bug 通常不会增加软件账单;编程 Agent 每完成一个任务都要运行模型推理。无论最终改了几行,它读入和生成的 Token 都会占用 GPU、TPU 等计算资源,同一个任务也会因为使用方式不同而产生不同消耗。
这会造成三个直接痛点:
- 额度掉得很快,却看不出花在了哪里。订阅用户通常只看到使用额度变化,很难把消耗对应到某个文件、某段日志或某次搜索。
- 会话越长,旧信息越难摆脱。缓存可以让重复读取更便宜,旧内容仍然占着上下文,也可能把 Claude 的注意力拉回已经无关的方向。
- 命令都认识,使用时机却容易选错。新任务该用
/clear,同一任务换阶段才考虑/compact,末尾几轮走偏更适合/rewind;Subagent 能隔离噪声,也会产生一套新的成本。
Anthropic 发布这份指南,就是为了回答这些会话管理问题。读完以后,你应该能够判断:当前消耗首先来自长会话、无关上下文、模型与 Effort 过度,还是提示缓存失效;也应该知道什么时候直接给文件、什么时候收短日志、什么时候切断历史,以及什么时候值得把工作交给 Subagent。
原文用同一个失败测试画出了两条路径。直接指出测试文件,Claude 读取测试和实现、修改并验证,五次请求完成;只说“测试挂了”,它需要先搜索仓库、打开候选文件、读取日志,最后走到同一个修复,用了十八次请求。

5 次与 18 次只代表图中的具体场景,不能直接换算成固定成本倍率。它说明了一件更重要的事:代码改动相同,进入会话的过程材料可能完全不同。指南追求的是让 Token 服务于必要的代码、推理和验证,把无关搜索、噪声输出和跨任务残留尽早切断。
五次请求的路径也解释了账单怎样形成。第一轮提交系统提示、CLAUDE.md 和任务;Claude 请求读取测试文件,文件结果追加进会话后再次发送;接着读取实现文件、提交修改、运行测试,最后生成简短总结。每一轮都包含此前的完整会话,但正常追加时,旧的连续前缀可以走缓存读取,只有新工具调用、新文件或新测试结果需要按正常输入价格 Prefill。
所以一次典型调用可能是数万输入 Token,只生成几百个输出 Token。数万输入并不等于全部按正常输入价重算:每轮费用由历史的缓存读取、新增内容的正常输入价和本轮输出价共同组成。理解这一点,才能看懂为什么少一次无意义搜索、中途少切一次模型,可能比压缩最后几十个字更有价值。
接下来先给出六个最常用的动作,再解释它们为什么有效。
先做这六件事
如果暂时不想研究 Token 机制,可以先按下面六条调整使用方式。
- 开局选定模型和 Effort。机械修改用够用的模型,模糊故障和架构判断再提高能力与工作深度。尽量不要在长会话中途频繁切换。
- 把已知范围直接交给 Claude。给出目标文件、失败测试、期望结果和验证命令;界面支持时,第一次就用
@文件名引用。 - 控制命令输出。只跑相关测试,使用 quiet reporter、错误过滤或
tail,别让几百行成功日志留在后续几十轮里。 - 最近几轮走偏时用
/rewind。它从会话末尾裁掉错误分支,前面的缓存前缀仍可能保留。 - 开始新任务前用
/clear。旧任务需要以后找回,可以先/rename,再清空当前上下文。 - 只有过程很吵、主会话只需要结论时才用 Subagent。扫描长日志、完整测试输出和 Git 历史适合隔离;小问题交出去可能更贵。