OpenAI 的 Python 智能体开发工具现已支持读取外部工具的注释信息,并按整个运行的通用规则整理函数执行错误。接入外部工具的开发者可集中管理错误提示,而等待人工审批的任务会推迟缩减对话记录。

1. 工具注释信息是参考资料,而非权限

2026年10月15日发布的 0.24.0 在将 MCP 服务器的工具转换为函数工具时,也会公开服务器附带的注释。MCP 是智能体连接外部工具时使用的协议,此次提供的信息属于帮助了解工具的参考提示。

开发者可通过 FunctionTool.mcp_annotations 读取这些信息。返回值是副本,因此修改读取到的值不会影响原始数据。

非 MCP 工具或没有附加注释的工具会返回 None。服务器省略的提示也会保持缺省,因此如需默认值,开发者须应用所用 MCP 版本的默认值规则。

发行说明要求将这些信息视为不保证可信的提示。它们不授予执行许可,也不会包含在传给模型的工具定义或序列化的工具来源信息中。就像说明牌不能代替通行证一样。

2. 在整个运行层面统一定义函数错误消息

RunConfig.tool_error_formatter 是为整个运行生成工具错误消息的回调,即发生错误时调用的自定义函数。此次,通过装饰器注册为工具的函数工具,其执行异常也会经由此路径处理。

错误分类新增了 kind="tool_exception"。如果现有处理器将非拒绝类错误一律解释为工具不存在,就可能把执行中失败的函数误报为找不到该函数。

现有回调需改为直接处理新分类,或在遇到该分类时返回 None,以使用默认消息。未设置自定义处理器时的默认行为不变。

可选字段 error 会接收异常信息。若要在展示给模型的消息中加入详细内容,开发者需有意识地进行筛选处理。能接收异常信息与是否可以公开该信息是两回事。

为单个工具显式指定的处理器优先于整个运行的配置。显式指定的 None 或默认处理器也保持这一优先级。

由工厂函数创建的 MCP 工具及通过 Agent.as_tool 封装的智能体,其失败处理仍保持独立行为。超时、取消以及遵循既定数据结构(schema)的程序调用,也不会并入新的通用处理路径。

3. 等待审批时暂缓压缩记录

自动压缩是缩减并管理对话历史的处理。此次修正使其在存在待审批请求时推迟执行。这调整了处理顺序,避免在审批流程尚未结束时先行整理记录。

此次还修正了等待审批时暂存的历史,使其在恢复运行后仍得到保留。发布页面所附的审查报告称,历史记录的保存会推迟到输出安全检查阶段。因此,不能将保留审批历史理解为检查前就无条件保存。

4. 引入前检查错误分类和已保存的运行

如果现有处理器仅根据是否为拒绝来判断工具不存在,新版本就可能将执行失败也提示为“工具不存在”。要获得集中管理错误提示的便利,需先完善分类,区分工具不存在与执行失败。

不过,使用已保存运行时,还需考虑更新时间。根据发布审查报告,部分包含同名智能体的旧配置无法在新版本中读取。这些任务必须使用保存时的 SDK 和原始智能体代码完成。

发行说明未提供可执行的代码示例。

引入的判断依据不在于新功能的数量,而在于现有错误分类能否区分新输入,以及已保存任务应在哪个版本中完成。