Гайд

OpenAI DevDay 2026: гайд разработчика — что может измениться в Responses API, Structured Outputs, Tool Calling и MCP

Ключевой доклад не правит ваш репозиторий. Что можно сделать заранее — свернуть финальный вывод, аргументы инструментов, MCP inputSchema и элементы сессии в один проверяемый контракт.

OpenAI DevDay 2026 — 29 сентября в Fort Mason, Сан-Франциско. Официальная страница обещает технический день про API и инструменты разработчика: утренний ключевой доклад в прямом эфире (включая Sam Altman), дневные Breakout и записи после. Заявки закрыли в июле. 2 сентября вышла статья с десятью прогнозами по changelog — сроки Completions, Ultrafast, корпоративная идентичность, паритет Realtime; см. прогнозы DevDay 2026 API. Здесь — гайд разработчика: четыре линии, которые меняют форму вашего кода, — Responses API, Structured Outputs, Tool Calling, MCP — и файлы Schema, которые можно заморозить на этой неделе. Прогнозы ошибаются. Разнесённые контракты — нет. Факты по-прежнему из OpenAI API Changelog: Assistants навсегда закрыли 26 августа; GPT-5.6 положил Programmatic Tool Calling и мультиагентную оркестрацию в Responses; удалённый MCP, Skills, Computer Use и Tool Search почти не появляются в Chat Completions.

Как пользоваться гайдом: роль рядом с прогнозом

Прогноз отвечает на «что могут сказать со сцены». Этот гайд — на «какой JSON положить в репозиторий на этой неделе». Оба идут по одной траектории 2026, но действие читателя разное: первый — чтобы сверять ключевой доклад; второй — чтобы заморозить дерево schemas/. Не переписывайте продукт под прогноз. DevDay редко изобретает поверхность с нуля — чаще переводит превью в GA, снимает дисклеймер 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 (2 сентября)Вероятности и факты по десяти API-направлениямСверять доклад, не ломать структуру репозитория
Этот гайд (15 сентября)Четыре линии + файлы Schema, которые заморозитьНа этой неделе развести schemas/tools, output, mcp, session
Миграция AssistantsКак Thread / Run переезжают на ResponsesУбрать beta.threads; элементы сессии — как контракт
Changelog / официальные документыЧто уже GA, deprecated или previewФакты по документам, не по сводкам в соцсетях

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 всё ещё ограниченный preview. Пропишите service_tier, prompt_cache_retention и safety_identifier явными полями в JSON запроса, а не прячьте в значениях SDK по умолчанию. После доклада вы сверите счета, попадания в кэш и блокировки safety по этим ключам — не по имени модели. Скелет ниже законен сегодня и почти наверняка останется законным: функции-инструменты, удалённый 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 сказали то же: платформа гарантирует парные скобки, не верную сумму счёта.

Боль разработчика, которую любят на сцене, — вот тройка: ① потоковый Structured Output, чьи инкременты — законные частичные объекты или JSON Patch, а не обрубки строк; ② официальный способ объявить Tool Schema и Output Schema одного происхождения, чтобы не вести две почти одинаковые копии руками; ③ менее дырявое подмножество JSON Schema — меньше silent drop у oneOf / $ref. Вероятность ниже, чем у «сворачивания Completions», но если объявят, ваш потоковый парсер и каталог Schema сразу попадут под удар.

Что можно сделать независимо от сцены: держите schemas/output/ отдельно от schemas/tools/; каждую выходную Schema пишите как Draft 2020-12, strict + additionalProperties: false, полный список required; тот же файл кормите платформе и локальному валидатору. Если ошибки платформы и локальные не сходятся — сначала Diff двух Schema, потом вините модель. Объект, который отдаёте пользователю или downstream, не должен делить файл с checkpoint и с MCP arguments — см. AI Agent State.

Tool Calling: программные вызовы и мультиагентность

Вызов инструментов в 2026 — уже не «модель выбрала одну функцию, вы один раз выполнили, запихнули строку обратно». 9 июля GPT-5.6 добавил в Responses Programmatic Tool Calling, явный Prompt Cache, persisted reasoning и Multi-agent orchestration (Beta). Модель может цепочкой вызывать инструменты по программной структуре и считать дочерних агентов объектами первого класса. Типичная судьба Beta — DevDay снимает дисклеймер, добавляет SLA и лимиты.

Если выйдет в GA, оркестратору придётся заново провести границу: какие hop отдаёт платформенной orchestration, какие остаются в вашем цикле. Появится новое семейство JSON — промежуточные artifacts дочернего агента. Не складывайте их в один файл с финальным Structured Output или MCP arguments. Сейчас же ставьте 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, потом выбирает вызов. В консоли есть Connector, которые поддерживает OpenAI; 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 должны быть одного происхождения. Имена полей оболочки могут отличаться; свойства, обязательность и перечисления генерируются из одного исходного файла. Платформа не сделает runtime-проверку вашего Server. Цепочка по-прежнему parse → Schema → бизнес-правила. Удалённый MCP сам по себе — stateless JSON-RPC; бизнес-позиция живёт не на Server — см. Stateless MCP.

С A2A не мешайте. MCP — модель вызывает инструмент; A2A — поперечное делегирование агентов со своим жизненным циклом задачи и artifacts. OpenAI уже ест MCP на уровне модели; поперечное делегирование всё ещё дыра. Если DevDay кивнёт AAIF / A2A, это интероперабельность — не повод сливать Agent Card и inputSchema в один объект. См. A2A vs MCP. Когда arguments частных инструментов расходятся с MCP params.arguments, Diff смотрите на цепочку генерации, не на «срыв» модели.

Шесть JSON Schema, которые стоит заморозить сейчас

Не делайте один гигантский json на все случаи. Режьте по потребителю: модель читает форму вывода, рантайм — аргументы инструментов, MCP Server — inputSchema, оркестратор — элементы сессии и продукты дочернего агента, книга учёта — usage. Шести файлов хватает на поверхности, которые DevDay скорее всего заденет. Исходники пишите Draft 2020-12; когда генерируете оболочку OpenAI (text.format / parameters), добавляйте только упаковку — свойства не трогайте.

Файл Что фиксирует Кто читает Убьёт ли лишний параметр со сцены?
schemas/output/invoice_result.jsonФинальный объект Structured OutputResponses text.format / локальная проверкаНет. strict + additionalProperties:false по-прежнему верны
schemas/tools/searchInvoices.jsonparameters функции-инструментаResponses tools[] / parse на исполненииНет. GA-оркестрация не меняет форму входа
schemas/mcp/searchInvoices.jsonMCP Tool.inputSchema (того же происхождения, что строка выше)MCP Server и tools/callНет. Самообслуживаемый Hosted MCP меняет только способ подключения
schemas/session/conversation-item.jsonОбъединение типов Conversations / output itemЭкспорт, воспроизведение, комплаенсПоля могут вырасти; сначала заморозьте enum type
schemas/agent/child-artifact.jsonКонверт промежуточного продукта дочернего агентаМультиагентный оркестраторНет. 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. Данные не покидают машину.

Дальше: 10 прогнозов DevDay, миграция Assistants → Responses, Structured Output, MCP и JSON Schema, Stateless MCP, A2A vs MCP.

FAQ

Это официальная программа?

Нет. Официально пока только дата, площадка и технический день «API / инструменты разработчика». «Возможные изменения» по четырём линиям — инженерная оценка по changelog 2026. Зал может закрыть лишь часть — или потратить час на модели и Codex. Список Schema от программы не зависит.

Чем это отличается от прогноза 2 сентября?

Прогноз покрывает десять направлений (включая тарифы, идентичность, наблюдаемость, мультимодальность). Здесь разворачиваются только четыре линии, которые меняют форму 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-контракта, который придётся соблюдать.

До 29 сентября остановите новый код на Completions, разведите шесть Schema, оставьте провальные образцы. В день доклада читайте changelog, не треды-сводки. Когда нужно сверить форму ответа — откройте JSONVue.