功能指南
提示缓存
缓存是自动的,不需要在请求里加任何字段,也不支持 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"