Technical reference
Protocollo di output avanzato
L'output dell'assistente può contenere un piccolo insieme di direttive di consegna/rendering:
- campi strutturati
mediaUrl/mediaUrlsper la consegna degli allegati [[audio_as_voice]]per suggerimenti di presentazione audio[[reply_to_current]]/[[reply_to:<id>]]per i metadati di risposta[embed ...]per il rendering avanzato nella Control UI
Gli allegati multimediali remoti devono essere URL https: pubblici. http: semplice,
loopback, link-local, nomi host privati e interni vengono ignorati come direttive
per gli allegati; i fetcher multimediali lato server applicano comunque le proprie protezioni di rete.
Gli allegati multimediali locali possono usare percorsi assoluti, percorsi relativi al workspace o
percorsi relativi alla home ~/. Passano comunque attraverso la policy di lettura file dell'agente e
i controlli del tipo di media prima della consegna.
La sintassi Markdown semplice per le immagini resta testo per impostazione predefinita. I canali che mappano intenzionalmente
le risposte immagine Markdown ad allegati multimediali lo abilitano nel proprio
adattatore in uscita; Telegram lo fa affinché  possa ancora diventare una risposta multimediale.
Queste direttive sono separate. I campi multimediali strutturati e i tag di risposta/voce sono
metadati di consegna; [embed ...] è il percorso di rendering avanzato solo web.
Quando lo streaming a blocchi è abilitato, i media devono essere trasportati in campi di payload strutturati. Se lo stesso URL multimediale viene inviato in un blocco in streaming e ripetuto nel payload finale dell'assistente, OpenClaw consegna l'allegato una sola volta e rimuove il duplicato dal payload finale.
[embed ...]
[embed ...] è l'unica sintassi di rendering avanzato esposta agli agenti per la Control UI.
Esempio autochiudente:
[embed ref="cv_123" title="Status" /]Regole:
[view ...]non è più valido per il nuovo output.- Gli shortcode embed vengono renderizzati solo nella superficie del messaggio dell'assistente.
- Vengono renderizzati solo gli embed basati su URL. Usa
ref="..."ourl="...". - Gli shortcode embed HTML inline in forma di blocco non vengono renderizzati.
- L'interfaccia web rimuove lo shortcode dal testo visibile e renderizza l'embed inline.
- I media strutturati non sono un alias di embed e non devono essere usati per il rendering di embed avanzati.
Forma di rendering memorizzata
Il blocco di contenuto normalizzato/memorizzato dell'assistente è un elemento canvas strutturato:
{ "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 }}I blocchi avanzati memorizzati/renderizzati usano direttamente questa forma canvas. present_view non viene riconosciuto.