给 Claude 打开 Prompt Caching 复用长上下文
按 Anthropic Prompt Caching 文档,给长文档或工具说明加上 cache_control。
基于 Claude Docs 整理 · Prompt Caching · 官方资料
Claude 的 Prompt Caching 通过 cache_control 标记可缓存块。适合反复附带同一份长文档、工具定义或系统策略的请求。
这篇完成:构造带 cache_control 的消息,连续请求两次,并观察缓存读写相关 usage。
给内容块加上 cache_control
官方 cache_control 示例结构
python
import anthropic
client = anthropic.Anthropic()
big_doc = open("spec.md", encoding="utf-8").read()
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system=[
{
"type": "text",
"text": "你只根据提供的规范回答。",
"cache_control": {"type": "ephemeral"},
}
],
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": big_doc,
"cache_control": {"type": "ephemeral"},
},
{"type": "text", "text": "总结第 2 章的约束。"},
],
}
],
)
print(msg.usage)最容易踩的坑
缓存未命中
确认标记块内容完全一致,且满足官方最小 token 门槛;动态问题不要放进缓存块。