跳转到主要内容

Claude Code Token 使用审计:上下文、缓存、MCP 与会话成本

8 分钟阅读Claude Code

不要只盯着一个总数判断 Claude Code 为什么消耗快。先确认计费路线,再拆分上下文、缓存写入与读取、MCP 和会话累积,最后用干净会话做对照。

Claude Code Token 审计板,分为上下文、缓存、MCP 和会话成本四条通道

Claude Code 用量掉得快,不等于“套餐偷偷缩水”,也不等于“一定是缓存 bug”。同一个终端里可能同时出现订阅套餐进度、本机会话估算、API Console 用量和云厂商账单。它们的口径不同,先把数字归到正确所有者,后面的优化才有意义。

保留问题会话,先记下 claude --version,再依次运行 /usage/context/mcp。记录模型、effort、认证与计费路线、session ID、上下文占比、input/output、cache creation/read、套餐使用条或 API 估算,以及完整报错。不要在支持材料里放 API key、私人对话、客户代码或完整文件内容。

本文依据 Claude Code 的成本说明上下文窗口说明提示缓存说明MCP 文档,于 2026 年 8 月 4 日核对。界面或字段不一致时,以你安装的版本为准。

先把四种数字分开

/usage 的 Session 区块能显示当前会话的 token 构成和本机计算的美元估算。这个估算按标准标价计算,适合比较会话,不等于最终账单。Pro 或 Max 的使用量包含在订阅中,本机出现美元数字也不能证明发生了额外扣费。

观察面能证明什么不能证明什么
/usage 套餐进度本机看到的订阅窗口和近期归因所有设备的完整活动或 API 发票
/usage Session当前会话 token 组合与本机估算实际结算金额
/context当前窗口被指令、文件、对话和工具占了多少谁为这些 token 付费
statusline连续显示上下文和会话估算权威账单
Claude ConsoleAPI workspace 的用量与费用订阅套餐剩余额度
云厂商账单Bedrock、Google Cloud 或 Foundry 路线的费用Claude 订阅消耗

如果路线不清楚,暂停计算成本。检查当前登录、环境变量、base URL 和供应商。需要完整分流时,阅读 Claude Code API Key 与订阅计费指南

在现场建立一张审计台账

Claude Code 计量项、证据强度与计费所有者审计台账

不用导出整个聊天,只需要保存能比较的字段:

  • 时间与时区,用来对齐 Console 或云账单;
  • Claude Code 版本、模型和 effort;
  • 认证路线、工作目录与 session ID;
  • /context 的总占比和主要分类;
  • input、output、cache creation、cache read;
  • /usage 中技能、subagent、插件和 MCP 的近期归因;
  • 准确的限制提示、429529 或上下文警告;
  • 最近是否切模型、改 effort、连接 MCP、执行 /compact、升级或恢复旧会话。

当前 /usage 可以把近期套餐用量归因到技能、subagent、插件和单个 MCP server,并在长上下文或缓存未命中占比较明显时提示。但这些数据来自本机历史,适合诊断,不应被包装成所有设备的完整账单。

判断是上下文变重,还是缓存反复重建

上下文和缓存不是同一件事。Claude Code 每轮都要带上当前会话所需的指令、文件、对话和工具结果。即使缓存完全正常,一个跨越多个任务的长会话也会逐轮携带更多内容。

先看 /context。启动时可能已经加载 CLAUDE.md、memory、MCP tool 名称和 skill 描述;随后文件读取、工具返回和对话继续增长。若最大项来自旧任务,最有效的动作通常是另开一个明确范围的新会话,而不是继续压缩同一条历史。

再看缓存字段:

  • cache_read_input_tokens 高,说明已有前缀在被复用;
  • cache_creation_input_tokens 高,说明前缀正在写入或重建;
  • 普通 input 是未走低价读取路径的输入;
  • output 是模型生成的内容,缓存不会让它免费。

切换模型或 effort、改变加载到前缀里的工具、执行 /compact、升级、换路线或超过缓存 TTL 后,出现一次重建可能正常。真正值得调查的是:同样路线、模型、工具和短时间间隔下,相似请求连续高 creation、低 read。缓存 TTL 与失效细节见 Claude Code 缓存未命中成本指南

MCP 要分别查工具定义和返回数据

不要用“装了几个 MCP”直接估成本。支持 Tool Search 的当前 Claude Code 会按需发现工具,而不是把全部 schema 预先塞入上下文;但自定义网关、部分云路线、模型、设置或 alwaysLoad 可能改变这一行为。

审计时分两层:

  1. /mcp/context 看哪些 server 真正启用、工具是延迟加载还是预加载。
  2. 看工具调用返回了多少内容。很小的工具定义也可能带回整张表、整段日志或大量搜索结果,并留在会话历史里。

Claude Code 会在单次 MCP 输出超过 10,000 token 时警告,默认最大输出为 25,000 token。把上限调大只会允许更多内容进入上下文,不会让它更便宜。优先使用筛选、分页、摘要或文件句柄。需要系统清理时,转到 Claude Code MCP 上下文过载指南

用一个干净会话做对照

Claude Code 问题会话与干净对照会话的用量比较

选择一个小而可完成、又能代表原任务的动作。不要用新的模型或新的路线,否则对照失效。

  1. 保持版本、项目、认证路线、模型和 effort 相同。
  2. 新开会话,只保留任务真正需要的 MCP。
  3. 开始前保存 /usage/context
  4. 完成一个边界清楚的动作。
  5. 再保存同样字段,比较上下文增长、cache creation/read、output、MCP 归因和 API 时间。

如果干净会话明显更轻,旧会话的问题多半是历史累积、过大的工具结果、无关任务或多个 agent 上下文。此时应在任务边界使用 /clear,在自然节点用 /compact,缩小工具查询,并为常规工作选择合适的模型和 effort。

如果干净会话仍然复现异常,就停止无意义重复,把台账整理成可核对的支持材料:同一版本、路线、模型、effort 和小任务;新会话;无 MCP 变化;带时间戳和 token 分类;复现一次即可。

按证据选择最小修复

证据模式第一动作不要先做
无关任务让上下文持续增长新开聚焦会话,在任务边界 clear直接升级套餐
cache creation 连续偏高固定模型、effort、工具和路线,再验证下一轮每轮都 compact
某个 MCP 占比突出缩小查询和返回,当前任务暂时停用永久关闭所有 MCP
output 占主要部分明确输出格式,合适时用更便宜模型把责任归给缓存
并行 agent 占主要部分减少并发并缩小 spawn prompt把子上下文当作免费
准确错误是 529看服务状态并有限重试当作个人额度耗尽
API/供应商返回 429按重试时间和限额处理当作 Pro/Max 套餐用完
干净对照仍异常带台账升级支持购买更多额度掩盖问题

一次审计不需要建立完美的通用 token 模型。只要每个大幅变化都能归到上下文携带、缓存写入或读取、MCP 定义或结果、模型输出、并行 agent、订阅窗口或计费路线,就足以做出下一步决定。

#Claude Code#Token 使用量#上下文窗口#Prompt Caching#MCP
分享文章: