TodayAI

给 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 门槛;动态问题不要放进缓存块。

官方资料

Claude DocsPrompt caching