Technical reference
Протокол розширеного виводу
Вивід асистента може містити невеликий набір директив доставки/рендерингу:
MEDIA:для доставки вкладень[[audio_as_voice]]для підказок щодо подання аудіо[[reply_to_current]]/[[reply_to:<id>]]для метаданих відповіді[embed ...]для розширеного рендерингу Control UI
Віддалені вкладення MEDIA: мають бути публічними URL-адресами https:. Звичайні http:,
loopback, link-local, приватні та внутрішні імена хостів ігноруються як директиви
вкладень; серверні завантажувачі медіа все одно застосовують власні мережеві захисти.
Локальні вкладення MEDIA: можуть використовувати абсолютні шляхи, шляхи відносно робочої області або
шляхи ~/, відносні до домашнього каталогу. Перед доставкою вони все одно проходять політику читання файлів агентом і
перевірки типу медіа.
Звичайний синтаксис зображень Markdown за замовчуванням лишається текстом. Канали, які навмисно
зіставляють відповіді із зображеннями Markdown із медіавкладеннями, вмикають це у своєму вихідному
адаптері; Telegram робить це, щоб  усе ще могло стати медіавідповіддю.
Ці директиви окремі. MEDIA: і теги відповіді/голосу лишаються метаданими доставки; [embed ...] є веб-орієнтованим шляхом розширеного рендерингу.
Медіа з довірених результатів інструментів використовує той самий парсер MEDIA: / [[audio_as_voice]] перед доставкою, тому текстовий вивід інструментів усе ще може позначити аудіовкладення як голосову нотатку.
Коли ввімкнено потокове передавання блоків, MEDIA: лишається метаданими одноразової доставки для
ходу. Якщо ту саму URL-адресу медіа надіслано у потоковому блоці й повторено у фінальному
payload асистента, OpenClaw доставляє вкладення один раз і вилучає дублікат
із фінального payload.
[embed ...]
[embed ...] є єдиним агент-орієнтованим синтаксисом розширеного рендерингу для Control UI.
Приклад із самозакриттям:
[embed ref="cv_123" title="Status" /]
Правила:
[view ...]більше не є допустимим для нового виводу.- Embed-shortcode рендеряться лише на поверхні повідомлення асистента.
- Рендеряться лише embed, підкріплені URL. Використовуйте
ref="..."абоurl="...". - Блокові inline HTML embed-shortcode не рендеряться.
- Веб-UI прибирає shortcode з видимого тексту й рендерить embed inline.
MEDIA:не є псевдонімом 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 не розпізнається.