指南

OpenAI DevDay 2026 开发者指南:Responses API、Structured Outputs、Tool Calling 与 MCP 可能有哪些新变化?

主题演讲不会替你改仓库。能提前做的,是把最终输出、工具入参、MCP inputSchema 和会话 item 收成同一套可校验契约。

OpenAI DevDay 2026 定在 9 月 29 日旧金山 Fort Mason。官方活动页只承诺 API 与开发者工具技术场:上午主题演讲直播(含 Sam Altman),下午 Breakout,会后补录像。申请已在 7 月关闭。9 月 2 日那篇按 changelog 列了 10 条预测——Completions 时间表、Ultrafast、企业身份、Realtime 打通,见 DevDay 2026 API 预测。本篇换成开发者手册:只盯四条会改你代码形状的线——Responses API、Structured Outputs、Tool Calling、MCP——以及你现在就能冻结的 Schema 文件。预测会错;拆开的契约不会错。已落地事实仍以 OpenAI API Changelog 为准:Assistants 已于 8 月 26 日永久下线;GPT-5.6 把 Programmatic Tool Calling 和多 Agent 编排放进 Responses;远程 MCP、Skills、Computer Use、Tool Search 几乎只出现在 Responses,而不是 Chat Completions。

这篇指南怎么用:和预测文的分工

预测文回答「舞台上可能讲什么」。本篇回答「你这周该把哪些 JSON 写进仓库」。两篇共用同一条 2026 轨迹,但读者动作不同:前者用来对照主题演讲;后者用来冻结 schemas/ 目录。不要为了预测重写产品。DevDay 很少从零发明一条 API,更多是把预览、Beta、企业白名单收成默认产品。

先把「已经是事实」和「可能宣布」分开。已经是事实的:Responses 是 Agent 能力的主路径;Structured Outputs 用 text.format.json_schema + strict 锁最终对象;函数工具与远程 MCP 可以挂在同一次 responses.create;MCP 默认会先要审批(mcp_approval_request),也可用 require_approval / allowed_tools 收窄。这些不是预测。可能宣布的,是关停日期、GA 摘牌、自助开关和「两份 Schema 允许声明同源」。

有用的读法不是「会不会出 GPT-5.7」,而是:哪条请求面会被宣布为唯一推荐路径?哪份 JSON Schema 会从模型建议变成平台强制?哪层会话状态会从你自己的数据库,迁到官方 Conversations?对照如下。

文档 回答什么 你现在做什么
DevDay 预测文(9 月 2 日)10 个 API 方向的概率与证据对照主题演讲,不改仓库结构
本指南(9 月 15 日)四条线 + 该冻结的 Schema 文件本周拆 schemas/tools、output、mcp、session
Assistants 迁移文Thread / Run 怎么搬到 Responses清掉 beta.threads,会话 item 当契约
Changelog / 官方文档已 GA、已弃用、已预览事实以文档为准,不以社交媒体摘要为准

Responses API:可能收口的请求面

Assistants 已经死了。Chat Completions 还活着,但 2026 年的新能力几乎不再往那里加:远程 MCP、Tool Search、Computer Use、Skills、hosted shell、WebSocket Responses、phase(commentary / final_answer)都挂在 Responses。可复用 Prompt 从未进入 Chat Completions。这不是口味问题,是平台在把「能做 Agent 的面」收成一条。对象怎么从 Assistant / Thread / Run 迁过来,见 Assistants → Responses 迁移。

DevDay 最可能动刀的不是「再多一个 Responses 参数」,而是三件事里的若干件:给 Chat Completions 一个明确冻结或关停日期;把 Conversations 收成跨文本 Responses 与 Realtime 的统一会话原语;把图像、转录、视频更多以内置 tool 的形式写进同一条 output item 时间线。对你意味着:新封装只认 input / output item、tools[]、text.format、previous_response_id 或 conversation。不要再维护两套 tools[] 形状。

请求元数据也会被收口。Fast 已替 Priority,Ultrafast 仍是有限预览;service_tier、prompt_cache_retention、safety_identifier 现在就该写成显式字段,而不是埋在 SDK 默认值里。主题演讲后你要对得上账单、缓存命中和安全拦截,靠的是这些键,不是模型名字。下面这份骨架今天合法,DevDay 后大概率仍合法:函数工具、远程 MCP 与 Structured Output 走同一条 responses.create。

{
  "model": "gpt-5.6-sol",
  "input": "Extract the paid invoice and call billing tools",
  "tools": [
    {
      "type": "function",
      "name": "searchInvoices",
      "strict": true,
      "parameters": {
        "type": "object",
        "properties": {
          "invoiceId": { "type": "string" },
          "status": {
            "type": "string",
            "enum": ["draft", "sent", "paid", "void"]
          }
        },
        "required": ["invoiceId", "status"],
        "additionalProperties": false
      }
    },
    {
      "type": "mcp",
      "server_label": "billing",
      "server_url": "https://mcp.example.com",
      "allowed_tools": ["searchInvoices", "createCreditNote"],
      "require_approval": "never"
    }
  ],
  "text": {
    "format": {
      "type": "json_schema",
      "name": "invoice_result",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "invoiceId": { "type": "string" },
          "total": { "type": "number" },
          "currency": { "type": "string", "enum": ["USD", "CNY", "EUR"] },
          "status": { "type": "string", "enum": ["paid", "open"] }
        },
        "required": ["invoiceId", "total", "currency", "status"],
        "additionalProperties": false
      }
    }
  },
  "service_tier": "fast",
  "safety_identifier": "billing-user-42"
}

Structured Outputs:形状、流式与同源 Schema

今天的 Structured Outputs 能锁最终对象:Responses 里放在 text.format,规则与 Chat Completions 的 response_format 相同,只是外壳字段名不同。官方卖点是类型安全、可检测的拒绝、少靠「请一定输出 JSON」这种提示词。它不卖的是语义:锁形状不等于锁业务含义。半截流式字符串、$ref 被静默丢掉、超大 Schema、动态枚举,仍是 2026 年联调里最常见的坑。站内 Structured Output 教程 与 AI 生成 JSON 错误指南 写过同一句话:平台保证括号匹配,不保证发票总额算对。

DevDay 最「像会讲」的开发者痛点,是这三件套:① 流式 Structured Output,增量是合法部分对象或 JSON Patch,而不是残缺字符串;② Tool Schema 与 Output Schema 允许声明同源,不再手维护两份几乎一样的文件;③ 更完整的 JSON Schema 子集,oneOf / $ref 少一些 silent drop。概率低于「Completions 收口」,但一旦宣布,你的流式解析器和 Schema 目录会立刻被点名。

你现在能做的与舞台无关:把 schemas/output/ 和 schemas/tools/ 分开;每份输出 Schema 用 Draft 2020-12,strict + additionalProperties: false,required 写全;用同一份文件喂平台和本地校验器。平台报错和本地报错对不上,先 Diff 两份 Schema,再怀疑模型。最终给用户或下游系统的答案,不要和 checkpoint、不要和 MCP arguments 共用一个文件——见 AI Agent State。

Tool Calling:可编程调用与多 Agent

2026 年的工具调用已经不是「模型选一个函数、你跑一次、把字符串塞回去」。7 月 9 日 GPT-5.6 把 Programmatic Tool Calling、显式 Prompt Cache、persisted reasoning,以及 Multi-agent orchestration(Beta)写进 Responses。意思是:模型可以按程序结构连续调工具,也可以把子 Agent 当一等对象。Beta 的典型命运是 DevDay 摘免责声明、补 SLA 与限额。

若转 GA,你的编排器要重新划边界:哪些 hop 交给平台 orchestration,哪些仍留在自建循环。JSON 会多出一类——子 Agent 的中间 artifact。不要把它和最终 Structured Output、MCP arguments 塞进同一个 schema 文件。每条工具日志现在就该打 correlationId / runId / callId,GA 之后才好对账。函数工具的 arguments 仍常是 JSON 字符串:执行前必须 JSON.parse + Schema,与 MCP tools/call 是同一类问题。

Tool Search、Skills、hosted shell 已经只挂在 Responses。DevDay 若把「先搜工具再调用」收成默认,你会后悔把 80 个函数一次性塞进 tools[]。先按领域拆工具包,allowed_tools 式白名单在函数工具侧也先用起来。参数 Schema 保持小、枚举短、禁止 additionalProperties。细节对照 MCP 与 JSON Schema。

MCP:远程工具、审批与 Connector

GPT-5.5 起 Responses 就能挂远程 MCP:模型先 mcp_list_tools,再决定调哪一个。控制台有 OpenAI 维护的 Connector;5 月 19 日的 Secure MCP Tunnel 让 ChatGPT、Codex、Responses、AgentKit 经客户侧 tunnel-client 打到内网,但目前偏企业开通。默认行为值得记:平台会在数据交给远端之前要你审批,输出里出现 mcp_approval_request;信任之后可把 require_approval 设成部分工具或 never。工具太多时用 allowed_tools,否则光是 list 就会烧上下文。

缺口很清楚:普通项目仍难「一键挂私有 MCP」,Connector 目录也不够覆盖自建工具。预测文把「Hosted MCP / Connector 自助化、Tunnel 下沉到项目开关」标成高概率。本指南只要求你做一件与概率无关的事:MCP Tool.inputSchema 与模型 tools[].parameters 同源。外壳字段名可以不同,属性、必填、枚举必须同一份源文件生成。平台不会替 Server 做执行期校验。校验链仍然是 parse → Schema → 业务规则。远程 MCP 本身是无状态 JSON-RPC,业务机位不在 Server 上——见 Stateless MCP。

和 A2A 不要混。MCP 是模型调工具;A2A 是 Agent 横向委托,任务有自己的生命周期和 artifacts。OpenAI 已经在模型层吃 MCP,横向委托仍是空档。DevDay 若点一句 AAIF / A2A,也只是互操作,不是让你把 Agent Card 和 inputSchema 写成一个对象。对照 A2A vs MCP。私有工具的 arguments 与 MCP params.arguments 对不上时,用 Diff 看的是生成链路,不是模型「抽风」。

提前冻结的 6 份 JSON Schema

不要做一个巨大 json 走天下。按消费者拆文件:模型看输出形状,运行时看工具入参,MCP Server 看 inputSchema,编排器看会话 item 和子 Agent 产物,账本看用量。六份就够覆盖 DevDay 最可能碰的面。源文件用 Draft 2020-12;生成 OpenAI 外壳(text.format / parameters)时只加包装,不改属性。

文件 锁什么 谁读 舞台多一个参数会不会作废
schemas/output/invoice_result.json最终 Structured Output 对象Responses text.format / 本地校验不会。strict + additionalProperties:false 仍然对
schemas/tools/searchInvoices.json函数工具 parametersResponses tools[] / 执行层 parse不会。GA 编排也不改入参形状
schemas/mcp/searchInvoices.jsonMCP Tool.inputSchema(与上一份同源)MCP Server 与 tools/call不会。自助 Hosted MCP 只改开通方式
schemas/session/conversation-item.jsonConversations / output item 联合类型你的导出、回放、合规字段可能增多;type 枚举先冻结
schemas/agent/child-artifact.json子 Agent 中间产物信封多 Agent 编排器不会。Beta→GA 更需要独立文件
schemas/obs/usage-record.jsonusage + cache + safety + request_id账本与对账不会。新仪表盘要能对上你已有的键

建议在仓库里放一份索引,声明哪两份同源、哪一份只做包装。索引本身也是普通 JSON,方便评审和 Diff:

{
  "schemaVersion": "1.0",
  "pack": "devday-2026-prep",
  "files": [
    {
      "id": "so.invoice_result",
      "path": "schemas/output/invoice_result.json"
    },
    {
      "id": "fn.searchInvoices.parameters",
      "path": "schemas/tools/searchInvoices.json"
    },
    {
      "id": "mcp.searchInvoices.inputSchema",
      "path": "schemas/mcp/searchInvoices.json",
      "sameOriginAs": "fn.searchInvoices.parameters"
    },
    {
      "id": "conv.item",
      "path": "schemas/session/conversation-item.json"
    },
    {
      "id": "agent.artifact",
      "path": "schemas/agent/child-artifact.json"
    },
    {
      "id": "obs.usage",
      "path": "schemas/obs/usage-record.json"
    }
  ]
}

联调顺序固定三步,和模型是否在 DevDay 上「更聪明」无关:parse → Schema → 业务规则。半截 JSON、Schema 报错、MCP arguments 漂移,各留一条真实失败样本。演讲当天用来对照新行为,而不是对着社交媒体摘要猜字段。

浏览器里即可完成:JSON 格式化看 parse;JSON Schema 校验对 output 与 tools;JSON Diff对比模型 arguments 和 MCP params.arguments。数据不离开本机。

延伸阅读:DevDay 10 条预测、Assistants → Responses 迁移、Structured Output、MCP 与 JSON Schema、Stateless MCP、A2A vs MCP。

常见问题 FAQ

这些是官方议程吗?

不是。官方目前只公布日期、地点和「API / 开发者工具」技术场。四条线上的「可能变化」是按 2026 changelog 做的工程判断,现场可能只兑现其中几条,也可能把时间花在模型和 Codex。Schema 清单不依赖议程。

和 9 月 2 日那篇预测有什么不同?

预测文覆盖 10 个方向(含层级、身份、可观测性、多模态)。本篇只展开会改 JSON 形状的四条线,并给出六份该冻结的文件。两篇对照着读:预测用来盯舞台,指南用来改仓库。

还没迁出 Chat Completions,来得及吗?

来得及,而且现在迁的成本低于「宣布弃用日之后一周」。先迁工具调用和 Structured Output,会话层再接 Conversations。不要等主题演讲才建封装。迁移步骤见 Assistants 文——Completions 封装可以按同一套 item 模型改。

预测错了,提前准备的 Schema 会不会白做?

不会。把 output、tools、MCP、session、artifact、usage 分文件,是 Responses、MCP、Realtime 今天就需要的卫生习惯。舞台上多一个参数,不会让 additionalProperties:false 变成错的。

总结与下一步

DevDay 2026 对开发者真正重要的,不是再记一个模型名字,而是平台会不会把 Responses、Structured Outputs、Tool Calling、MCP 收成默认栈。四条线指向同一件事:少几条平行 API,多一份必须遵守的 JSON 契约。

9 月 29 日前,把 Completions 新代码停掉,把六份 Schema 拆开,把失败样本留好。演讲当天对照 changelog,而不是对照摘要帖。需要核对应答形状时,打开 JSONVue 即可。