Дайджесты новостей
Графическая иллюстрация экосистемы OpenAI Apps SDK на базе протокола MCP с интерактивными графическими виджетами внутри диалогового интерфейса.

OpenAI представила Apps SDK на базе MCP и экосистему AgentKit

Попробуйте описать расположение комнат в квартире словами по телефону: вы потратите десять минут, но собеседник представит что-то свое. До сих пор диалог с ChatGPT строился именно так: даже при идеальных расчетах пользователь видел лишь простыню текста или сухой JSON. На конференции DevDay OpenAI объявила о тектоническом сдвиге: компания представила Apps SDK, превращающий чат в платформу графических приложений поверх открытого протокола Model Context Protocol (MCP).

Интерфейс вместо текста: почему OpenAI выбрала открытый стандарт MCP

Главная новость для индустрии — выбор фундамента. Вместо создания закрытой системы плагинов OpenAI поддержала открытый протокол Model Context Protocol (MCP), разработанный инженерами Anthropic. Это редкий пример конвергенции конкурентов: теперь сервер инструментов одинаково успешно работает и в Claude Desktop, и в ChatGPT.

Apps SDK идет дальше передачи данных: модель возвращает изолированный веб-интерфейс на HTML, CSS и JavaScript, рендерящийся во встроенном фрейме инлайн или на весь экран. В числе первых партнеров возможности показали Coursera с интерактивным плеером, Canva с редактированием макетов и Zillow с картой недвижимости.

Для монетизации представлен протокол Checkout Protocol с авторизацией OAuth: оформить подписку или оплатить товар можно прямо в чате без перехода на внешние сайты.

Архитектура Apps SDK: как связать бэкенд-инструмент с динамическим UI

Для создания приложения разработчик разворачивает MCP-сервер, объявляет инструмент вызова и привязывает веб-ресурс с MIME-типом text/html;profile=mcp-app.

Пример сервиса поиска недвижимости на TypeScript:

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "property-showcase", version: "1.0.0" },
  { capabilities: { tools: {}, resources: {} } }
);

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{
    name: "search_homes",
    description: "Поиск квартир с картой",
    inputSchema: {
      type: "object",
      properties: { city: { type: "string" } },
      required: ["city"]
    }
  }]
}));

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  const { city } = req.params.arguments as { city: string };
  return {
    content: [{ type: "text", text: `Найдено 8 объектов в ${city}. Открываю карту.` }],
    _meta: { ui: { resourceUri: `ui://property-showcase/map?city=${encodeURIComponent(city)}`, displayMode: "inline" } }
  };
});

server.setRequestHandler(ReadResourceRequestSchema, async (req) => ({
  contents: [{
    uri: req.params.uri,
    mimeType: "text/html;profile=mcp-app",
    text: `<div class="card" onclick="chooseHome('apt-12')"><h3>Квартира у парка</h3><p>Нажмите для выбора</p></div>`
  }]
}));

await server.connect(new StdioServerTransport());

Сервер передает адрес ресурса в _meta.ui, и чат отрисовывает интерактивный компонент.

Двусторонний диалог: как виджет обменивается контекстом с языковой моделью

В отличие от статической картинки, приложение внутри ChatGPT связано с нейросетью двусторонним мостом через клиентский скрипт window.openai:

window.addEventListener("DOMContentLoaded", () => {
  if (window.openai) {
    window.openai.onContextUpdate((context) => {
      console.log("Новые параметры фильтрации от модели:", context);
    });
  }
});

function chooseHome(propertyId) {
  if (window.openai) {
    window.openai.sendEvent({
      type: "item_selected",
      payload: { id: propertyId, timestamp: Date.now() }
    });
  }
}

Когда пользователь кликает по объекту на карте, модель мгновенно получает событие и готова сразу ответить на уточняющий вопрос об этой квартире.

Набор инструментов AgentKit и скрытые риски корпоративных коннекторов

Вместе с Apps SDK дебютировала экосистема AgentKit: визуальный конструктор цепочек Agent Builder, библиотека встраиваемых виджетов ChatKit, реестр корпоративных подключений Connectors (к Google Drive, Slack, SQL) и платформа тестирования Evals.

Подключение баз данных несет угрозу «смертельной триады»: если агент читает закрытые корпоративные файлы, обрабатывает открытые веб-страницы и имеет сетевой выход, скрытая промпт-инъекция способна спровоцировать утечку данных. Разработчикам предстоит балансировать между удобством коннекторов и ограничением сетевых прав. Принятие MCP делает этот стандарт единым для всей индустрии.