---
read_when:
    - Вы хотите, чтобы агент отображал интерактивный результат в веб-чате
    - Вам нужен контракт ввода, безопасности или хранения для show_widget
sidebarTitle: Show widget
summary: Отображение автономных виджетов SVG или HTML непосредственно в веб-чате
title: Показать виджет
x-i18n:
    generated_at: "2026-07-12T11:56:56Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 2de3760ec3aba9e6551eb31129c32f74fc69a8a158f9d6bde5a823136e5eae87
    source_path: tools/show-widget.md
    workflow: 16
---

`show_widget` отображает автономный фрагмент SVG или HTML непосредственно в расшифровке чата Control UI. Встроенный Plugin Canvas предоставляет этот инструмент и размещает каждый результат как документ Canvas того же источника.

Инструмент доступен только тогда, когда исходный клиент Gateway объявляет возможность `inline-widgets`. Control UI объявляет эту возможность автоматически. Запуски в каналах, таких как Telegram и WhatsApp, не получают `show_widget`.

Передача возможностей поддерживается для встроенных серверных частей моделей, сервера приложений Codex и серверных частей моделей на основе CLI. Вызывающие стороны MCP, прошедшие аутентификацию по разрешению, и вызывающие стороны, напрямую обращающиеся к инструментам по HTTP, по-прежнему по умолчанию получают отказ, поскольку не объявляют возможности клиента.

## Использование инструмента

Агент передаёт две обязательные строки:

<ParamField path="title" type="string" required>
  Краткий заголовок, отображаемый рядом со встроенным предпросмотром и в заголовке размещённого документа.
</ParamField>

<ParamField path="widget_code" type="string" required>
  Автономный фрагмент SVG или HTML. Ввод, который после удаления пробелов по краям начинается с `<svg`, отображается в режиме SVG; весь остальной ввод обрабатывается как фрагмент HTML. Максимальная длина: 262 144 символа.
</ParamField>

Результат инструмента содержит дескриптор предпросмотра Canvas, поэтому веб-чат отображает виджет непосредственно из вызова инструмента и восстанавливает его после перезагрузки истории. В расшифровках, не отображающих предпросмотр, всё равно показывается путь к размещённому документу Canvas.

## Безопасность и хранение

Документы виджетов используют строгую политику безопасности содержимого: встроенные стили и скрипты разрешены, изображения могут использовать URL-адреса `data:`, а внешние запросы и загрузка ресурсов заблокированы. Размещайте всю разметку, стили, скрипты и данные изображений внутри `widget_code`.

В iframe всегда отсутствует `allow-same-origin`, даже если глобальный режим встраивания Control UI имеет значение `trusted`, поэтому скрипты виджета не могут получить доступ к источнику родительского приложения. Хост Canvas также передаёт документы виджетов с заголовком ответа `Content-Security-Policy: sandbox allow-scripts`, поэтому при непосредственном открытии размещённого URL-адреса виджет по-прежнему выполняется в непрозрачном источнике, а не в источнике Control UI. Изоляция браузера не мешает скрипту изменять адрес собственного iframe; отображайте только тот код виджета, который вы готовы выполнять в этом изолированном фрейме.

Iframe также использует настройки [`gateway.controlUi.embedSandbox`](/ru/web/control-ui#hosted-embeds). Уровень `scripts`, используемый по умолчанию, поддерживает интерактивные виджеты, сохраняя изоляцию источника.

Canvas хранит не более 32 виджетов на сеанс (или на агента, если сеанс недоступен). При создании следующего виджета удаляется самый старый документ в этой области.

## Связанные материалы

- [Размещённые встраивания Control UI](/ru/web/control-ui#hosted-embeds)
- [Plugin Canvas](/ru/plugins/reference/canvas)
- [Возможности клиента протокола Gateway](/ru/gateway/protocol#client-capabilities)
