Skip to main content
OpenClaw आउटबाउंड Matrix m.room.message इवेंट में com.openclaw.presentation कॉन्टेंट कुंजी के अंतर्गत सामान्यीकृत MessagePresentation मेटाडेटा जोड़ता है। मानक Matrix क्लाइंट सादा टेक्स्ट body रेंडर करना जारी रखते हैं। OpenClaw-संगत क्लाइंट संरचित मेटाडेटा पढ़ सकते हैं और बटन, चयन, संदर्भ पंक्तियाँ और विभाजक जैसे नेटिव UI रेंडर कर सकते हैं।

इवेंट कॉन्टेंट

  • version मेटाडेटा स्कीमा संस्करण है; वर्तमान संस्करण 1 है। type एक स्थिर विभेदक है, जो हमेशा "message.presentation" होता है। Matrix अडैप्टर केवल ठीक इसी संस्करण और प्रकार वाले पेलोड उत्सर्जित करता है; इसी तरह, क्लाइंट को ऐसे अज्ञात संस्करणों को अनदेखा करना चाहिए जिनकी वे सुरक्षित रूप से व्याख्या नहीं कर सकते, साथ ही अज्ञात type मानों और अज्ञात ब्लॉक प्रकारों को भी।
  • title और tone (info, success, warning, danger, neutral) वैकल्पिक संकेत हैं।
  • बटन और चयन विकल्प पुराने स्ट्रिंग value के साथ एक टाइप किया हुआ action ({ "type": "command", "command": "/..." } या { "type": "callback", "value": "..." }) रख सकते हैं। दोनों मौजूद होने पर action को प्राथमिकता दें।

फ़ॉलबैक व्यवहार

OpenClaw हमेशा body में पढ़ने योग्य सादा टेक्स्ट फ़ॉलबैक रेंडर करता है। संरचित मेटाडेटा अतिरिक्त होता है और मूल Matrix अंतर-संचालनीयता के लिए आवश्यक नहीं होना चाहिए। फ़ॉलबैक रेंडरिंग नियम:
  • title, text, और context कॉन्टेंट सादी पंक्तियों के रूप में रेंडर होता है।
  • command कार्रवाई वाले बटन label: `/command` के रूप में रेंडर होते हैं, ताकि कमांड कॉपी किया जा सके। callback कार्रवाई वाले या केवल पुराना value रखने वाले बटन केवल लेबल के रूप में रेंडर होते हैं, ताकि अपारदर्शी कॉलबैक मान निजी रहें; अक्षम बटन हमेशा केवल लेबल के रूप में रेंडर होते हैं। URL और वेब-ऐप बटन label: URL के रूप में रेंडर होते हैं।
  • चयन ब्लॉक प्लेसहोल्डर (या Options:) को शीर्षक के रूप में और उसके बाद केवल लेबल वाली विकल्प पंक्तियों को रेंडर करते हैं।
  • यदि कुछ भी रेंडर नहीं होता, उदाहरण के लिए केवल विभाजक वाली प्रस्तुति में, तो बॉडी --- पर फ़ॉलबैक करती है।
असमर्थित क्लाइंट फ़ॉलबैक टेक्स्ट दिखाते रहते हैं। OpenClaw-संगत क्लाइंट प्रदर्शन के लिए संरचित मेटाडेटा को प्राथमिकता दे सकते हैं, जबकि कॉपी, खोज, सूचनाओं और अभिगम्यता के लिए फ़ॉलबैक को बनाए रख सकते हैं।

समर्थित ब्लॉक

Matrix आउटबाउंड अडैप्टर इनके लिए नेटिव समर्थन घोषित करता है:
  • buttons
  • select
  • context
  • divider
text ब्लॉक फ़ॉलबैक बॉडी के माध्यम से हमेशा समर्थित होते हैं। सभी ब्लॉक को सर्वोत्तम-प्रयास प्रस्तुति संकेत मानें; पूरे संदेश को विफल करने के बजाय अज्ञात फ़ील्ड और ब्लॉक प्रकारों को अनदेखा करें।

इंटरैक्शन

यह मेटाडेटा Matrix कॉलबैक सिमेंटिक्स नहीं जोड़ता। बटन और चयन मान फ़ॉलबैक इंटरैक्शन पेलोड हैं, जो आमतौर पर स्लैश कमांड या टेक्स्ट कमांड होते हैं। इंटरैक्शन का समर्थन करने वाला Matrix क्लाइंट नियंत्रण मान (action.command, फिर action.value, फिर value) निर्धारित करता है और उसे सामान्य संदेश के रूप में रूम में वापस भेजता है। उदाहरण के लिए, /model deepseek/deepseek-chat मान वाले बटन को उसी रूम में वह मान एन्क्रिप्टेड Matrix टेक्स्ट संदेश के रूप में भेजकर संभाला जा सकता है।

अनुमोदन मेटाडेटा से संबंध

com.openclaw.presentation सामान्य रिच संदेश प्रस्तुति के लिए है। अनुमोदन प्रॉम्प्ट समर्पित com.openclaw.approval मेटाडेटा का उपयोग करते हैं, क्योंकि अनुमोदनों में सुरक्षा-संवेदनशील स्थिति, निर्णय और exec/plugin विवरण होते हैं। यदि एक ही इवेंट पर दोनों मेटाडेटा कुंजियाँ मौजूद हों, तो क्लाइंट को समर्पित अनुमोदन रेंडरर को प्राथमिकता देनी चाहिए।

मीडिया संदेश

जब किसी उत्तर में एक से अधिक मीडिया URL होते हैं, तो OpenClaw प्रत्येक मीडिया URL के लिए एक Matrix इवेंट भेजता है। कैप्शन टेक्स्ट और प्रस्तुति मेटाडेटा केवल पहले इवेंट से जुड़ते हैं, ताकि क्लाइंट को डुप्लिकेट रेंडरर के बिना एक स्थिर संरचित पेलोड मिले। यही नियम तब लागू होता है जब लंबे टेक्स्ट को कई इवेंट में खंडित किया जाता है: मेटाडेटा केवल पहले इवेंट के साथ जाता है। प्रस्तुति मेटाडेटा को संक्षिप्त रखें। उपयोगकर्ता को दिखाई देने वाला बड़ा टेक्स्ट body में रहना चाहिए और सामान्य Matrix टेक्स्ट खंडीकरण पथ का उपयोग करना चाहिए।