GPTMap

openai-python 3.9 / 3.10 与 openai-node 7.11 / 7.12 更新解读:prompt cache 诊断、API key 过期与 GPT Image 2.5

OpenAI 官方 SDK 两天连发四个版本,随后补两个 key 过期治理版本,09-10 晚间再追加 Live API 与 Agents API 两对版本:prompt cache 诊断、Service Account API key 过期与组织级 policy、GPT Image 2.5 模型类型,以及两个全新 API 面。逐项解读,附可复制代码。

TL;DR
2026-09-08 至 09-10,OpenAI 官方 SDK 三天八版。v3.9.0 新增 prompt cache 诊断(传 comparison_response_id,miss 附 9 种 reason);v3.10.0 加 GPT Image 2.5 类型与 Service Account key 过期字段;v3.11.0 加组织级 policy 约束。09-10 晚间 v3.12.0/v3.13.0(node v7.14.0/v7.15.0)落地 Live API(/live/sessions、SIP 通话控制、gpt-live-1)与 Agents API(beta,/agents CRUD + sessions + vaults)。诊断仅支持 gpt-5.6+。
openai SDK 2026-09 批次更新是 openai-python v3.9.0 / v3.10.0 与 openai-node v7.11.0 / v7.12.0 四个版本的合称,核心是 prompt cache 诊断(comparison_response_id → prompt_cache_diagnostics)、Service Account API key 过期字段与 GPT Image 2.5 模型类型。

2026-09-08 前后两天,OpenAI 的两个官方 SDK 密集发了四个版本(Node 侧还有一个补丁),09-09 晚间又追加了一对 key 过期治理版本(v3.11.0 / v7.13.0),09-10 晚间再追加两对——Live API(v3.12.0 / v7.14.0)与 Agents API(v3.13.0 / v7.15.0),是这波里仅有的两个全新资源面。前面几个版本里最有价值的是 prompt cache 诊断——缓存没命中时终于能拿到"为什么没命中"的结构化原因;其余还包括 Service Account API key 的过期字段及其后续的 policy 治理升级、GPT Image 2.5 的模型类型,以及一批 429/503 响应的文档化。本文事实逐条对照当日可重抓的 GitHub release notes 与 SDK 源码(引用清单见文末);OpenAI 官方文档域对本站 403(最近一次可访问为 2026-09-01,2026-09-11 复核仍不可访问),涉及官方文档侧的状态一律不做超出本次核验的断言。

1. 版本概览

包 / 版本GitHub 发布时间(UTC)主要内容
openai-python v3.9.02026-09-08 16:42prompt cache 诊断;函数参数补全事件字段修正(openapi-545);接受 incomplete web search call 状态;429/503 文档化
openai-python v3.10.02026-09-09 00:17GPT Image 2.5 模型与图像选项;Service Account API key 过期字段
openai-python v3.11.02026-09-09 15:31key 过期治理升级:组织/项目级 policy 约束、1..31536000 秒边界(详见第 3 节)
openai-node v7.11.02026-09-08 16:41prompt cache 诊断;Service Account key 过期字段;事件字段修正;web search 状态识别;若干 assistants / audio 修复
openai-node v7.12.02026-09-09 00:16GPT Image 2.5 模型与图像选项;若干修复
openai-node v7.13.02026-09-09 15:30key 过期治理升级(与 python v3.11.0 同一 spec 变更)
openai-python v3.12.02026-09-10 17:28Live API(全新资源面 client.live);AsyncStream 补 aclose 等 3 个修复
openai-node v7.14.02026-09-10 17:29Live API(与 python v3.12.0 对齐);依赖升级
openai-python v3.13.02026-09-10 19:37Agents API(beta 命名空间全新资源面 client.beta.agents)
openai-node v7.15.02026-09-10 19:37Agents API(与 python v3.13.0 同分钟发布)

注意两包的版本号并不一一对应:key 过期字段在 Python 侧落在 v3.10.0、在 Node 侧落在 v7.11.0;key 过期治理升级在 Python 侧落在 v3.11.0、在 Node 侧落在 v7.13.0。而 09-10 晚间的两对是对齐发布:Live API 同在 python v3.12.0 / node v7.14.0(相差 1 分钟),Agents API 同在 python v3.13.0 / node v7.15.0(同一分钟)。Node 侧 09-09 还有 v7.12.1 补丁(2026-09-09 01:15 UTC,把 v7.12.0 的 GPT Image 2.5 支持补发上 npm)与若干 CI 修复,本文不展开。

2. prompt cache 诊断:终于能问"为什么没命中"

2.1 机制

v3.9.0 起,responses.create 的 prompt_cache_options 里新增 comparison_response_id(字符串,上一条请求的 response ID)。SDK 原文:Supplying this field requests prompt cache diagnostics when the feature is enabled——填了它,本次请求就会附带与那条历史请求的缓存对比诊断。诊断结果出现在响应对象的 prompt_cache_diagnostics 字段,是一个带判别值的联合类型:

  • cache_hit:可复用前缀命中;
  • cache_miss:未命中,附三个信息——reason(九种枚举)、cache_missed_tokens(首次分叉后受影响的输入 token 估计数)、可选的 comparison_reusable_tokens(对比请求中可复用前缀的原始 token 数);
  • comparison_response_not_found:给的 response ID 找不到;
  • unavailable:诊断不可用。

九种 miss reason 值得整表收藏,基本覆盖了日常"缓存怎么又没命中"的全部场景:

reason含义
model_changed模型变了
prompt_cache_key_changed缓存键变了
tools_changedtools 定义变了
text_format_changed结构化输出格式变了
reasoning_effort_changed推理深度变了
verbosity_changed输出详尽度变了
context_compacted上下文被压缩过
input_changed输入内容分叉
service_tier_changed服务档位变了

配套的类型文档也把 prompt caching 的几个关键数字写死了:prompt_cache_options 仅支持 gpt-5.6 及以后模型;mode 默认 implicit(自动写 1 个隐式 breakpoint,另可写最近 3 个显式 breakpoint),设为 explicit 则不写隐式、最多写 4 个显式;缓存匹配考虑会话中最近 80 个 breakpoints;ttl 目前仅 30m 一档。客户端事件枚举里同步出现了 prompt_cache_key_changed 事件,与 miss reason 同名。

2.2 代码

from openai import OpenAI

client = OpenAI()

resp = client.responses.create(
    model="gpt-5.6-terra",
    input="总结这段部署纪要的三个关键结论",
    prompt_cache_key="deploy-notes-2026-09",          # 原有能力:稳定缓存键
    prompt_cache_options={
        "comparison_response_id": "resp_abc123",      # v3.9.0 新增:上一轮 response ID
    },
)

diag = resp.prompt_cache_diagnostics                  # Optional[PromptCacheDiagnostics]
if diag is not None and diag.type == "cache_miss":
    print(diag.reason, diag.cache_missed_tokens)

这段代码是 SDK 源码核对版(对照 v3.9.0 的参数类型定义逐字段核对),未在真实 key 下实跑。

3. Service Account API key 过期字段

v3.10.0(Python 侧)给 admin 面板下的 Service Account API key 增加了过期语义:

  • 请求侧:api_keys.create 新增可选 expires_in_seconds(秒数);
  • 响应侧:返回对象新增 expires_in_seconds("Number of seconds until the API key expires")与 expires_at(Unix 时间戳,永不过期为 null)。
key = client.admin.organization.projects.service_accounts.api_keys.create(
    service_account_id="sa_xxx",      # 占位示例
    project_id="prj_xxx",             # 占位示例
    name="ci-runner-key",
    expires_in_seconds=60 * 60 * 24 * 90,   # 90 天
)
print(key.expires_at, key.expires_in_seconds)

对 CI / 自动化场景是实打实的好消息:以前 service account key 默认长期有效,泄露后的爆炸半径靠轮换纪律兜底;现在可以把过期时间写进创建调用里。注意这批字段只出现在 Service Account 的 key 上——用户 API key 是否支持过期,SDK 类型里没有对应变化,不要外推。

数小时后,这组字段在 v3.11.0 / v7.13.0(两包均 2026-09-09 15:30 UTC 前后发布)里完成了一次质变:expires_in_seconds 加上 1..31536000 秒(365 天)的硬边界;语义从"可选字段"升级为"policy 治理"——组织或项目级过期策略可以强制 key 过期、可以设最大生命周期(此时必须传值且不得超限),且与 create_service_account_only: true 互斥。这部分展开见本站《OpenAI API key 过期策略详解:expires_in_seconds、组织级 policy 与自动化密钥治理》。

4. GPT Image 2.5 类型落地

v3.10.0(Python)与 v7.12.0(Node)把 GPT Image 2.5 双模型(gpt-image-2.5-sunburst / gpt-image-2.5-flare,各含 -2026-09-08 快照)写进了模型枚举,并调整了图像选项:quality 新增 xhigh / max,透明背景在 2.5 上不再带 preview 标注,任意分辨率规则随参数文档更新。这部分展开见本站《GPT Image 2.5 解读:sunburst / flare 双模型、xhigh-max 质量档与任意分辨率》,本文不重复。

5. 09-10 晚间追加:Live API 与 Agents API

三天批次的最后一天(09-10)晚间,两包各发两版,落了两个全新的 API 资源面,各自有专文拆解:

  • Live API(python v3.12.0 / node v7.14.0,17:28 / 17:29 UTC):client.live 命名空间,POST /live/sessions 提交 WebRTC SDP offer 建 live 会话、connect() 走 WebSocket 直连;sessions 子资源带 accept / reject / hangup / refer 四个 SIP 通话控制端点(accept 的 SDK 原文是 Accept an incoming SIP call)与 fork、download_recording;sideband 可附着到既有会话。会话配置的 model 字段出现新字面量 gpt-live-1——它没有进入 ChatModel 枚举,也不是官宣模型。详见《Live API 现身 OpenAI SDK:gpt-live-1、WebRTC/WebSocket 双通道与 SIP 通话控制解读》。
  • Agents API(python v3.13.0 / node v7.15.0,19:37 UTC 同分钟):beta 命名空间 client.beta.agents,但 HTTP 端点是顶层 /agents 与 /vaults。四层资源面:可复用 Agent 的 CRUD(service_tier 五档枚举)、Managed Agents session(状态机 idle / in_progress / requires_action / failed)、执行环境(templates / files / skills / plugins)、凭据 vaults。详见《Agents API 现身 OpenAI SDK(beta):/agents CRUD、environments、sessions 与 vaults 全景》。

两个资源面截至 2026-09-11 均无可用性与定价公告(官方文档域对本站 403),生产系统以观望为主。

6. 其余修正与文档化改动

  • 函数参数补全事件字段修正(openapi-545):v3.9.0 修正了 function argument completion 相关事件的字段定义。release notes 只到这一句;受影响的下游是按事件字段解析流式 function call 进度的代码,升级后建议回归一遍事件解析。
  • 接受 incomplete web search call 状态:web search call 的状态枚举扩展,可以表达"未完成"的中间态。如果你的代码对状态做穷举 switch,记得兜住新值。
  • refuse overflowing server retry delays:当服务器返回的 retry-after 值大得离谱时,SDK 不再按它等待(避免整夜挂起重试),改为报错。
  • 429 / 503 响应文档化:SDK-235 把限流(429,含 TooManyRequests / InferenceRateLimited 形态)与过载(503,InferenceServiceUnavailable)响应写进了 API 规范描述——错误处理分支从此有据可依。
  • Node 侧修复(v7.11.0):assistants 终态 message 快照保留、audio 录制进程信号等,属于 SDK 自身质量修复,与 API 语义无关。

7. 升级建议

  • 用 prompt caching 的生产服务:升 Python ≥ v3.9.0 / Node ≥ v7.11.0,给主链路加上 comparison_response_id 诊断。命中率突然下滑时,九种 reason 直接告诉你是哪个配置漂了——这比对着面板猜快得多。
  • 有 Service Account key 的团队:升 Python ≥ v3.11.0 / Node ≥ v7.13.0(覆盖基础字段 + policy 治理语义),新 key 一律带 expires_in_seconds,存量 key 按轮换计划重发并盘点 expires_at 为 null 的存量 key。确认 organization / projects admin 权限的调用方代码同步升级。
  • 图像生成管线:想试 2.5 再升 Python ≥ v3.10.0 / Node ≥ v7.12.0,不急则维持现状(gpt-image-2 未弃用)。
  • 所有升级:先过一遍 CI 里的错误处理分支——这批把 429/503 的形态写进了规范,正是收紧重试与退避策略的时机。

prompt caching 的完整机制与成本账,见本站《Responses API 高级实战:structured outputs / 流式 SSE / Batch / prompt caching》;时间线视角的模型与 API 变动,见《OpenAI 模型更新日志(2026 持续更新)》。

8. 下一步

关键要点

  • prompt cache 诊断:prompt_cache_options 新增 comparison_response_id(传旧 response ID),响应新增 prompt_cache_diagnostics——落在本批 python v3.9.0 与 node v7.11.0
  • cache_miss 附 9 种 reason:model_changed、prompt_cache_key_changed、tools_changed、text_format_changed、reasoning_effort_changed、verbosity_changed、context_compacted、input_changed、service_tier_changed,另带 cache_missed_tokens 估计值
  • Service Account API key:create 增 expires_in_seconds(秒),响应含 expires_in_seconds 与 expires_at(Unix 时间戳,可为 null)——python v3.10.0 / node v7.11.0
  • key 过期治理升级(python v3.11.0 / node v7.13.0,09-09 15:30 UTC):组织/项目级 policy 可强制 key 过期;expires_in_seconds 边界 1..31536000 秒;与 create_service_account_only 互斥
  • GPT Image 2.5(sunburst / flare + 2026-09-08 快照)进入 python v3.10.0 与 node v7.12.0
  • SDK 文档化 429(限流)与 503(过载)响应,并修复服务器 retry-after 溢出时 SDK 自身报错的问题
  • prompt_cache_options 仅支持 gpt-5.6 及以后模型;ttl 目前仅 30m 一档;缓存匹配考虑会话中最近 80 个 breakpoints
  • 2026-09-10 追加:Live API(python v3.12.0 / node v7.14.0)——POST /live/sessions、WebSocket connect、SIP 通话控制四端点、会话配置出现 gpt-live-1 字面量(未进 ChatModel 枚举)
  • 2026-09-10 追加:Agents API(python v3.13.0 / node v7.15.0,beta 命名空间)——/agents CRUD、Managed Agents session、environments、vaults 四层资源面

常见问题

把上一条请求的 response ID 填进 prompt_cache_options.comparison_response_id,同请求发出后,响应对象的 prompt_cache_diagnostics 字段会给出对比结果:cache_hit 表示可复用前缀命中;cache_miss 附 reason 与 cache_missed_tokens(首次分叉后受影响的输入 token 估计数)。完整代码见本文第 2 节。

官方参考

相关文章

订阅 GPTMap Weekly

每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。

提交后将在新标签页打开 Buttondown 完成订阅确认。

GPTMap Editorial发布于 2026-09-09更新于 2026-09-17 14 分钟阅读
测试环境(EEAT)
最后测试时间:2026-09-09
使用模型:gpt-5.6(prompt cache 诊断支持范围)