Claude Code 实测:96.8% token 用于重读聊天历史
基于 32 个真实会话的 token 账单分析,揭示 AI 编程工具的成本构成,直接指导如何优化长对话工作流。
基于 32 个真实会话的 token 账单分析,揭示 AI 编程工具的成本构成,直接指导如何优化长对话工作流。
Claude Code 在 ~/.claude/projects/ 中记录每个会话的日志。每行都是 JSON,message.usage 包含 API 实际返回的令牌计数。
我汇总了 32 个会话。这些不是估计值。
我自己的输入占 0.01%。缩短提示词优化的是账单的万分之一。
机制很简单:模型在每一轮都重新阅读整个对话。所以一旦一个较大的返回值进入上下文,你就需要在随后的每一轮都为它付费。放入一个 10k 字符的返回值,再进行 20 轮对话,你就会为 200k 字符付费。
不是散文。不是你的指令。而是工具输出。
看最后两行。
967 次 Bash 调用的成本小于 3 个截图。一个截图约等于 354 次 Bash 调用。
在同一个浏览器任务中,获取整个页面需要 33,645 个字符,而仅提取你需要的值需要 504 个。相差 67 倍。
永远不要读整个文件。 每次读取 11,132 个字符。先 grep 找到行号,然后读那个区域。在你第一次需要结构时,完整读一次。
不要习惯性地截图。 每个截图 296,827 个字符。如果状态能以文本形式阅读,就以文本形式读。
永远不要获取整个网页。 提取你需要的几个值。33,645 变成 504。
反过来说:不要限制 shell 命令。967 次调用只占 3.7%。
这个样本偏向于网页研究,所以浏览器调用排在第一位。如果你主要是写代码,文件读取会领先。测量你自己的日志。
cache_read 的计费低于新鲜输入,所以令牌份额不等于成本份额。
每周使用限额是否按照这个比例耗尽是未经验证的;该公式尚未公布。
32 个会话,2,478 个工具返回。
~/.claude/projects/
每个项目一个文件夹,内部是 .jsonl。每行都是 JSON:message.usage 用于令牌,tool_result 用于返回。
采用方法,而不是我的数字。你的最大消耗者会不同,那才是值得优化的。
For further actions, you may consider blocking this person and/or reporting abuse