首页/文章/离开一会儿回来,Claude Code 第一句特别慢、特别贵?订阅和 API key 的缓存时长不一样

离开一会儿回来,Claude Code 第一句特别慢、特别贵?订阅和 API key 的缓存时长不一样

· Zumac.Ai

帖子说了什么

@lenny_enderle 提到一个容易忽略的差别:Claude Code 在订阅(套餐额度内)时,提示缓存保留 1 小时;用 API key 时默认只有 5 分钟,想要 1 小时得为缓存写入付更高的费率。他的结论是:长时间离开后发的第一条消息,是 Agent 会话最贵的地方。

官方怎么说

对照官方 How Claude Code uses prompt caching:

  • 缓存在一段时间不活动后过期;每次命中都会重置计时。过期后的第一条请求要把整段历史重新处理一遍,所以「回来第一句」会明显慢、也更费用量。
  • API 提供两种时长:5 分钟,和 1 小时(缓存写入费率更高)。
  • 没手动指定时,Claude Code 只在 Claude 订阅、且在套餐用量内时,为主对话请求 1 小时;子代理、压缩等其余请求默认 5 分钟(少数由服务端控制的辅助请求除外)。
  • 用 API key、云厂商,或订阅超出套餐、开始消耗 usage credits 时,主对话默认降到 5 分钟。

怎么查、怎么设

查当前用的是哪种:官方给的方法是运行

claude -p "hello" --output-format json

看结果里 usage.cache_creation:1 小时写入记在 ephemeral_1h_input_tokens,5 分钟写入记在 ephemeral_5m_input_tokens。

手动设置(需要 Claude Code 2.1.242 或更新):

  • 主对话:设置项 promptCacheTtl,或环境变量 CLAUDE_CODE_PROMPT_CACHE_TTL,取值 5m 或 1h;
  • 其余请求:subagentPromptCacheTtl 或 CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL。

用 API key、又经常开着会话离开一阵再回来的,官方建议把 promptCacheTtl 设为 1h。反过来,如果你都是连续干活、很少停超过 5 分钟,1 小时的更高写入费率反而用不上。

走自建网关(ANTHROPIC_BASE_URL)的要注意:1 小时缓存的部分信息在 anthropic-beta 请求头里,网关要原样转发,否则拿不到。

小结

  • 订阅额度内默认 1 小时,API key / 超额默认 5 分钟。
  • 用 claude -p ... --output-format json 看实际写入了哪种缓存。
  • 按自己的工作节奏决定要不要设 promptCacheTtl,别为了省钱反而多花。

帖子里还和其他工具做了比较,那部分我们没有核实,这里不展开。

如果你想让 Claude Code 跑在一台常开、整机独享的新加坡 Mac mini 上,会话不断、回来接着干,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服