Mainstream messaging
Matrix-presentatiemetadata
OpenClaw voegt genormaliseerde MessagePresentation-metadata toe aan uitgaande Matrix-m.room.message-gebeurtenissen onder de inhoudssleutel com.openclaw.presentation.
Standaard Matrix-clients blijven de platte tekst body weergeven. Clients die OpenClaw ondersteunen, kunnen de gestructureerde metadata lezen en systeemeigen UI weergeven, zoals knoppen, selectielijsten, contextregels en scheidingslijnen.
Gebeurtenisinhoud
{ "msgtype": "m.text", "body": "Selecteer model\n\nKies model:\n- DeepSeek", "com.openclaw.presentation": { "version": 1, "type": "message.presentation", "title": "Selecteer model", "tone": "info", "blocks": [ { "type": "select", "placeholder": "Kies model", "options": [ { "label": "DeepSeek", "value": "/model deepseek/deepseek-chat" } ] } ] }}versionis de versie van het metadataschema; de huidige versie is1.typeis een stabiele discriminator, altijd"message.presentation". De Matrix-adapter verzendt alleen payloads met precies deze versie en dit type; clients moeten eveneens onbekende versies negeren die ze niet veilig kunnen interpreteren, evenals onbekende waarden voortypeen onbekende bloktypen.titleentone(info,success,warning,danger,neutral) zijn optionele aanwijzingen.- Knoppen en selectieopties kunnen naast de verouderde tekenreeks
valueeen getypeerdeaction({ "type": "command", "command": "/..." }of{ "type": "callback", "value": "..." }) bevatten. Geef de voorkeur aanactionwanneer beide aanwezig zijn.
Terugvalgedrag
OpenClaw geeft altijd een leesbare terugvaltekst in platte tekst weer in body. De gestructureerde metadata is aanvullend en mag niet vereist zijn voor elementaire interoperabiliteit met Matrix.
Regels voor terugvalweergave:
- Inhoud van
title,textencontextwordt als platte regels weergegeven. - Knoppen met een
command-actie worden weergegeven alslabel: `/command`, zodat de opdracht kopieerbaar blijft. Knoppen met eencallback-actie of alleen een verouderdevalueworden uitsluitend met hun label weergegeven, zodat ondoorzichtige callbackwaarden privé blijven; uitgeschakelde knoppen worden altijd uitsluitend met hun label weergegeven. URL- en webappknoppen worden weergegeven alslabel: URL. - Selectieblokken geven de tijdelijke aanduiding (of
Options:) weer als kop, gevolgd door optieregels met alleen labels. - Als niets wordt weergegeven, bijvoorbeeld bij een presentatie met alleen een scheidingslijn, valt de hoofdtekst terug op
---.
Niet-ondersteunde clients blijven de terugvaltekst weergeven. Clients die OpenClaw ondersteunen, kunnen voor de weergave de voorkeur geven aan de gestructureerde metadata, terwijl ze de terugvaltekst behouden voor kopiëren, zoeken, meldingen en toegankelijkheid.
Ondersteunde blokken
De uitgaande Matrix-adapter biedt systeemeigen ondersteuning voor:
buttonsselectcontextdivider
text-blokken worden altijd ondersteund via de terugvaltekst. Behandel alle blokken als presentatieaanwijzingen op basis van beste inspanning; negeer onbekende velden en bloktypen in plaats van het hele bericht te laten mislukken.
Interacties
Deze metadata voegt geen Matrix-callbacksemantiek toe. Waarden van knoppen en selecties zijn terugvalpayloads voor interacties, meestal slash-opdrachten of tekstopdrachten. Een Matrix-client die interactie wil ondersteunen, bepaalt de waarde van het besturingselement (action.command, vervolgens action.value, vervolgens value) en stuurt die als een normaal bericht terug naar de ruimte.
Een knop met de waarde /model deepseek/deepseek-chat kan bijvoorbeeld worden verwerkt door die waarde als versleuteld Matrix-tekstbericht in dezelfde ruimte te verzenden.
Relatie met goedkeuringsmetadata
com.openclaw.presentation is bedoeld voor algemene, uitgebreide berichtpresentatie.
Goedkeuringsprompts gebruiken de specifieke com.openclaw.approval-metadata, omdat goedkeuringen veiligheidsgevoelige status, beslissingen en uitvoerings-/plugingegevens bevatten. Als beide metadatasleutels in dezelfde gebeurtenis aanwezig zijn, moeten clients de voorkeur geven aan de specifieke goedkeuringsrenderer.
Mediaberichten
Wanneer een antwoord meerdere media-URL's bevat, verzendt OpenClaw één Matrix-gebeurtenis per media-URL. Bijschrifttekst en presentatiemetadata worden alleen aan de eerste gebeurtenis toegevoegd, zodat clients één stabiele gestructureerde payload krijgen zonder dubbele renderers. Dezelfde regel geldt wanneer lange tekst over meerdere gebeurtenissen wordt verdeeld: de metadata wordt alleen met de eerste gebeurtenis meegestuurd.
Houd presentatiemetadata compact. Grote, voor gebruikers zichtbare tekst moet in body blijven en het normale pad voor het opsplitsen van Matrix-tekst gebruiken.