For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

提示缓存

通过提示缓存降低延迟和成本。

为什么提示缓存很重要

当请求具有相同的提示前缀时,提示缓存可以复用已有的计算结果。这主要带来三项好处:

  • 节省计算资源: 避免重新计算模型已处理过的提示前缀。
  • 输入 Token 费用更低: 复用的 Token 按模型较低的缓存输入费率计费,费用最高可降低 90%。
  • 速度更快: 缩短开始响应前处理输入所需的时间。

支持提示缓存的 OpenAI 模型默认启用此功能。使用提示缓存仪表板监控缓存读取命中率,并使用提示缓存诊断工具诊断缓存未命中的原因,提高缓存复用率。

Agents API 模型调用的提示缓存行为与 Responses API 相同。在会话中复用上下文可以保留共享的提示前缀,但维持会话并不保证缓存命中。有关会话用量字段和子智能体用量核算的信息,请参阅可观测性和用量

提示缓存的定价因模型而异。有关当前的缓存输入和缓存写入费率,请参阅API 定价。缓存写入费用并非额外收取:输入 Token 按未缓存输入、缓存输入或缓存写入费率中的一种计费。

什么是提示缓存?

模型处理输入 Token 时,必须计算称为键值(KV)状态的中间状态。这些状态让模型能够在处理新输入和生成输出 Token 时参考之前的 Token。

提示缓存会为可复用的 前缀保存这些状态。前缀是提示开头保持不变的 Token。当后续请求具有相同前缀,并找到匹配的缓存条目时,模型就可以复用已保存的状态,无须再次处理这些 Token。模型仍需处理所有新输入,才能生成新的响应。

提示缓存存储的是键值(KV)张量,而非 Token 本身。

请 ChatGPT 进一步解释

OpenAI 会缓存模型渲染后的完整上下文,包括 OpenAI 提供的指令、开发者消息工具定义,以及包含文本图像文档和受支持的音频对话历史

复用缓存要求渲染后的整个前缀完全匹配。如果断点之前的内容或相关设置发生变化,包含该变更及其后续内容的前缀就无法匹配现有缓存条目。

缓存的工作原理

缓存断点 标记提示前缀的结束位置,OpenAI 可以将此前缀保存到缓存中,供后续请求复用。首个请求将符合条件的前缀写入缓存,后续请求则从后向前检查符合条件的断点,直到找到匹配项,从而找到当前可用的最长匹配缓存前缀。

提示前缀必须达到模型的 最小可缓存 Token 长度 才能缓存。OpenAI 提供的隐藏系统内容中的 Token 不计入此最低要求。GPT-5.6 及后续模型的最小可缓存提示长度为 1,024 个 Token,早期模型则因请求设置而异。详情请参阅模型对比

达到最小可缓存 Token 长度后,您可以显式选择缓存断点的位置,也可以让 OpenAI 隐式选择位置。可用选项取决于模型。

前缀匹配的工作原理

OpenAI 仅遍历传入请求中的 缓存查找边界 (下文详述),按前缀从长到短的顺序,查找当前机器上已缓存且可用的匹配前缀。

对于 GPT-5.6 及后续模型,传入请求中的缓存查找边界包括:

  • 仅显式模式: 最前面的 2 个和最近的 50 个显式断点。
  • 隐式模式: 最前面的 2 个和最近的 50 个显式断点、隐式断点、此前最多 20 条符合条件的消息的末尾,以及开头连续的一组开发者消息的末尾。因此,隐式模式可以复用截至较早消息末尾的前缀,即使那里没有显式断点。
模型代际
缓存模式

隐式断点设置在最近一条符合条件的用户消息处。

隐藏的系统内容工具开发者上下文历史记录后续消息缓存输入未缓存的输入
最小可缓存长度(因模型而异)

请求 1

12,000 个输入 Token
3,000 个 Token(示意)

请求 2

15,000 个输入 Token
3,000 个 Token(示意)
0
2.5k
5k
7.5k
10k
12.5k
15k
17.5k
20k
输入 Token(包括用于示意的隐藏 Token)
15,000
最后一个匹配的断点
3,000
隐藏的 Token
=
12,000
报告的缓存 Token 数

缓存有效期

缓存条目不会永久保存。只有在条目仍然可用时,后续请求才能复用缓存的前缀;复用前缀会刷新其有效期,且不会再次产生缓存写入费用。有效期和保留设置因模型而异

缓存位置

缓存状态存储在各台机器上,每分钟超过 15 个请求的流量可能导致请求溢出并被路由到其他机器。请求只有到达存有匹配且未过期条目的机器,才能复用缓存的前缀。因此,将请求路由到正确的机器对缓存复用很重要。

缓存不会在组织之间共享,也不能跨越区域处理边界复用。

OpenAI 会自动处理路由。在同一组织和处理区域内,给定模型的路由取决于:

  • 当前机器负载和可用容量。
  • 隐藏的 OpenAI 内容之后起始部分 Token 的哈希值,其中包括工具定义(如果有)。参与哈希计算的 Token 数量因模型而异。
  • 提供的 prompt_cache_key,用于将不同请求组的缓存复用隔离开来,并有助于优化 GPT-5.6 之前模型的缓存路由。

模型差异汇总

行为GPT-5.6 及更新模型GPT-5.5 和 GPT-5.5 Pro其他较早的模型
隐式断点位于最新一条符合条件的消息末尾。每隔 2,048 个 Token 设置一个。按固定间隔设置,间隔因模型而异。
显式断点支持不支持不支持
prompt_cache_key可选,用于分别核算缓存用量使用稳定的键优化缓存路由使用稳定的键优化缓存路由
最短可缓存前缀1,024 个可见输入 Token因请求设置而异因请求设置而异
缓存 Token 数量报告按符合条件的确切边界计算,不含隐藏 Token排除隐藏 Token,并向下取整到 128 的倍数排除隐藏 Token,并向下取整到 128 的倍数
缓存读取费用未缓存输入 Token 费率的 0.1 倍缓存输入费率因模型而异缓存输入费率因模型而异
缓存写入费用未缓存输入 Token 费率的 1.25 倍无额外缓存写入费用无额外缓存写入费用
缓存有效期控制prompt_cache_options.ttlprompt_cache_retentionprompt_cache_retention
支持的保留设置值"30m"仅支持 "24h""in_memory""24h"*
缓存有效期最近一次写入或复用后至少保留 30 分钟通常约 30 分钟,最长可达 24 小时in_memory 通常在未被使用后保留 5 至 10 分钟,24h 则最长可保留 24 小时

* gpt-5.5gpt-5.5-progpt-5.4gpt-5.2gpt-5.1-codex-maxgpt-5.1gpt-5.1-codexgpt-5.1-codex-minigpt-5.1-chat-latestgpt-5gpt-5-codexgpt-4.1 支持延长保留。

对于 GPT-5.6 之前的模型,最短可缓存输入长度随请求设置而变化,包括工具、图像、输出模式、推理强度和详细程度。

请 ChatGPT 帮我确定请求的最短可缓存输入长度

如何优化提示缓存

重点是保留对话历史记录保持工具定义稳定,以及选择缓存位置。在 GPT-5.6 及后续模型上,请使用 prompt_cache_options.modeprompt_cache_breakpoint 控制缓存断点。如果您的应用需要为不同客户分别核算缓存用量,也可以使用可选的 prompt_cache_key。对于 GPT-5.6 之前的模型,请使用稳定的 prompt_cache_key,为共享可复用前缀的请求优化缓存路由。

请 ChatGPT 帮我优化提示缓存

示例

以下示例适用于 GPT-5.6 及后续模型。

常见陷阱

常见问题