配了三个月 Claude Code,今天才发现我的工作流一直在白扔 token——Anthropic 官方发了一份 11 条指南,核心就一句话

上下文越长,后面每一轮越贵。

这不是哪个技巧的问题,这是 Claude Code 的底层逻辑:每次对话都会把所有历史带进来,越到后面每次迭代的成本就越高。聊天记录、文件内容、命令输出,只要不清理就会一直占着 token。

Anthropic 刚刚发了一份官方指南,11 条最实用的省 token 技巧,全是围绕这个核心来的。

换任务就 /clear,不要犹豫。

一个任务做完,直接 /clear 彻底清空上下文。同一个任务但前面没用的内容太多了,用 /compact 压缩。长会话越往后越贵,因为每轮都要重新带全部历史。新任务就用新会话,干净利落。

模型和 effort 开局就定好。

中途切换模型或 effort 级别会打掉 prompt cache,下一轮需要重新处理整段上下文。Fast mode 也是一样,最好在会话一开始就确定好,别中途改。

离开前先 /compact,别等缓存过期。

订阅用户的缓存约 1 小时过期,API Key 默认约 5 分钟。缓存过期后再回来,下一轮通常要重新处理整个上下文。趁缓存还在时压缩,成本更低。

最近几轮跑偏了,用 /rewind 而不是 /compact。

/rewind 只删掉最近几轮,之前的缓存还能继续用。/compact 会重写整个对话,成本更高。两者的使用场景完全不同。

文件直接用 @ 文件名,不要粘贴内容。

Claude Code 会在第一轮直接读取文件,可以省掉一次 Read 或搜索。一个文件只需要 @ 一次,重复 @ 反而可能把同一文件再塞一份进上下文,白白浪费 token。

Prompt 越具体越省钱。

与其说「测试挂了」,不如直接告诉 Claude 哪个测试、哪个文件。否则它可能先 grep、搜索、读一堆文件,这些结果之后每轮都会继续占上下文。

测试和日志输出尽量少留。

Build、测试、git log 的输出都会留在上下文里。可以加 quiet 参数、只输出错误,或者用 tail 截断。Claude Code 对超过 3 万字符的输出会自动写入文件,只把摘要和路径留在会话里。

用 /context 查启动负担。

新会话一开始就能看到 CLAUDE.md、MCP 和工具定义占了多少上下文。CLAUDE.md 只放通用规则,专项流程放进按需加载的 Skill,不用的 MCP 直接用 /mcp 关掉。

简单任务用更小的模型和 effort。

大模型输入输出都更贵,thinking 也属于输出 token。纯执行类任务没必要一直用最高档。Haiku 的成本大约是 Sonnet 的四分之一,简单任务用它足够了。

大日志交给 subagent,小任务别滥用。

Subagent 有独立上下文,只把最终结果带回主会话。但它也要重新读文件、自己跑多轮,小任务用它反而可能更贵。搜索和读日志这类任务可以指定 Haiku 或 Sonnet,降低成本。

/loop 单独开会话,不要在主会话里跑。

每次循环都是完整的一轮,会重复携带当前会话的全部上下文。如果间隔超过缓存时间,还可能叠加一次缓存失效。官方建议另开终端,用一个干净会话专门跑循环。


Anthropic 的建议归根结底就一句:少塞无用内容,任务结束及时清,会话别拖太长。

但真正有意思的不是这些技巧本身,是 Anthropic 为什么要主动发这样一份文档。

当工具提供方开始系统性教用户省钱,说明 token 成本已经成了真实痛点。这不是功能问题,是经济学问题。上下文越长越贵这个机制,让每个开发者的习惯直接变成了账单数字。

好习惯省钱,坏习惯烧钱。这大概是 AI 编程工具时代最诚实的工作流哲学了。

评论区

0 条评论

登录后可评论。

Prompt 工程 14 阅读