Technical reference
Protokół rozbudowanych danych wyjściowych
Dane wyjściowe asystenta mogą zawierać mały zestaw dyrektyw dostarczania/renderowania:
MEDIA:do dostarczania załączników[[audio_as_voice]]do wskazówek prezentacji audio[[reply_to_current]]/[[reply_to:<id>]]do metadanych odpowiedzi[embed ...]do bogatego renderowania w Control UI
Zdalne załączniki MEDIA: muszą być publicznymi URL-ami https:. Zwykłe http:,
loopback, link-local, prywatne i wewnętrzne nazwy hostów są ignorowane jako dyrektywy
załączników; serwerowe mechanizmy pobierania mediów nadal wymuszają własne zabezpieczenia sieciowe.
Lokalne załączniki MEDIA: mogą używać ścieżek bezwzględnych, ścieżek względnych względem obszaru roboczego albo
ścieżek względnych względem katalogu domowego ~/. Przed dostarczeniem nadal przechodzą przez politykę odczytu plików agenta oraz
sprawdzanie typu medió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 wychodzącym
adapterze; Telegram robi to, aby  nadal mogło stać się odpowiedzią multimedialną.
Te dyrektywy są oddzielne. MEDIA: oraz znaczniki odpowiedzi/głosu pozostają metadanymi dostarczania; [embed ...] jest ścieżką bogatego renderowania tylko dla webu.
Zaufane media z wyników narzędzi używają tego samego parsera MEDIA: / [[audio_as_voice]] przed dostarczeniem, więc tekstowe dane wyjściowe narzędzi nadal mogą oznaczyć załącznik audio jako notatkę głosową.
Gdy strumieniowanie blokowe jest włączone, MEDIA: pozostaje metadanymi jednokrotnego dostarczenia dla
tury. Jeśli ten sam URL medió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.- Shortcode osadzenia renderują się tylko na powierzchni wiadomości asystenta.
- Renderowane są tylko osadzenia oparte na URL-ach. Użyj
ref="..."albourl="...". - Blokowe shortcode osadzenia z osadzonym HTML-em nie są renderowane.
- Web UI usuwa shortcode z widocznego tekstu i renderuje osadzenie inline.
MEDIA:nie jest aliasem osadzenia i nie powinno być używane do bogatego renderowania osadzeń.
Zapisany kształt renderowania
Znormalizowany/zapisany blok treści asystenta to ustrukturyzowany element 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
}
}
Zapisane/renderowane bloki bogate używają bezpośrednio tego kształtu canvas. present_view nie jest rozpoznawane.