Tools

Показать виджет

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

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

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

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

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

titlestringrequired

Краткий заголовок, отображаемый рядом со встроенным предпросмотром и в заголовке размещённого документа.

widget_codestringrequired

Автономный фрагмент SVG или HTML. Входные данные, которые после удаления начальных и конечных пробелов начинаются с <svg, отображаются в режиме SVG; все остальные входные данные обрабатываются как фрагмент HTML. Максимальная длина: 262,144 символа.

Результат инструмента содержит дескриптор предпросмотра 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. Уровень scripts, используемый по умолчанию, поддерживает интерактивные виджеты, сохраняя изоляцию источника.

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

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

Was this useful?
On this page

On this page