OpenAI SDK 出现托管 Agent 环境资源:prewarmed 预热创建、闲置挂起与过期事件
2026-10-09 至 10-11 三天,openai-python 连发 v3.27.0/v3.28.0/v3.29.0、openai-node 发 v7.32.0,同一条 agent environment API 线浮出水面:预热创建、挂起与过期。本文只写 SDK 源码与当日 GitHub release notes 里能指出的东西。
OpenAI 的两个官方 SDK 在三天里连发了四个版本,而它们讲的是同一个故事:一个可创建、可闲置挂起、可过期的托管 agent 环境资源,正在浮出水面。本文逐字引用 2026-10-12 当日抓取的 GitHub release notes 与 SDK tag 源码,类型层之外不断言。
1. 时间线:三天四个版本
| 版本 | 发布时间 | 关键 Feature 行 |
|---|---|---|
| openai-python v3.27.0 | 2026-10-09 | api: add prewarmed hosted environments (#4043) |
| openai-python v3.28.0 | 2026-10-09 | api: add agent environment suspension and expiration (#4046) |
| openai-node v7.32.0 | 2026-10-09 | api: add agent environment suspension and expiration (#2904) |
| openai-python v3.29.0 | 2026-10-11 | billing_not_active 会话错误码、Live 语音 shida、vault 更新与元数据过滤、beta 分页对齐 |
版本号与时间来自 GitHub Releases API 当日抓取。上一篇文章《GPT-6 家族扩容:gpt-6-sol、gpt-6-luna、gpt-6.1-sol 进驻官方 SDK,dots 与 Intelligent UI 同窗亮相》核对时,python 最新版还是 v3.26.1、node 是 v7.31.0——这条环境 API 线是那之后三天内新增的。
2. 预热创建:environments.create
新资源挂在 client.beta.agents.environments 下。create 方法的文档原文:
Creates an OpenAI-hosted environment before creating a session. Requires access to the prewarming beta.
两个信息:其一,环境是先于会话创建的("before creating a session");其二,它走 prewarming beta 门控。vault_ids 参数的文档是 "The IDs of up to 10 vaults made available to an OpenAI-hosted environment"——至多 10 个 vault 可挂给环境。资源下另有 files 与 templates 两个子资源。
按 v3.29.0 tag 的 environment_create_params.py,environment 参数的形状是:
environment = {
"type": "openai_hosted", # 必填,当前唯一字面量
"desktop": {"enabled": True}, # 可选
"packages": {
"npm": ["typescript@5"],
"python": ["httpx"],
"system": [], # 三组各自可选
},
"network": {
"access": "restricted", # enabled / disabled / restricted
"allowed_domains": ["api.example.com"],
"blocked_domains": [],
},
"env": {"FOO": "bar"},
"setup_commands": [], # SetupCommandParam 列表
"files": [], # HostedEnvironmentFileParam 列表
"skills": [], # HostedSkillParam 列表
"plugins": [], # HostedPluginParam 列表
"capability_directories": [],
"environment_template_id": "tmpl_...",
}
env = client.beta.agents.environments.create(
environment=environment,
vault_ids=["vault_..."], # 至多 10 个
)
这是类型层最小示例:各字段的类型与枚举逐字来自 environment_create_params.py,但本文未真机调用(beta 门控,以你的 API 响应为准)。网络配置有一条类型层注释值得照录:非空的 allowed_domains 列表要求 access: "restricted",且不能与某些配置组合(注释原文:"A nonempty list requires access: restricted and cannot be combined with…"——完整约束以源码为准)。
3. 闲置生命周期:挂起与过期
v3.28.0(python)与 v7.32.0(node)同日加入 suspension 与 expiration。会话事件侧两个新类型的文档原文:
agent.session.environment.suspended
"Emitted after an idle hosted session environment is checkpointed and stopped."
agent.session.environment.expired
"Emitted after a suspended hosted session environment and its checkpoint expire."
换句话说:环境闲置 → 打 checkpoint 并停止(挂起);挂起状态超时 → 环境与 checkpoint 一起过期。webhook 侧有对应事件,文档原文是 "Sent when an agent environment is suspended and can resume from a snapshot"——挂起的环境可从快照恢复。事件对象本身带 event_id、session_id、可选 turn_id 与环境当前状态字段。
4. v3.29.0 的其余新增
10-11 的 v3.29.0 在环境线之外又加了四项(release notes Feature 行):
billing_not_active会话错误码——会话错误码家族新成员,名字指向计费未激活的场景;- shida 进入 named Live voices——Live 语音家族的命名声音新增一位;
- vault updates and metadata filters——vault 侧的更新与元数据过滤;
- beta 分页限额与参数非空对齐——各 beta 资源的分页参数语义拉齐。
openai-node v7.32.0 在环境 API 之外附了一个 runners 修复:totalUsage 保留详细 token 用量(#2900),对用 runner 统计用量的项目是个值得升级的修复。
5. 常见错误与排查
- 调用
environments.create报权限/不存在类错误:先确认版本(openai-python ≥ 3.27.0、openai-node ≥ 7.32.0),再确认 beta 权限——SDK 文档明言 "Requires access to the prewarming beta"。本文无法替你判断账号是否在 beta 内,以 API 响应为准。 - 收到
agent.session.environment.suspended不是故障:按事件文档,这是闲置环境的预期生命周期动作,webhook 文档写明可从快照恢复。 billing_not_active:v3.29.0 新增的会话错误码,字面指向计费未激活;排查方向是账户计费状态而非代码。具体触发条件在当日可加载渠道中没有更多说明,不展开。- 环境怎么挂到会话上:SDK 类型层可见会话事件带 environment 状态,但"创建后会话如何引用环境 ID"的完整参数面,在当日抓取的类型文件中没有完整呈现——本文不猜测,留待下批核对。
6. 下一步
- 模型侧的同窗动态见《GPT-6 家族扩容:gpt-6-sol、gpt-6-luna、gpt-6.1-sol 进驻官方 SDK,dots 与 Intelligent UI 同窗亮相》;
- Agents 与会话 API 的前情见《gpt-6-astra 现身 OpenAI SDK:ChatModel 枚举新模型 ID 与 Safety Alerts API 解读》;
- 官方 release notes 与 tag 源码直链见文首引用清单——本文每条引号句都能在那六个链接里逐字找到。
关键要点
- 三天四个版本(日期来自 GitHub releases API 2026-10-12 抓取):openai-python v3.27.0(10-09)、v3.28.0(10-09)、v3.29.0(10-11),openai-node v7.32.0(10-09)——前两条 release notes 只有一行 Feature,分别是 "add prewarmed hosted environments" 与 "add agent environment suspension and expiration"
- 预热创建的官方文档串:client.beta.agents.environments.create —— "Creates an OpenAI-hosted environment before creating a session. Requires access to the prewarming beta.";vault_ids 参数文档:"The IDs of up to 10 vaults made available to an OpenAI-hosted environment.";资源下还有 files 与 templates 两个子资源
- environment 参数(v3.29.0 tag 的 environment_create_params.py):type 为必填 Literal "openai_hosted";可配 desktop.enabled、env、files、setup_commands、skills、plugins、capability_directories、environment_template_id,以及 packages(npm/python/system 三组)与 network(access 枚举 enabled/disabled/restricted,restricted 下可配 allowed_domains/blocked_domains)
- 挂起与过期(v3.28.0 起,python 与 node 同日):会话事件 agent.session.environment.suspended 文档原文 "Emitted after an idle hosted session environment is checkpointed and stopped",agent.session.environment.expired 原文 "Emitted after a suspended hosted session environment and its checkpoint expire";webhook 侧事件文档原文 "Sent when an agent environment is suspended and can resume from a snapshot"
- v3.29.0(10-11)另加四项:billing_not_active 会话错误码、shida 进入 named Live voices、vault updates and metadata filters、beta 分页限额与参数非空对齐(均见 release notes Feature 行);openai-node v7.32.0 附 runners 修复:totalUsage 保留详细 token 用量(#2900)
- 边界:是否可调用取决于 prewarming beta 权限(SDK 文档明言 Requires access to the prewarming beta);定价、区域可用性、与会话的完整生命周期在 SDK 类型层与 release notes 中均无说明——本文不做断言,以你自己的 API 响应为准
常见问题
官方参考
相关文章
openai-python 3.32.0 与 openai-node 7.35.0 更新解读:prompt 建声、Live 音频夹具与 Live Decisions
2026-10-16 两包官方 SDK 同日再发:语音可以用一段文字描述直接创建(但只在 Live 可用)、Live 会话能播 30 秒内的音频夹具、Decisions 问题评估接进 Live 转写触发器,Decisions API 也拿到了 prompt caching。本文只写两包 CHANGELOG 与 tag 源码里能指出的东西。
阅读全文OpenAI SDK 新增 Browser/Computer 工具集(1/4):BrowserToolset 把驱动方法变成 Responses 函数工具
2026-10-14 两包官方 SDK 同日四发:openai-python 3.30.0/3.31.0 与 openai-node 7.33.0/7.34.0。头条是标注 (1/4) 的 browser and computer toolsets——BrowserToolset 不给 Responses API 加原生浏览器工具类型,而是把你自带驱动的结构化方法变成普通函数工具。本文只写两包 CHANGELOG 与 v3.31.0 tag 源码/文档里能指出的东西。
阅读全文OpenAI API 429 限流错误排查:RateLimitError 与 SDK 重试机制
遇到 OpenAI API 429 时先分清两类:请求速率超限还是配额耗尽——两者都抛 RateLimitError 但解法完全不同。官方 Python SDK 默认已替你重试 2 次并遵守 Retry-After,本文按 SDK 源码把机制与排查路径讲清。
阅读全文订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。
提交后将在新标签页打开 Buttondown 完成订阅确认。