### Claude Code 在你输入前就消耗 5 倍的 Token。它们去了哪里?
终于有人在这个工具框架与 API 之间设置了一个日志代理,并测量了实际传输的数据量。Systima 做了这件事,结果相当显著。Claude Code 在开启一个会话时会消耗大约 33,000 Token,用于系统提示词、工具模式(tool schemas)以及注入的脚手架(scaffolding)。在同一台机器上运行同一个模型的 OpenCode,启动时大约消耗 7,000 Token。你还没输入任何内容。那 33,000 个 Token 里到底装了什么?分解结果很有启发性:27 个工具模式——Claude Code 内置了完整的编排套件:后台代理(background agents)、CronCreate、Monitor、Task 系列、工作树管理(worktree management)、推送通知(push notifications)。OpenCode 内置了 10 个核心编码工具。在你的第一条消息发出之前,有三个注入的提醒块——代理类型目录(agent type catalogue)、可用技能(available skills)、用户上下文(user context)。即使去掉所有工具,系统提示词的大小也是 OpenCode 的三倍:行为规范(behavioural doctrine)、语气规则(tone rules)、安全指导(safety guidance)、环境描述(environment description)。OpenCode 的第一条消息几乎是极简的:一个系统块、十个工具、你的提示词。
没人讨论的缓存问题
你可能会认为提示词缓存(prompt caching)能抵消这一切。一次写入,读取便宜。如果你的前缀保持稳定,这确实成立——而这正是真正的差距所在。“OpenCode 在每个请求和每次运行中都发出字节完全相同的前缀……Claude Code 在每个会话中发出三个不同的请求类别,每个类别都有自己的缓存条目。其系统字节在同一工作区的不同会话之间也有所不同。”在相同的文件摘要任务上:Claude Code 在 5 次请求中写入了 53,839 个缓存 Token,其中包括一次在会话中途对整个前缀的完全重写。OpenCode 写入了 1,003 个。他们在两个模型系列上测试了。两种情况下的模式一致。差距范围从 5.9 倍到 54 倍,取决于缓存温度。缓存写入的计费价格更高——5 分钟级别的费用是 1.25 倍——这就解释了为什么即使在简单任务上,使用量仪表盘也会攀升。