news 2026/9/10 11:00:11

OpenAI Agents SDK 版本策略与破坏性变更迁移指南:0.Y.Z 语义化版本与 0.1.0~0.22.0 变更日志全解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenAI Agents SDK 版本策略与破坏性变更迁移指南:0.Y.Z 语义化版本与 0.1.0~0.22.0 变更日志全解读

OpenAI Agents SDK 版本策略与破坏性变更迁移指南:0.Y.Z 语义化版本与 0.1.0~0.22.0 变更日志全解读

【免费下载链接】openai-agents-pythonA lightweight, powerful framework for multi-agent workflows项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-python

OpenAI Agents SDK(当前仓库 pyproject.toml 中版本为0.22.0)是一个面向多智能体工作流的轻量级 Python 框架。本文基于仓库官方发布文档(docs/release.md 及日文版 docs/ja/release.md),系统梳理 SDK 采用的0.Y.Z改良语义化版本规则,并逐版本解读 0.1.0 至 0.22.0 的破坏性变更与重要新特性。读完本文,你将理解每个版本号的增量含义、哪些变更会影响现有代码、如何规避破坏性变更,并掌握若干关键迁移操作(如沙箱路径授权、模型拒绝错误处理、OpenAI v3/HTTPX2 迁移等)。

版本规则:0.Y.Z改良语义化版本

与标准语义化版本(SemVer)不同,本项目使用0.Y.Z三段式版本号,开头的0明确表明 SDK 仍处于快速演进阶段。三个位置各自的增量规则如下。

Minor(Y)版本:破坏性变更的信号

任何未被标记为 beta 的公开接口发生破坏性变更(breaking changes)时,会递增Y例如,从0.0.x升级到0.1.x就可能包含破坏性变更。

迁移建议:如果你的项目不希望遇到破坏性变更,官方建议将依赖固定(pin)到0.0.x系列版本。注意,由于 SDK 采用0.Y.Z结构,0.0.x并不等同于“稳定的 1.0”,而是表示尚未出现破坏性变更的早期阶段,固定到该系列可避免 minor 版本引入的迁移成本。

Patch(Z)版本:非破坏性变更

以下非破坏性变更通过递增Z发布:

  • 缺陷修复(bug fixes)
  • 新功能(new features)
  • 私有接口的变更(changes to private interfaces)
  • beta 功能的更新(updates to beta features)

也就是说,新功能并非只出现在 minor 版本:只要不破坏公开接口,功能增强走 patch 即可。反过来,即使 minor 版本号未变,功能也在持续演进,升级 patch 版本是低风险的。

与仓库源码的对应关系

当前仓库 pyproject.toml 声明version = "0.22.0"requires-python = ">=3.10",核心依赖为openai>=3.0.0,<4pydantic>=2.12.2,<3mcp>=1.19.0,<3websockets>=15.0,<17等,这些依赖约束正是后续 0.20.0、0.21.0 版本变更在源码层面的落点。运行时版本号通过 src/agents/version.py 从importlib.metadata.version("openai-agents")读取,未安装时回退为0.0.0

破坏性变更日志全览(0.1.0 → 0.22.0)

为便于快速检索,先给出各版本的变更性质总览:

版本是否破坏性核心主题
0.22.0失败处理与数据隔离强化(输出护栏、ModelBehaviorError、OpenAIProvider 参数冲突)
0.21.0是(HTTP 层)强制openaiv3,OpenAI HTTP 集成迁移到 HTTPX2
0.20.0是(MCP 依赖)MCP Python SDK v2 支持、默认模型改为gpt-5.6-luna
0.19.0Programmatic Tool Calling、@tool装饰器别名
0.18.0Realtime 默认模型更新为gpt-realtime-2.1
0.17.0是(沙箱)本地源文件实化限制在base_dir,需extra_path_grants
0.16.0是(默认模型)默认模型改为gpt-5.4-minimax_turns=None
0.15.0是(错误语义)模型拒绝改为显式ModelRefusalError
0.14.0沙箱智能体(Sandbox Agents)beta 功能
0.13.0Realtime 默认模型gpt-realtime-1.5、MCP 资源 API
0.12.0 / 0.11.0功能新增(见官方发布说明)
0.10.0Responses API WebSocket 传输支持
0.9.0是(运行时)移除 Python 3.9 支持
0.8.0是(运行时行为)同步工具改到工作线程执行、MCP 失败处理可配置
0.7.0是(行为变更)嵌套 handoff 历史改为 opt-in、默认 reasoning.effort 变更
0.6.0是(行为变更)handoff 历史合并为单条 assistant 消息
0.5.0RealtimeRunner SIP 支持、run_sync 内部改版
0.4.0是(依赖)不再支持 openai v1.x
0.3.0是(API 迁移)Realtime API 迁移到 gpt-realtime GA 接口
0.2.0是(类型)AgentAgentBase类型收窄
0.1.0是(签名)MCPServer.list_tools()新增run_contextagent参数

下面按从新到旧的顺序逐版本详细解读。

0.22.0:失败处理与数据隔离强化(当前版本)

0.22.0 对多个既有 API 的失败处理与数据隔离进行了收紧,凡是使用显式客户端构造OpenAIProvider、同时又把organizationproject传给 provider 的应用,必须删除这些重复参数。主要变更点:

输出护栏拦截终态工具输出时的可重放性处理

当**智能体级输出护栏(agent-level output guardrail)**阻止了由终态函数工具(terminal function tool)直接产生的最终输出时:

  • 仅当校验字段允许安全重建时,SDK 才保留可重放(replay-valid)的调用/输出对;
  • 原始function_call_output载荷在会话历史、RunState以及流式结果状态中被替换为固定文本"Output withheld by an output guardrail.",含载荷的当前响应护栏元数据被清除或替换;
  • 若当前响应包含推理内容或其他不支持的形态,SDK 改为丢弃整个当前响应后缀
  • 先前已接受的轮次与护栏结果仍然可用。

相关指南见 输出护栏。

非流式 Responses 调用新增ModelBehaviorError

非流式 OpenAI Responses 调用在返回响应的终态为failedincomplete时,现在会抛出ModelBehaviorError,与既有流式终态事件处理保持一致。该行为适用于OpenAIResponsesModel以及AnyLLMModel的 Responses 路径。异常体系定义在 src/agents/exceptions.py(ModelBehaviorError描述为“模型行为异常,如调用不存在的工具或返回畸形 JSON”)。相关指南见 异常。

OpenAIProvider参数冲突校验扩展

OpenAIProvider现在当openai_clientorganizationproject组合使用时也会抛出UserError;此前已存在的与api_keybase_urlwebsocket_base_url的冲突校验保持不变。从源码可以看到,__init__中只要openai_client非空且api_key/base_url/websocket_base_url/organization/project任一非空即抛出UserError

if openai_client is not None: if any( value is not None for value in (api_key, base_url, websocket_base_url, organization, project) ): raise UserError( "Don't provide api_key, base_url, websocket_base_url, organization, or project " "if you provide openai_client" )

正确做法是在显式AsyncOpenAI客户端上配置这些值,详见 API 密钥与客户端。

RunState 检查点独立用量快照

每个RunResult.to_state()检查点现在持有独立的用量(usage)快照。恢复(resume)的结果从检查点合计值起步,并累加自身的模型调用,而不会改动源结果或同级检查点。嵌套的Agent.as_tool()恢复仍会将恢复后的用量聚合到处于活动状态的外层运行中。详见 RunState 检查点中的用量。

可视化递归展开与 clone 语义澄清

  • 智能体可视化现在会递归展开通过handoff(agent)注册的目标智能体所拥有的工具、MCP 服务器及后续 handoff,与handoffs列表中直接Agent条目的行为一致,见 生成图。
  • Agent.clone()RealtimeAgent.clone()的 API 指引现在精确描述了既有的浅拷贝(shallow-copy)行为:未被覆盖的列表属性仍指向同一列表对象;若克隆体需要独立拥有容器,请传入新列表,见 克隆/复制智能体。

0.21.0:强制openaiv3 与 HTTPX2 迁移

0.21.0 要求使用openaiv3,并将 Agents SDK 的 OpenAI HTTP 集成迁移到HTTPX2。使用默认 OpenAI 客户端的应用无需修改客户端配置,但自定义了 OpenAI HTTP 层的应用需要迁移传输层相关代码

  • 必需依赖变为openai>=3.0.0,<4(与仓库 pyproject.toml 一致);干净的核心安装使用 HTTPX2,不再将传统httpx作为直接依赖安装。
  • 默认 OpenAI provider、Voice provider、Responses WebSocket 支持、tracing exporter 以及 provider 重试归一化均改用 HTTPX2,既有公开配置与运行时行为不变。
  • AsyncOpenAI传入http_client=的应用,需要把自定义客户端、传输层、认证、事件钩子、mock 传输、超时值、URL、请求/响应及传输异常处理从httpx迁移到httpx2。若既需要 OpenAI 客户端默认配置又需要自定义 HTTP 选项,官方推荐使用 OpenAI Python SDK 的DefaultAsyncHttpx2Client(该类型正是 src/agents/models/openai_provider.py 中shared_http_client()所引用的实现)。详见 openai v3 自定义 HTTP 客户端。
  • Agents SDK不会自动把任意传统 HTTPX 对象转换为 HTTPX2;OpenAI Python SDK 的临时 legacy 客户端兼容路径需要显式安装httpx,应仅作为迁移的过渡桥梁。
  • 本地 MCP 的 HTTP 自定义继续跟随已安装的 MCP 包:MCP Python SDK v1 提供并使用传统httpx,v2 使用httpx2;普通 MCP 连接无需改动,见 MCP Python SDK v1 与 v2。
  • 公开的provider 无关测试工具现在可覆盖 Agent 模型、Sandbox 会话、Realtime 会话、Voice pipeline 工作流,且不依赖真实 provider 或进程,见 测试。

0.20.0:MCP v2 支持与默认模型更新

0.20.0 对自定义本地 MCP HTTP 传输的应用包含潜在的破坏性 MCP 依赖迁移,并更新了 SDK 默认模型。

默认模型改为gpt-5.6-luna

SDK 默认模型从gpt-5.4-mini改为gpt-5.6-luna,默认reasoning.effort="none"verbosity="low"设置不变。显式指定的智能体模型、运行级模型覆盖以及OPENAI_DEFAULT_MODEL环境变量始终优先于 SDK 默认值

Realtime 输入转写新模型

Realtime 输入转写配置现可识别gpt-transcribegpt-live-transcribegpt-realtime-whisper

  • 低延迟的gpt-live-transcribe会话支持在嵌套audio.input.transcription中配置promptkeywords及多个预期languages
  • SDK 固定的 OpenAI 客户端版本中,delay延迟/精度级别仅gpt-realtime-whisper支持;
  • 语音轮次提交后的转写或检测语言输出,请通过 WebSocket 使用gpt-transcribe
  • 显式设置audio.input.turn_detection=None可禁用自动轮次检测。

详见 输入转写设置。

本地 MCP 连接支持 MCP Python SDK v2

Agents SDK 创建的本地 MCP 连接现在支持MCP Python SDK v2,同时通过mcp>=1.19.0,<3保留 v1 兼容性(见 pyproject.toml)。SDK 自动适配常规 stdio、SSE 与 Streamable HTTP 连接;安装 MCP v2 时使用mcp.Client(mode="auto")探测最新支持协议,对旧服务器回退到传统initialize握手。若依赖解析选中 MCP v2,提供自定义httpx.Auth对象或httpx.AsyncClient工厂的应用需把这些值迁移到httpx2,或固定mcp<2以保留 v1 HTTP 栈。MCPServerStreamableHttpparams["ignore_initialized_notification_failure"] = True选项仍仅限 v1。详见 MCP Python SDK v1 与 v2。

沙箱挂载验证与凭据隔离

沙箱挂载验证现在在任何沙箱或挂载辅助副作用发生之前,拒绝不安全的凭据放置。可信应用可在不修改存储能力表的前提下,针对容器内的精确挂载路径授权“挂载级或宽泛凭据暴露”;这些授权仅在运行时生效,序列化的沙箱状态本身不会授予凭据权限。在受保护挂载边界处,SDK 返回新的脱敏异常:

  • 若源异常是精确识别的 SDK 沙箱错误、且其获批的结构化字段通过校验,则替换后保留该子类型与校验通过的安全字段;
  • 可识别的MountConfigError还能保留 SDK 生成的安全校验消息;
  • 其余情况下返回新的通用脱敏错误,且不保留 provider 控制或未经批准的消息、命令数据、备注、上下文、原因及源 traceback 状态。

详见 挂载与远程存储 与 从会话状态恢复。

重试策略与恢复前输入

  • 重试策略可检查稳定的重放安全事实,并对 provider 标记为不安全的非流式请求显式设置RetryDecision(approve_unsafe_replay=True)。该批准不会绕过中止、已发出的流式输出,或 Programmatic Tool Calling 等独立本地副作用否决,见 Runner 管理的重试。
  • 可恢复的RunState对象支持在下次模型调用前用add_input()暂存持久用户输入:暂存输入在序列化后仍保留、会经过输入护栏,并在本地会话与服务器托管会话中产生一次持久 SDK 输入;若显式批准了不安全重放,输入可能被重新发送给 provider 并重复 provider 侧工作,见 恢复前添加输入。

运行时可靠性修复

0.20.0 还统一了流式与非流式输出护栏的会话持久化、在复制与命名空间化时保留FunctionTool子类、对不支持的 Chat Completions 音频输出显式报错(不再静默完成空流)。OpenAIResponsesCompactionSession包装器会在取消到达调用方之前尝试并等待压缩前历史恢复。VoicePipeline消费者在干净运行后会收到转写会话关闭失败,而较早的轮次失败优先于较晚的关闭失败。RunState往返现在保留本地 shell 输出、已确认的计算机安全检查、默认值工具输出字段,以及在遍历字典/列表/元组时遇到的 Pydantic 模型或 dataclass 输出。MCP 转换保留自由形式对象 schema 与图像输出,音频、资源等其他原始内容块以合法 JSON 文本序列化。MCPServerManager对重叠生命周期操作做串行化处理,并对连接与清理应用有限默认超时。模型重放时,输出项在作为输入使用前会移除服务器持有的created_by元数据。

0.19.0:Programmatic Tool Calling(无破坏性变更)

本 minor 版本不引入破坏性变更,递增 minor 是为了反映 OpenAI Responses 的重要新功能领域——Programmatic Tool Calling

  • 新增ProgrammaticToolCallingTool,让支持的 OpenAI Responses 模型生成 JavaScript 来协调符合 Programmatic Tool Calling 条件的工具;支持工具级allowed_callers、来自FunctionTool实例的 structured outputs,以及与 Runner 流式、护栏、审批、会话、RunState的集成,见 Programmatic Tool Calling。
  • 新增公开的agents.decorators模块,以及作为既有@function_tool装饰器短别名的@tool(与既有护栏装饰器并存);FunctionTool实例现在也支持异步可调用对象。
  • SDK 配置在智能体、运行、模型、会话、沙箱、语音 pipeline 中一致接受类型化配置对象或字典,并校验未知配置。
  • 强化模型、工具、MCP、Realtime、会话、沙箱、tracing 的错误与诊断日志,在保留有用调试上下文的同时避免暴露原始敏感载荷。
  • 改进 AnyLLM、LiteLLM、Chat Completions 兼容性:模型重试间保留会话历史;新增对响应开始前 WebSocket 过载的 provider 重试指引,使 opt-in 的 Runner 重试策略在允许时重放失败尝试。
  • 通过VercelCloudBucketMountStrategy(实现于 src/agents/extensions/sandbox/vercel/mounts.py)新增仅 Vercel 沙箱创建时可配置的 S3 挂载:挂载会话的桶内容不参与工作区持久化,且有意不支持动态挂载变更与会话恢复。

0.18.0:Realtime 默认模型更新(无破坏性变更)

本 minor 版本仅为 Realtime 智能体默认模型更新:默认模型改为gpt-realtime-2.1,新 Realtime 配置无需额外设置即可使用最新推荐模型。

0.17.0:沙箱本地源实化边界收紧(含迁移示例)

本版本将沙箱本地源实化限制在实化的base_dir内:除非源路径被Manifest.extra_path_grants覆盖,LocalFile.srcLocalDir.src必须保持在base_dir之内base_dir是清单(manifest)应用时 SDK 进程的当前工作目录;相对本地源从该目录解析,绝对本地源必须已经位于该目录内或处于显式授权范围内。这消除了本地工件边界问题,但会影响那些有意把base_dir之外的受信主机文件/目录复制进沙箱工作区的应用。

迁移方式:在清单层使用SandboxPathGrant授予受信主机根路径,若沙箱只需读取这些文件,建议设为只读:

from pathlib import Path from agents.sandbox import Manifest, SandboxPathGrant from agents.sandbox.entries import Dir, LocalDir # This is an absolute host path outside the SDK process base_dir. TRUSTED_DOCS_ROOT = Path("/opt/my-app/docs") manifest = Manifest( extra_path_grants=( # This host root is outside the SDK process base_dir, so the manifest must grant it. SandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True), ), entries={ # No grant is needed for local sources that stay under the SDK process base_dir. "fixtures": LocalDir(src=Path("fixtures"), description="Local test fixtures."), # This entry reads from the granted host root and copies it into the sandbox workspace. "docs": LocalDir(src=TRUSTED_DOCS_ROOT, description="Trusted local documents."), # Dir creates a sandbox workspace directory; it does not read from the host filesystem. "output": Dir(description="Generated artifacts."), }, )

务必把extra_path_grants视为受信应用配置:除非应用已预先批准相应主机路径,否则不要根据模型输出或其他不可信清单输入构造授权。

0.16.0:默认模型换代与max_turns=None

本版本把 SDK 默认模型从gpt-4.1改为gpt-5.4-mini,影响所有未显式设置模型的智能体与运行。由于新默认是 GPT-5 模型,隐式默认模型设置现在包含reasoning.effort="none"verbosity="low"等 GPT-5 默认值。需要保留旧默认行为的应用,请在智能体或运行配置中显式指定模型,或设置OPENAI_DEFAULT_MODEL环境变量:

agent = Agent(name="Assistant", model="gpt-4.1")

其他变更:

  • Runner.runRunner.run_syncRunner.run_streamed现在接受max_turns=None以禁用轮次上限(源码中max_turns: int | None = DEFAULT_MAX_TURNS,见 src/agents/run.py)。
  • 沙箱工作区水合(hydration)现在拒绝包含指向归档根之外的符号链接的 tar 归档(包括绝对符号链接目标),本地、Docker 与 provider 支持的沙箱实现均适用。

0.15.0:模型拒绝改为显式ModelRefusalError

本版本把模型拒绝(refusal)从“当作空文本输出”或(对 structured outputs 而言)“运行循环重试到MaxTurnsExceeded”改为显式抛出ModelRefusalError。该异常定义于 src/agents/exceptions.py,携带refusal文本字段。

这会影响到此前假定“仅含拒绝的模型响应以final_output == ""完成”的代码。若希望在不抛异常的情况下处理拒绝,请提供model_refusal运行错误处理器:

result = Runner.run_sync( agent, input, error_handlers={"model_refusal": lambda data: data.error.refusal}, )

对使用 structured outputs 的智能体,处理器可返回与智能体输出 schema 匹配的值,SDK 会像验证其他运行错误处理器的最终输出一样校验该值。

0.14.0:Sandbox Agents 测试版(无破坏性变更)

本 minor 版本无破坏性变更,但引入了重大新 beta 功能领域——Sandbox Agents,以及跨本地、容器化、托管环境的运行时、后端与文档支持:

  • 新增以SandboxAgentManifestSandboxRunConfig为核心的 beta 沙箱运行时接口,让智能体在带文件、目录、Git 仓库、挂载、快照与恢复支持的持久隔离工作区内工作。
  • 通过UnixLocalSandboxClientDockerSandboxClient提供本地与容器化沙箱执行后端;并通过 Python 包的可选依赖 extras(见 pyproject.toml)提供 Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel 的托管 provider 集成。
  • 新增沙箱内存支持:通过渐进披露、多轮分组、可配置隔离边界以及 S3 支撑工作流在内的持久内存示例,让后续运行复用先前运行的经验。
  • 新增更全面的工作区与恢复模型:本地与合成工作区条目、S3/R2/GCS/Azure Blob Storage/S3 Files 远程存储挂载、可移植快照,以及通过RunStateSandboxSessionState或已存快照的恢复流程。
  • examples/sandbox/ 下新增大量沙箱示例与教程,覆盖使用技能、handoff、内存的编码任务、provider 特定配置,以及代码审查、数据室 QA、网站克隆等端到端工作流。
  • 核心运行时与 tracing 栈扩展了沙箱感知的会话准备、能力绑定、状态序列化、统一 tracing、prompt 缓存键默认值,以及更安全的敏感 MCP 输出脱敏。

0.13.0 与更早的 Responses 时代

0.13.0:Realtime 默认模型与 MCP 资源 API

无破坏性变更,包含值得注意的 Realtime 默认更新、新 MCP 能力与运行时稳定性修复:

  • 默认 WebSocket Realtime 模型改为gpt-realtime-1.5,新 Realtime 配置无需额外设置即可使用新模型。
  • MCPServer公开list_resources()list_resource_templates()read_resource()MCPServerStreamableHttp公开session_id,使使用 MCP Streamable HTTP 传输的会话可在重连或跨无状态 worker 恢复。
  • Chat Completions 集成可通过should_replay_reasoning_content选择重新发送既有推理内容,改善 LiteLLM/DeepSeek 等适配器的 provider 特定推理/工具调用连续性。
  • 修复多个运行时与会话边界问题:SQLAlchemySession并发首次写入、推理剥离后含孤立 assistant 消息 ID 的压缩请求、remove_all_tools()残留 MCP/推理条目、FunctionTool实例批量执行器的竞态。

0.12.0 / 0.11.0

这两个 minor 版本均无破坏性变更,主要功能新增请查阅仓库对应版本发布说明。

0.10.0:Responses API WebSocket 传输

无破坏性变更,但为 OpenAI Responses 用户引入重要新功能领域——Responses API 的WebSocket 传输支持

  • 为 OpenAI Responses 模型新增 WebSocket 传输支持(opt-in,HTTP 仍为默认传输)。
  • 新增responses_websocket_session()辅助函数 /ResponsesWebSocketSession(实现于 src/agents/responses_websocket_session.py),用于在跨多轮运行中复用共享的 WebSocket 能力 provider 与RunConfig
  • 新增覆盖流式、工具、审批与后续轮次的 WebSocket 流式示例 examples/basic/stream_ws.py。

0.9.0 至 0.1.0:早期运行时与 API 演进

0.9.0:移除 Python 3.9

Python 3.9 因该主版本三个月前已 EOL(生命周期结束)而不再受支持,请升级到更新运行时。同时,Agent#as_tool()返回值的类型提示从Tool收窄为FunctionTool,通常不会造成破坏,但若代码依赖更宽泛的联合类型则需调整。

0.8.0:同步工具线程化与 MCP 失败处理可配置

本版本有两处运行时行为变更,可能需要迁移:

  • 包装同步Python callable 的FunctionTool实例,现在通过asyncio.to_thread(...)工作线程上执行,而不再运行在事件循环线程上。若工具逻辑依赖线程本地状态或线程亲和资源,请迁移到异步工具实现,或在工具代码中显式处理线程亲和性。
  • 本地 MCP 工具失败处理现在可配置,默认行为可返回模型可见的错误输出,而不再让整个运行失败。若依赖 fail-fast 语义,请设置mcp_config={"failure_error_function": None};由于服务器级failure_error_function值会覆盖智能体级设置,请在每个具有显式处理器的本地 MCP 服务器上设置failure_error_function=None

0.7.0:嵌套 handoff 历史改为 opt-in

  • 嵌套 handoff 历史现在是opt-in(默认关闭)。若依赖 v0.6.x 的默认嵌套行为,请显式设置RunConfig(nest_handoff_history=True)
  • gpt-5.1/gpt-5.2的默认reasoning.effort从 SDK 默认配置的"low"改为"none"。若提示词或质量/成本画像依赖"low",请在model_settings中显式设置。

0.6.0:handoff 历史合并为单条消息

默认 handoff 历史不再以独立消息传递用户与 assistant 轮次,而是打包为单条 assistant 消息,为下游智能体提供简洁、可预测的总结。既有单消息 handoff 转录现在默认以精确字面文本`For context, here is the conversation so far between the user and the previous agent:`开头,后接<CONVERSATION HISTORY>块,为下游智能体提供清晰标注的总结。

0.5.0 与 0.4.0

  • 0.5.0 无可见破坏性变更:RealtimeRunner新增 SIP 协议连接处理支持;为兼容 Python 3.14 大幅修订Runner#run_sync内部逻辑。
  • 0.4.0 起不再支持 openai 包 v1.x,请配合本 SDK 使用 openai v2.x(后续 0.21.0 进一步要求 v3)。

0.3.0 至 0.1.0

  • 0.3.0:Realtime API 支持迁移到 gpt-realtime 模型及其 API 接口(GA 版本)。
  • 0.2.0:部分原本接收Agent作为参数的位置改为接收AgentBase(如 MCP 服务器的list_tools()方法签名)。这是纯类型变更,仍会收到Agent对象,只需把Agent替换为AgentBase修复类型错误。
  • 0.1.0:MCPServer.list_tools()新增run_contextagent两个参数,所有在MCPServer子类中覆写的list_tools()方法都需补充这两个参数。

迁移决策速查

  • 不想遇到破坏性变更:将依赖固定到0.0.x系列;升级前先对照本文表格确认目标版本是否标记为破坏性。
  • 正在自定义 OpenAI HTTP 层:确认是否传入http_client=,若是则迁移到httpx2或使用DefaultAsyncHttpx2Client(0.21.0)。
  • 正在自定义本地 MCP HTTP 传输:确认依赖解析是否选中 MCP v2,若是则迁移自定义httpx.Auth/httpx.AsyncClient工厂或固定mcp<2(0.20.0)。
  • 沙箱需要读取base_dir之外的主机文件:在Manifest.extra_path_grants中显式授权(0.17.0)。
  • 依赖旧默认模型行为:在智能体或运行上显式设置模型,或用OPENAI_DEFAULT_MODEL覆盖(0.16.0 / 0.20.0)。
  • 依赖拒绝即空输出的旧语义:改用model_refusal运行错误处理器(0.15.0)。
  • 依赖事件循环线程上的同步工具执行:迁移到异步工具或显式处理线程亲和性(0.8.0)。
  • 依赖 v0.6.x 的嵌套 handoff 默认行为:显式设置RunConfig(nest_handoff_history=True)(0.7.0)。

结合仓库 docs/release.md、pyproject.toml 与 src/agents/exceptions.py 等源码,可以在升级前精确核对每个版本号的语义与受影响接口,从而制定低风险的升级路径。

【免费下载链接】openai-agents-pythonA lightweight, powerful framework for multi-agent workflows项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-python

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 10:59:38

嵌入式QT车载影音系统C++源码:从工程结构到真机部署

简介&#xff1a;这是一套面向嵌入式与Qt开发学习者的车载影音系统完整工程&#xff0c;基于C在Qt/Embedded环境下实现&#xff0c;涵盖天气、视频、音乐、地图四大功能模块。天气模块通过HTTP请求并解析JSON数据展示未来5天预报&#xff1b;视频与音乐模块调用mplayer进程并支…

作者头像 李华
网站建设 2026/9/10 10:56:07

WeChatMsg 微信聊天记录备份完整指南:3 个任务导出成 Word 和 PDF

WeChatMsg 微信聊天记录备份完整指南&#xff1a;3 个任务导出成 Word 和 PDF 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendi…

作者头像 李华
网站建设 2026/9/10 10:53:40

STM32F103四路独立PWM硬件配置与同步控制实战

简介&#xff1a;本资源是一套基于STM32F10x系列的四路PWM输出完整工程实现&#xff0c;面向嵌入式初学者与电机控制开发者&#xff0c;解决多路独立PWM信号生成、频率与占空比精准调控等核心问题&#xff0c;适用于直流电机双路驱动、LED调光、电源控制等典型应用场景。压缩包…

作者头像 李华
网站建设 2026/9/10 10:53:29

化工反应釜PLC控制系统设计与组态王应用实践

1. 项目背景与核心需求解析 化工生产中的加热反应釜控制一直是工业自动化领域的经典课题。去年我在某中型化工厂参与改造的老式反应釜控制系统&#xff0c;正是采用三菱FX2N系列PLC作为主控制器。这个40kW的夹套式反应釜&#xff0c;需要精确控制反应物温度在1℃范围内&#xf…

作者头像 李华
网站建设 2026/9/10 10:53:06

Django+dlib构建本地化人脸签到系统

简介&#xff1a;本资源是一套完整的毕业设计级Web人脸识别签到系统实现方案&#xff0c;面向计算机专业本科生、研究生及Web开发初学者&#xff0c;解决传统人工考勤效率低、易代签等问题&#xff0c;适用于高校课堂管理、企业会议签到等实际场景。压缩包为ZIP格式&#xff0c…

作者头像 李华