跳转到主要内容
GPT 系列模型(gpt-4o 及之后)的提示缓存(Prompt Caching)自动生效:请求前缀达到 1,024 Token、且与近期请求逐字一致时,命中部分按缓存读取价计费,同时降低首 Token 延迟。GPT-5.6 系列(gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna)对缓存机制做了升级:缓存写入开始独立计费(1.25 倍输入价)、缓存读取为 0.1 倍输入价、缓存至少保留 30 分钟,并新增 prompt_cache_key 可靠匹配与显式缓存断点参数。 两代模型的缓存行为速览:
GPT-5.6 之前GPT-5.6 及之后
缓存方式自动自动 + 显式断点
最小缓存长度1,024 Token1,024 Token
缓存写入计费不另计费1.25x 基础输入价
缓存读取计费按对应模型的缓存读取价0.1x 基础输入价
缓存保留时间不活跃 5–10 分钟后清除,最长 1 小时至少保留 30 分钟
prompt_cache_key可选,用于提高命中率官方要求设置,以启用更可靠的缓存匹配
24 小时扩展保留部分模型支持(prompt_cache_retentionprompt_cache_options.ttl 取代,当前仅支持 "30m"

快速开始

提示缓存无需额外配置:用相同的长前缀连续请求两次,第二次响应的 usage.prompt_tokens_details.cached_tokens 大于 0 即为命中。GPT-5.6 系列建议同时设置 prompt_cache_key
curl https://aihubmix.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -d '{
    "model": "gpt-5.6-sol",
    "prompt_cache_key": "my-app-report-assistant-v1",
    "messages": [
      {
        "role": "system",
        "content": "You are a meticulous assistant for analyzing quarterly financial reports... [此处放置固定不变的长指令或参考资料,≥1024 Token]"
      },
      {
        "role": "user",
        "content": "Summarize the key figures in one sentence."
      }
    ]
  }'
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AIHUBMIX_API_KEY"],  # 密钥从环境变量读取
    base_url="https://aihubmix.com/v1",
)

long_context = "You are a meticulous assistant for analyzing quarterly financial reports... [固定不变的长指令或参考资料,≥1024 Token]"

# 相同前缀连续请求两次,第二次命中缓存
for i in range(2):
    completion = client.chat.completions.create(
        model="gpt-5.6-sol",
        prompt_cache_key="my-app-report-assistant-v1",
        messages=[
            {"role": "system", "content": long_context},
            {"role": "user", "content": "Summarize the key figures in one sentence."},
        ],
    )
    print(completion.usage.prompt_tokens_details)
两次调用的实测 usage(2026-07-10,gpt-5.6-sol):
// 第 1 次调用:无命中
"prompt_tokens_details": {"audio_tokens": 0, "cached_tokens": 0}

// 第 2 次调用:前缀命中缓存
"prompt_tokens_details": {"audio_tokens": 0, "cached_tokens": 2816}

缓存计费

GPT-5.6 系列的缓存计费规则:
计费项费率
常规输入 Token按平台定价
缓存写入 Token1.25x 基础输入价
缓存读取 Token0.1x 基础输入价
输出 Token按平台定价
OpenAI 官方对该规则的表述(出自 GPT-5.6 发布公告):“For GPT‑5.6 and later models, cache writes are billed at 1.25x the model’s uncached input rate, while cache reads continue to receive the 90% cached-input discount.”。官方提示缓存指南中该倍率的适用范围表述为 “GPT-5.6 models and later model families”(GPT-5.6 及之后的模型家族)。各模型的官方标价见 OpenAI Pricing,AIHubMix 实际价格以模型广场为准。 由官方倍率可以直接算出盈亏:写入一段前缀比不缓存多付 0.25 倍输入价,此后每命中一次省 0.9 倍输入价。前缀只要被复用 1 次即净节省;复用次数越多节省越多。前缀完全不会复用的一次性请求会多付写入费,可以用 explicit 模式关闭缓存(见下文「GPT-5.6 缓存参数」)。 GPT-5.6 之前的模型缓存写入不另计费,缓存读取按对应模型的缓存读取价计费,各模型价格以模型广场为准。
GPT-5.6 系列区分长短上下文档位:单次请求输入超过 272K Token 时,整个请求按长上下文档计费(输入 2 倍、输出 1.5 倍)。缓存写入 1.25x、读取 0.1x 的倍率在长上下文档下同样成立,基数为长上下文档的输入价。

缓存如何自动生效

发送请求时,系统会检查请求前缀(按 messages、tools 等序列化后的顺序)是否与近期请求的前缀逐字一致:
  1. 前缀达到 1,024 Token 且找到一致的缓存前缀时,命中部分按缓存读取价计费,并降低首 Token 延迟;
  2. 未找到时按常规输入处理,并把前缀写入缓存(GPT-5.6 及之后按 1.25x 计写入费);
  3. 命中要求前缀逐字节一致,前缀中任何一处变化都会使该位置之后的缓存全部失效。
以下场景收益最明显:
  • 固定的长系统指令或大量 few-shot 示例
  • RAG 场景中重复引用的长参考资料
  • 携带大量工具定义(tools)的 Agent 工作流
  • 只往后追加消息的长多轮对话
缓存保留时间:GPT-5.6 之前的模型在不活跃 5–10 分钟后清除、最长 1 小时;GPT-5.6 及之后至少保留 30 分钟,实际可能保留更久。缓存不跨组织共享,且缓存对输出内容没有影响。

GPT-5.6 缓存参数

GPT-5.6 系列新增了三个缓存相关参数(Chat Completions 与 Responses API 通用):
参数类型 / 位置取值默认
prompt_cache_keystring,请求体顶层自定义稳定标识,建议按业务或租户划分;单个 key 的总流量建议控制在约 15 次/分钟内
prompt_cache_optionsobject,请求体顶层mode: "implicit" / "explicit"ttl: 仅支持 "30m"mode: "implicit"ttl: "30m"
prompt_cache_breakpointobject,内容块内{"mode": "explicit"},标记缓存前缀的结束位置不设置断点
GPT-5.6 之前的模型不支持这三个参数中的 prompt_cache_optionsprompt_cache_breakpoint,请求会被拒绝;旧模型的 24 小时扩展保留参数 prompt_cache_retention"24h" / "in_memory")在 GPT-5.6 及之后由 prompt_cache_options.ttl 取代。 三种缓存控制方式的关系:
  1. 默认(implicit 模式):不传任何缓存参数也会自动写缓存——系统在最新一条消息的位置自动设置断点。GPT-5.6 及之后,自动发生的缓存写入同样按 1.25x 计费。
  2. implicit 模式 + 显式断点:在自动断点之外,可在内容块上设置 prompt_cache_breakpoint,把缓存边界固定在稳定内容的末尾;断点之后的内容变化不会破坏断点之前的前缀缓存。
  3. explicit 模式prompt_cache_options.mode 设为 "explicit" 后只使用手动断点;完全不设置断点时该请求不使用缓存、也不产生缓存写入费。官方原文:“If the conversation contains no explicit breakpoints, the request does not use prompt caching or incur cache-write charges.”
用 explicit 模式关闭一次性长请求的缓存写入费:
{
  "model": "gpt-5.6-sol",
  "prompt_cache_options": {"mode": "explicit"},
  "messages": [
    {"role": "user", "content": "[不会复用的一次性长内容]"}
  ]
}
显式断点的官方规范用法(断点设置在固定长内容块的末尾):
{
  "model": "gpt-5.6-sol",
  "prompt_cache_key": "my-app-report-assistant-v1",
  "messages": [
    {
      "role": "system",
      "content": [
        {
          "type": "text",
          "text": "[固定不变的长指令或参考资料,≥1024 Token]",
          "prompt_cache_breakpoint": {"mode": "explicit"}
        }
      ]
    },
    {"role": "user", "content": "Summarize the key figures in one sentence."}
  ]
}
硬约束(官方口径):
  • 每个请求最多创建 4 个新的缓存写入;implicit 模式下自动断点占用其中 1 个;
  • 断点之前的前缀仍需达到 1,024 Token 才会被缓存;
  • 读取时在最近 50 个断点中取最长匹配前缀;
  • 断点设置在不支持的内容块上会返回 400 invalid_request_error。Chat Completions 支持 text / image_url / input_audio / file / refusal 块,Responses API 支持 input_text / input_image / input_file 块。
AIHubMix 对 prompt_cache_breakpoint 内容块断点及 Responses API 缓存命中的支持正在完善中。现阶段推荐通过 Chat Completions 使用自动缓存并设置 prompt_cache_key(本页快速开始示例,已验证可命中);prompt_cache_options 的 explicit 模式可正常用于关闭缓存写入。本页将随支持进度更新。

为什么缓存没有命中

命中要求断点位置之前的所有内容逐字节一致。第二次请求 cached_tokens 仍为 0 时,按以下清单排查:
  • 前缀不足 1,024 Token:低于最小缓存长度的请求按常规输入处理;
  • 前缀中混入了变化内容:时间戳、会话 ID、用户变量等应放到固定内容之后,前缀中任何一处变化都会使之后的缓存失效;
  • tools 定义或顺序变化:工具列表参与前缀计算,定义与排列顺序都必须完全一致;
  • 图片 detail 参数不一致detail 影响图片 Token 化结果,需保持相同;
  • 结构化输出 schema 变化response_format 的 JSON Schema 作为系统消息前缀参与缓存,schema 变化即前缀变化;
  • reasoning_effort 变化:官方将其列为缓存命中率降低的常见原因之一(“Changes to reasoning effort”);
  • 超过缓存保留期:GPT-5.6 之前不活跃 5–10 分钟后清除,GPT-5.6 及之后至少保留 30 分钟;
  • 未设置 prompt_cache_key(GPT-5.6):不设置时仍可能自动命中,但不使用更可靠的匹配机制。

最佳实践

  • 固定内容(系统指令、示例、参考资料、工具定义)放在请求最前面,每轮变化的内容放在最后;
  • 为共享同一前缀的流量设置同一个稳定的 prompt_cache_key,单个 key 的总流量控制在约 15 次/分钟内,超出时按业务拆分更多 key;
  • 多轮对话只向后追加消息,避免修改历史消息;
  • 保持相同前缀的请求有持续流量,减少缓存被清除;
  • 前缀不会复用的一次性长请求,用 explicit 模式避免缓存写入费(GPT-5.6 及之后);
  • 通过 usage.prompt_tokens_details.cached_tokens 持续监控命中情况。

常见问题

GPT 的提示缓存需要手动开启吗?

无需手动开启:前缀达到 1,024 Token 即自动缓存。GPT-5.6 及之后建议同时设置 prompt_cache_key 以获得更可靠的缓存匹配。

GPT-5.6 的缓存写入费如何计算?如何避免不必要的写入费?

缓存写入按基础输入价的 1.25 倍计费,读取按 0.1 倍计费;前缀被复用 1 次即净节省。前缀不会复用的一次性长请求,把 prompt_cache_options.mode 设为 "explicit" 且不设置断点,该请求即不使用缓存、不产生写入费。

缓存能保留多久?

GPT-5.6 及之后至少保留 30 分钟(ttl 当前仅支持 "30m",实际可能保留更久);GPT-5.6 之前的模型在不活跃 5–10 分钟后清除、最长 1 小时,部分旧模型支持 prompt_cache_retention: "24h" 扩展保留。

GPT-5.6 的显式断点和 Claude 的 cache_control 有什么区别?

两者都用于把缓存边界固定在稳定内容末尾。主要区别:GPT-5.6 无需任何参数即自动缓存、断点为可选精细控制,Claude 需在请求中启用缓存(顶层 cache_control 自动断点或内容块级显式断点);GPT-5.6 缓存至少保留 30 分钟,Claude 默认 5 分钟、可选 1 小时;两者的缓存读取都按 0.1 倍输入价计费。Claude 的用法见 Claude 提示词缓存

缓存会影响输出内容吗?

没有影响。官方口径:提示缓存只影响输入侧的处理与计费,模型生成输出的方式与不使用缓存时完全相同。

官方参考

本页机制、倍率与参数口径均来自以下 OpenAI 官方来源: AIHubMix 各模型实际价格以模型广场为准。
更新时间:2026-07-10