- 发布
AI 阅读打卡 Day 1
- 作者

- 名称
- 徐志毅
原文: https://x.com/trq212/status/2024574133011673516
老话常说:“Cache Rules Everything Around Me”, 这句话同样适用Agents。
像Claude Code这种长时间运行的agentic产品, 它能运行是因为提示缓存(prompt caching),这项技术可以允许我们重复使用的之前交互得出的计算结果,从而可以显著降低延迟和消费成本。
什么是提示缓存(prompt caching), 它是如何运行的,以及你如何技术上实现的可以看这篇文章@RLanceMartin's piece on prompt caching and our new auto-caching launch.
在Claude Code中, 我们整个系统的设计都围绕着提示缓存这一核心展开。
一个高效的提示缓存命中率不仅可以减少成本,而且还可以为我们的订阅计划设定更宽松的速率限制标准, 所以我们对提示缓存命中率设置了监控告警,如果太低了,会宣布进入故障事件(SEV)处理流程。
这些便是我们在大规模优化提示缓存过程中所领悟到的(往往不太直观的)经验教训。

制定缓存提示信息
提示缓存通过前缀匹配来工作 - API会缓存从请求开头到每一个cache_control块之间的请求内容。
这意味着你处理事情的顺序至关重要,你要让尽可能多的请求享受同一个前缀。
实现这个最好的方式就是 静态文件首先,动态内容最后。Claude Code就类似如下:
静态的系统提示 & 工具 (全局缓存)
Claude的markdown (缓存在一个项目中) The best way to do this is static content first, dynamic content last. For Claude Code this looks like:
Static system prompt & Tools (globally cached)
Claude.MD (cached within a project)
Session context (cached within a session)
Conversation messages