Гайд
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 Output | Responses text.format / локальная проверка | Нет. strict + additionalProperties:false по-прежнему верны |
| schemas/tools/searchInvoices.json | parameters функции-инструмента | Responses tools[] / parse на исполнении | Нет. GA-оркестрация не меняет форму входа |
| schemas/mcp/searchInvoices.json | MCP 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.json | usage + 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.