openai-python 3.48.0 与 openai-node 7.54.0:Agent 会话事件流的混淆填充与 stream_options
2026-11-09 发布的官方 SDK 双包更新:python v3.48.0 给 agent 会话事件流加了混淆填充开关(stream_options 与 include_obfuscation,33 个事件类型新增 obfuscation 字段);node v7.54.0 仅同步 gpt-6-rosalind 类型与 agent scheduling 保留。本文全部事实经 GitHub API 与 tag 源码当日核对。
官方 SDK 在 2026-11-09 又各发一版:openai-python v3.48.0 与 openai-node v7.54.0。这一批的分工非常不对称——主变更(agent 会话事件流的混淆填充)只在 python 侧落地,node 侧只有两笔类型层与代码生成层面的小改。本文全部事实来源为当日经 GitHub API 读取的 release notes 与 PR 正文、PR 文件级 diff,以及 raw.githubusercontent.com 上的 v3.48.0 / v7.54.0 tag 源码(文档核对版,本站未执行真实流式请求);PyPI 与 npm 的上架状态经两包 registry API 当日核对。
1. 版本与上架时间线
| 项 | openai-python v3.48.0 | openai-node v7.54.0 |
|---|---|---|
| GitHub release(published_at) | 2026-11-09T16:12:58Z | 2026-11-09T16:04:55Z |
| release notes 标题行日期 | 2026-11-09 | 2026-11-08 |
| registry 上架时间 | PyPI 2026-11-09T16:13:48 | npm 2026-11-09T16:15:07.008Z |
| registry latest 标签 | 3.48.0 | 7.54.0 |
| features | #4251(agent 会话流选项)、#4257(rosalind 进 beta Responses) | #3126(rosalind 进 beta Responses) |
| chores | #4255(保留 agent scheduling)、依赖升级 | #3123(保留 agent scheduling) |
两包的 release notes 里还各有一笔文档类改动「consolidate AGENTS.md guidance」(python #4254 / node #3121),属仓库自身贡献指南整理,不影响 API 面;python 侧另有锁定依赖 multidict 从 6.9.1 升到 7.1.0 等杂项。上表时间均为 GitHub API 与两包 registry 的原始时间戳(本站 2026-11-10 读取)。
2. 主变更:agent 会话事件流的混淆填充(obfuscation)
python v3.48.0 的核心 feature 是 PR #4251「add stream options for agent sessions」(merge 于 2026-11-05T18:36:43Z,随本版发布)。它给 beta Agents 的事件流加了一套「混淆填充」开关,按 PR 正文的说法是「控制 agent 会话事件流填充的选项」——具体拆开是三件事:
- 创建会话时:请求体新增
stream_options字段,文档串注明「Options for the event stream. Only allowed whenstreamistrue」; - 订阅事件流时:
GET /agents/sessions/{session_id}/events新增查询参数include_obfuscation,布尔、缺省 true; - 事件对象上:多个事件类型新增可选
obfuscation字段,文档串写明「Random alphanumeric padding. Present when stream obfuscation is enabled」(随机字母数字填充,stream obfuscation 开启时出现)。
两个开关缺省都是 true——也就是升级到 v3.48.0 之后,默认行为不变(事件里开始可能出现填充字段),想关掉要显式传 false。
3. 两个开关的位置:session create 的 stream_options 与 events 查询参数
从 v3.48.0 tag 的类型文件里照录(文档核对版):
# openai-python v3.48.0 tag:src/openai/types/beta/agents/session_create_params.py(节选)
class StreamOptions(TypedDict, total=False):
"""Options for the event stream. Only allowed when `stream` is `true`."""
include_obfuscation: bool
"""Whether to include obfuscation padding in events on this connection.
Defaults to `true`.
"""
创建「边建边流」的会话时(stream=True),可以预置填充选项:
from openai import OpenAI
client = OpenAI()
session = client.beta.agents.sessions.create(
environment=..., # 必填:内联执行环境或模板引用(形状本篇不展开)
input="...", # stream=True 且环境非 self_hosted 时必填(类型文档串口径)
stream=True,
stream_options={"include_obfuscation": True}, # 缺省即 True,可显式关
)
对既有会话单独订阅事件流时,include_obfuscation 直接作查询参数(SDK 方法签名随本版加了同名形参):
events = client.beta.agents.sessions.events.stream(
"sess_123",
include_obfuscation=False, # 连接级开关,缺省 True
)
for event in events:
print(event.type, event.obfuscation)
等价的原始 REST 调用(路径前缀 /v1/agents 与本库既有 sessions 资源一致,world-state 既有记录):
curl -s "https://api.openai.com/v1/agents/sessions/sess_123/events?include_obfuscation=false" \
-H "Authorization: Bearer $OPENAI_API_KEY"
三处口径的对应关系要分清:stream_options 是创建会话时的预置(只对走 stream=True 的那次创建有意义);events 端点的 include_obfuscation 是订阅时的连接级开关(文档串原文「on this connection」);事件上的 obfuscation 字段是开关开启时的产物,不是第三个开关。
4. 事件对象上的 obfuscation 字段:33 个事件类型文件
PR #4251 的文件级 diff 实测:44 个变更文件里,src/openai/types/beta/ 下有 33 个事件类型文件全部新增了同一个可选字段——
obfuscation: Optional[str] = None
"""Random alphanumeric padding. Present when stream obfuscation is enabled."""
覆盖面按事件名分组:会话生命周期(agent.session.created / failed / idle / in_progress / requires_action;error 事件的字面量是单独的 error,不带 agent.session. 前缀)、环境生命周期(environment.pending / ready / connected / disconnected / expired / failed / suspended / reset)、turn 生命周期与内容事件(turn.created / in_progress / completed / failed / cancelled、turn.item.added / done、turn.content_part.added / done、turn.output_text.delta / done)、推理摘要四件(agent.session.turn.reasoning_summary_part.added / .done、agent.session.turn.reasoning_summary_text.delta / .done——reasoning_summary 后接下划线,非点分)、subagent 三件(created / active / closed)、输出增量(agent.output.command_execution_output.delta)。换句话说,无论订阅到哪类事件,都可能遇到这个字段;消费侧按可选字段处理即可。
5. node 侧现状与官方文档跟进状态
两包对照(本批核对日 2026-11-10):
| 项 | python v3.48.0 | node v7.54.0 |
|---|---|---|
session create 的 stream_options | 有(#4251) | 无(tag 实测) |
events 端点 include_obfuscation 参数 | 有(#4251) | 无(tag 实测:stream(sessionID, options?) 签名未变) |
事件上的 obfuscation 字段 | 33 个事件类型 | 无(本批 node 侧唯一源码变更是 responses.ts 的 rosalind 枚举插入,同文件 4 处) |
| gpt-6-rosalind 进 beta Responses | #4257 | #3126 |
| agent scheduling 保留 | #4255(仅统计文件) | #3123(仅统计文件) |
官方文档侧:agents-api 的会话事件指南(本站 2026-11-10 抓取 .md 全文变体,约 21KB)通篇没有 obfuscation 字样——这批是「SDK 类型层先行于官方文档」,与此前 prompt caching TTL「指南先行于 SDK 文档串」的次序正好相反。依赖这两个开关写生产代码的话,以你所装版本的实际类型文件为准。
6. 同批其余变更:rosalind 进 beta Responses 与 agent scheduling 保留
- gpt-6-rosalind 进 beta Responses 模型联合(python #4257、node #3126,两包 PR 在 2026-11-08T16:17 同分钟 merge):diff 里可见的枚举序列为
gpt-5.6-cyber、gpt-6-cyber、gpt-rosalind-research之后插入gpt-6-rosalind。背景:stable Responses 联合早在 11-05 批的 v3.46.0/#4243(node v7.51.0/#3109)已收录 rosalind(本站 2026-11-06 核对),本批补的是 beta 命名空间——两处联合至此对齐。gpt-6-cyber 此前进联合的过程见《GPT-6 Cyber 官宣:Astra 的网络安全特化变体登陆 API,ExploitGym 48.5%、Preparedness 升至 Critical》。 - agent scheduling API 保留(python #4255 merge 于 2026-11-07T03:39:32Z、node #3123 merge 于 03:40:31Z):PR 正文只有一句「Retains the existing agent scheduling APIs」;两包的文件级 diff 均只有
.castiron.stats.yml(代码生成配置哈希变化)——仓库内没有任何源码级 API 变更可指认。「保留」是否对应上游规格再生时的某次取舍,官方文本没有说明,本站只记录动作本身。 - python 侧杂项:文档类「consolidate AGENTS.md guidance」(#4254)、锁定依赖 multidict 6.9.1 → 7.1.0(#4259)与若干开发依赖升级——不影响 API 面。
7. 常见错误与排查
stream_options报错:先确认会话创建确实传了stream=True——文档串原文写明该对象「Only allowed whenstreamistrue」;非流式创建带上它没有意义。- 升级后事件里多出
obfuscation字段:这是 v3.48.0 的默认行为(缺省 true),不是异常;不想看到填充就按第 3 节两个入口显式传include_obfuscation=false。 - node 项目里找不到这些参数:不是你的版本问题——截至 v7.54.0 node 类型层确实没有这套开关(tag 实测);别照 python 示例硬传。
- filler 字段的语义问题:官方只说它是随机字母数字填充;用途与计费官方未说明,遇到具体问题以官方后续文档为准,本站不推测。
下一步
- 上一批 Agents 会话设置(compaction / auto_review / spend_control)的逐项解读见《openai-python 3.42.0 与 openai-node 7.46/7.47 更新解读:Agent 压缩与审查设置、外部密钥管理与 SIP DTMF》。
- beta Agents 资源面的首次落地(托管环境、挂起与过期事件)见《OpenAI SDK 出现托管 Agent 环境资源:prewarmed 预热创建、闲置挂起与过期事件》。
- 两包版本节奏与全量发布线浏览见《OpenAI 模型更新日志(2026 持续更新)》。
关键要点
- 版本与上架核对(2026-11-10):python v3.48.0 GitHub release 2026-11-09T16:12:58Z、PyPI 16:13:48 UTC 上架、registry latest=3.48.0;node v7.54.0 GitHub release 2026-11-09T16:04:55Z(release notes 标题行记 2026-11-08)、npm 16:15:07 UTC 上架、latest=7.54.0
- 主变更在 python 侧(PR #4251,merge 于 2026-11-05、随 v3.48.0 发布):agent 会话事件流的混淆填充——session create 新增 stream_options 对象(文档串原文「Only allowed when stream is true」,StreamOptions 唯一字段 include_obfuscation、缺省 true);事件流端点新增同名查询参数(缺省 true、按连接生效)
- 事件对象新增可选 obfuscation 字段,文档串原文「Random alphanumeric padding. Present when stream obfuscation is enabled」(随机字母数字填充,stream obfuscation 开启时出现):PR diff 实测 33 个事件类型文件全部带上——覆盖会话生命周期、环境生命周期、turn 生命周期、subagent、输出增量与推理摘要、error 事件
- node 侧截至 v7.54.0 未跟进(tag 实测:events.ts 的 stream 方法签名无 include_obfuscation、sessions.ts 无 stream_options);官方 agents-api 会话事件指南(.md 变体 2026-11-10 抓取)亦无 obfuscation 字样——文档滞后于类型层,生产代码以类型层为界
- gpt-6-rosalind 进 beta Responses 模型联合(python #4257 / node #3126,两包 2026-11-08 同分钟 merge):插在 gpt-rosalind-research 之后;stable Responses 联合早在 v3.46.0/#4243(11-05 批)已收录,本批补的是 beta 命名空间
- agent scheduling API 保留(python #4255 / node #3123,merge 于 11-07):PR 正文只有一句「Retains the existing agent scheduling APIs」,两包可观测 diff 均只有代码生成统计文件(.castiron.stats.yml 的配置哈希变化),仓库内无源码级 API 变更可指认
常见问题
官方参考
- 更新openai-python v3.48.0 release notes(本站经 api.github.com 同资源核对)
- 更新openai-node v7.54.0 release notes(本站经 api.github.com 同资源核对)
- 文档openai-python PR #4251:add stream options for agent sessions
- 文档openai-python v3.48.0 session_create_params.py(StreamOptions 类型,tag 源码)
- 文档openai-python v3.48.0 event_stream_params.py(EventStreamParams 类型,tag 源码)
- 文档Agent sessions events 指南(官方文档 .md 变体,2026-11-10 抓取,无 obfuscation 字样)
相关文章
openai-python 3.49.0 与 openai-node 7.55.0:Agents 函数工具 async 设置的类型补齐
2026-11-10 发布的官方 SDK 双包:python v3.49.0 与 node v7.55.0 给 beta Agents 的函数工具形状补上既有 async 设置的类型标注——python 新增 async_ 别名字段与保留字 TypedDict,node 四个 interface 加 async 可选属性;python 同批修复 Microphone 录音的 WAV 编码。
阅读全文openai-node 7.46–7.50:五天五版,12 小时缓存与服务分层落地 SDK(2026)
openai-node 在 10 月 31 日至 11 月 3 日连发 7.46.0 到 7.50.0 五个版本,把官方 changelog 里的 12 小时 prompt caching、项目级服务分层、workload identity 等 API 侧能力落到 TypeScript 类型层。
阅读全文openai-python 3.42.0 与 openai-node 7.46/7.47 更新解读:Agent 压缩与审查设置、外部密钥管理与 SIP DTMF
openai-python v3.42.0 与 openai-node v7.46.0/v7.47.0(2026-10-31):Agents 会话新增后台压缩开关、auto_review 动作审查与 spend_control 支出上限,实验性 time_awareness 时间感知,组织级 external_keys 密钥管理面,Live sideband 的 SIP DTMF 发送命令,WebSocket 暖场与逐发送方投递回执,图像编辑 markup 蒙层。
阅读全文订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。
提交后将在新标签页打开 Buttondown 完成订阅确认。