Technical reference

Protocol voor rijke uitvoer

Assistentuitvoer draagt leverings- en renderinstructies over via enkele specifieke kanalen:

  • Gestructureerde mediaUrl- / mediaUrls-velden voor het leveren van bijlagen.
  • [[audio_as_voice]] voor aanwijzingen voor audioweergave.
  • [[reply_to_current]] / [[reply_to:<id>]] voor antwoordmetadata.
  • [embed ...] voor rijke rendering in de Control-UI.

Gestructureerde mediavelden en [[...]]-tags zijn leveringsmetadata. [embed ...] is het afzonderlijke, uitsluitend voor het web bestemde pad voor rijke rendering; het is geen media-alias.

Mediabijlagen

Externe bijlagen moeten openbare https:-URL's zijn. http:-, loopback-, link-local-, privé- en interne hostnamen worden geweigerd als bijlage-instructies; mediaservers die inhoud ophalen, passen daarbovenop hun eigen netwerkbeveiligingen toe.

Lokale bijlagen accepteren absolute paden, werkruimterelatieve paden of thuisdirectoryrelatieve ~/-paden. Vóór levering worden ze nog steeds getoetst aan het bestandsleesbeleid van de agent en aan controles van het mediatype.

Normale Markdown-afbeeldingssyntaxis (![alt](url)) blijft standaard tekst. Kanalen die Markdown-afbeeldingen als media-antwoorden willen behandelen, schakelen dit in via hun uitgaande adapter; Telegram doet dit, zodat ![alt](url) een mediabijlage wordt.

Wanneer blokstreaming is ingeschakeld, moeten media via gestructureerde payloadvelden worden meegestuurd. Als dezelfde media-URL in een gestreamd blok en opnieuw in de definitieve payload van de assistent voorkomt, levert OpenClaw deze eenmaal en verwijdert het duplicaat uit de definitieve payload.

[embed ...]

[embed ...] is de enige agentgerichte syntaxis voor rijke rendering in de Control-UI. Zelfsluitend voorbeeld:

text
[embed ref="cv_123" title="Status" /]

Regels:

  • [view ...] is niet langer geldig voor nieuwe uitvoer.
  • Shortcodes voor insluitingen worden alleen in het assistentberichtoppervlak gerenderd.
  • Alleen insluitingen met een URL als bron worden gerenderd; gebruik ref="..." of url="...".
  • Inline HTML-shortcodes voor insluitingen in blokvorm worden niet gerenderd.
  • De web-UI verwijdert de shortcode uit de zichtbare tekst en rendert de insluiting inline.

Opgeslagen renderstructuur

Het genormaliseerde/opgeslagen inhoudsblok van de assistent is een gestructureerd canvas-item:

json
{  "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  }}

present_view wordt niet herkend; opgeslagen/gerenderde rijke blokken gebruiken altijd deze canvas-structuur.

Gerelateerd

Was this useful?
On this page

On this page