Technical reference
Протокол расширенного вывода
Вывод ассистента может содержать небольшой набор директив доставки/рендеринга:
- структурированные поля
mediaUrl/mediaUrlsдля доставки вложений [[audio_as_voice]]для подсказок представления аудио[[reply_to_current]]/[[reply_to:<id>]]для метаданных ответа[embed ...]для расширенного рендеринга в Control UI
Удаленные медиа-вложения должны быть публичными URL https:. Обычные http:,
loopback, link-local, приватные и внутренние имена хостов игнорируются как директивы
вложений; серверные загрузчики медиа по-прежнему применяют собственные сетевые защиты.
Локальные медиа-вложения могут использовать абсолютные пути, пути относительно рабочей области или
пути относительно домашнего каталога ~/. Перед доставкой они все равно проходят через политику чтения файлов агентом и
проверки типа медиа.
Обычный синтаксис изображений Markdown по умолчанию остается текстом. Каналы, которые намеренно
сопоставляют Markdown-ответы с изображениями с медиа-вложениями, включают это в своем исходящем
адаптере; Telegram делает это, чтобы  все еще мог стать медиа-ответом.
Эти директивы независимы. Структурированные поля медиа и теги ответа/голоса являются
метаданными доставки; [embed ...] — это веб-ориентированный путь расширенного рендеринга.
Когда включена потоковая передача блоков, медиа должны передаваться в структурированных полях полезной нагрузки. Если один и тот же URL медиа отправлен в потоковом блоке и повторен в финальной полезной нагрузке ассистента, OpenClaw доставляет вложение один раз и удаляет дубликат из финальной полезной нагрузки.
[embed ...]
[embed ...] — единственный обращенный к агенту синтаксис расширенного рендеринга для Control UI.
Самозакрывающийся пример:
[embed ref="cv_123" title="Status" /]Правила:
[view ...]больше не действителен для нового вывода.- Короткие коды embed рендерятся только в поверхности сообщения ассистента.
- Рендерятся только embed-элементы, основанные на URL. Используйте
ref="..."илиurl="...". - Встроенные HTML-короткие коды embed в блочной форме не рендерятся.
- Веб-интерфейс удаляет короткий код из видимого текста и рендерит embed-элемент встроенно.
- Структурированное медиа не является псевдонимом embed и не должно использоваться для расширенного embed-рендеринга.
Сохраненная форма рендеринга
Нормализованный/сохраненный блок содержимого ассистента — это структурированный элемент canvas:
{ "type": "canvas", "preview": { "kind": "canvas", "surface": "assistant_message", "render": "url", "viewId": "cv_123", "url": "/__openclaw__/canvas/documents/cv_123/index.html", "title": "Status", "preferredHeight": 320 }}Сохраненные/отрендеренные расширенные блоки используют эту форму canvas напрямую. present_view не распознается.