Technical reference
Protokół bogatego wyjścia
Dane wyjściowe asystenta mogą zawierać mały zestaw dyrektyw dostarczania/renderowania:
- ustrukturyzowane pola
mediaUrl/mediaUrlsdo dostarczania załączników [[audio_as_voice]]dla wskazówek prezentacji audio[[reply_to_current]]/[[reply_to:<id>]]dla metadanych odpowiedzi[embed ...]dla bogatego renderowania w Control UI
Zdalne załączniki multimedialne muszą być publicznymi adresami URL https:. Zwykłe http:,
loopback, link-local, prywatne i wewnętrzne nazwy hostów są ignorowane jako dyrektywy
załączników; pobierające multimedia komponenty po stronie serwera nadal egzekwują własne zabezpieczenia sieciowe.
Lokalne załączniki multimedialne mogą używać ścieżek bezwzględnych, ścieżek względnych wobec workspace albo
ścieżek względnych wobec katalogu domowego ~/. Przed dostarczeniem nadal przechodzą przez politykę odczytu plików agenta oraz
kontrole typu multimediów.
Zwykła składnia obrazów Markdown domyślnie pozostaje tekstem. Kanały, które celowo
mapują odpowiedzi z obrazami Markdown na załączniki multimedialne, włączają to w swoim adapterze
wyjściowym; Telegram robi to, aby  nadal mogło stać się odpowiedzią multimedialną.
Te dyrektywy są oddzielne. Ustrukturyzowane pola multimediów oraz tagi odpowiedzi/głosu są
metadanymi dostarczania; [embed ...] jest ścieżką bogatego renderowania wyłącznie dla webu.
Gdy strumieniowanie bloków jest włączone, multimedia muszą być przenoszone w ustrukturyzowanych polach ładunku. Jeśli ten sam URL multimediów zostanie wysłany w strumieniowanym bloku i powtórzony w końcowym ładunku asystenta, OpenClaw dostarcza załącznik raz i usuwa duplikat z końcowego ładunku.
[embed ...]
[embed ...] to jedyna składnia bogatego renderowania dostępna dla agenta w Control UI.
Przykład samozamykający:
[embed ref="cv_123" title="Status" /]Reguły:
[view ...]nie jest już prawidłowe dla nowych danych wyjściowych.- Shortcodes osadzania renderują się wyłącznie w powierzchni wiadomości asystenta.
- Renderowane są tylko osadzenia oparte na URL. Użyj
ref="..."albourl="...". - Blokowe shortcodes osadzania HTML inline nie są renderowane.
- Webowy interfejs użytkownika usuwa shortcode z widocznego tekstu i renderuje osadzenie inline.
- Ustrukturyzowane multimedia nie są aliasem osadzenia i nie powinny być używane do bogatego renderowania osadzeń.
Przechowywany kształt renderowania
Znormalizowany/przechowywany blok treści asystenta jest ustrukturyzowanym elementem 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 }}Przechowywane/renderowane bloki bogate używają bezpośrednio tego kształtu canvas. present_view nie jest rozpoznawane.