上下文缓存(Context Cache)
对于重复的 system prompt、长文档上下文或多轮对话的固定前缀,启用上下文缓存可节省高达 90% 的输入费用。
工作原理
1
标记缓存
在 content block 上添加 cache_control 注解
2
首次请求
标记部分被缓存,按 1.25x 输入价计费
3
后续请求
命中缓存,按 0.1x 输入价计费(省 90%)
计费规则
缓存条件
- 最小 Token 数:显式缓存需要标记内容 ≥ 1024 tokens(部分模型 256/512)
- 缓存 TTL:ephemeral 类型缓存有效期约 5 分钟,期间相同前缀的请求自动命中
- 最多标记数:每个请求最多 4 个
cache_control标记点 - 隐式 vs 显式:隐式缓存(不加标记)由系统自动判断,无需配置;显式缓存通过标记精确控制缓存边界
- 互斥:同一请求中显式和隐式缓存互斥,有标记时以显式为准
使用方式:OpenAI 协议
在 /v1/chat/completions 请求中,将 content 改为数组格式,在需要缓存的文本块上添加 cache_control:
使用方式:Anthropic 协议
在 /v1/messages 请求中,同样在 system 或 messages 的 content block 上添加标记:
Python SDK 示例
支持的模型
响应格式
缓存命中信息通过 usage 字段返回,不同协议格式略有不同:
OpenAI 协议响应
usage.prompt_tokens_details: cached_tokens: 1804 cache_creation_input_tokens: 0
Anthropic 协议响应
usage: cache_read_input_tokens: 1804 cache_creation_input_tokens: 0
最佳实践
- 将不变的长内容(system prompt、参考文档、代码上下文)放在 messages 最前面并标记缓存
- 用户消息放最后 — 缓存从 messages 数组开头到标记位置,变化的内容放后面不影响缓存命中
- 适合场景:RAG 文档注入、多轮对话固定 system prompt、Agent 的工具定义、代码仓库上下文
- 不适合场景:每次请求内容完全不同、prompt 长度低于最小阈值
Chat Completions
OpenAI 格式完整参考
Anthropic Messages
Anthropic 协议调用
模型定价
查看完整阶梯价格