AWS 给出 Bedrock 上 OpenAI 模型的提示缓存写法:隐式与显式断点并用,前缀至少 1,024 token
智能体每一轮都要重读全部历史,缓存是省钱的关键。这一条是可以照抄的缓存规则。
// 要点
- Bedrock 支持隐式缓存(由 Bedrock 决定可复用前缀在哪结束)和显式缓存(代码里用 prompt_cache_breakpoint 标记),AWS 建议两者并用:工具和指令用显式,增长的对话历史交给隐式。
- 可复用前缀至少要 1,024 token;在一次测试中,约 4,000 token 的工具加指令前缀首次写入 4,120 token,之后的请求读取同样的 4,120 token。
- 缓存只在文本完全一致时命中:工具列表和指令每次要以同样方式序列化,MCP 服务器提供的工具要保持顺序稳定;日期、用户名、请求 ID 这类变量放在缓存内容之后。
- 设 store=False 只是不在服务端保存响应,不会关闭提示缓存。
开发者视角这些规则不只适用于 Bedrock:把时间戳塞进系统提示开头,是我见过最常见的缓存失效原因。我在博客里写过 RAG 一个月的真实账单,结论是控制上下文长度回报最高;智能体同理,先把工具定义和指令做成固定前缀,再看缓存命中率,最后才考虑换模型。