功能指南

提示缓存

缓存是自动的,不需要在请求里加任何字段,也不支持 Anthropic 的 cache_control 标记(传了会被忽略)。

怎么计费

每个对话模型有三档单价:输入、缓存命中的输入、输出(见对话模型)。上游会缓存最近请求里相同的前缀,下一次请求开头和它一样的部分按「缓存命中」单价计。有的模型缓存价只有普通输入的几十分之一。

什么会命中、什么会失效

命中要求从第一条消息起逐字相同。所以:

  • 同一个会话连续往下聊、Agent 连续干活:每轮只是在末尾追加,前面整段都能命中。
  • 新开会话、换模型:从零开始,不命中。
  • 改动早期的消息(编辑历史、改系统提示、客户端把旧消息压缩成摘要):改动点之后全部不命中。
  • 隔太久再继续:上游缓存有保留时间,过期后不命中。

满足条件也不保证每次命中:是否命中由上游决定,以响应里的缓存命中数为准。

长时间写代码,选缓存单价低的模型,并尽量在一个会话里干完一件事。

怎么确认省了钱

响应的 usage 会单列命中缓存的 token 数(上游报了才有):

  • OpenAI 协议:usage.prompt_tokens_details.cached_tokens,是 prompt_tokens 里命中缓存的部分。
  • Anthropic 协议:usage.cache_read_input_tokens 是命中的部分,input_tokens 只算没命中的部分,两者相加才是总输入。Claude Code 显示的「缓存读取」就是它。
"usage": {"prompt_tokens": 12000, "completion_tokens": 300, "total_tokens": 12300,
  "prompt_tokens_details": {"cached_tokens": 11500}}

确认实际花费请看余额变化:

curl -s https://sichang.xyz/api/v1/me -H "Authorization: Bearer $SICHANG_API_KEY"