Mainstream messaging
เมทาดาทาการนำเสนอของ Matrix
OpenClaw สามารถแนบเมทาดาทา MessagePresentation ที่ทำให้เป็นมาตรฐานแล้วไปกับเหตุการณ์ Matrix m.room.message ขาออกภายใต้ com.openclaw.presentation.
ไคลเอนต์ Matrix มาตรฐานจะยังคงแสดงผล body แบบข้อความธรรมดาต่อไป ไคลเอนต์ที่รู้จัก OpenClaw สามารถอ่านเมทาดาทาแบบมีโครงสร้างและแสดงผล UI แบบเนทีฟ เช่น ปุ่ม ตัวเลือกแบบเลือกได้ แถวบริบท และตัวแบ่ง
เนื้อหาเหตุการณ์
เมทาดาทาถูกเก็บไว้ในเนื้อหาเหตุการณ์ Matrix:
{
"msgtype": "m.text",
"body": "Select model\n\n- DeepSeek: /model deepseek/deepseek-chat",
"com.openclaw.presentation": {
"version": 1,
"type": "message.presentation",
"title": "Select model",
"tone": "info",
"blocks": [
{
"type": "select",
"placeholder": "Choose model",
"options": [
{
"label": "DeepSeek",
"value": "/model deepseek/deepseek-chat"
}
]
}
]
}
}
version คือเวอร์ชันสคีมาเมทาดาทาการนำเสนอของ Matrix type คือตัวจำแนกที่เสถียรสำหรับไคลเอนต์ที่รู้จัก OpenClaw ไคลเอนต์ควรละเว้นค่า type ที่ไม่รู้จัก เวอร์ชันที่ไม่รู้จักซึ่งไม่สามารถตีความได้อย่างปลอดภัย และประเภทบล็อกที่ไม่รู้จัก
พฤติกรรมสำรอง
OpenClaw จะแสดงผลข้อความสำรองแบบข้อความธรรมดาที่อ่านได้ลงใน body เสมอ เมทาดาทาแบบมีโครงสร้างเป็นข้อมูลเสริมและต้องไม่ถูกกำหนดให้จำเป็นสำหรับการทำงานร่วมกับ Matrix ขั้นพื้นฐาน
ไคลเอนต์ที่ไม่รองรับควรยังคงแสดงข้อความสำรองต่อไป ไคลเอนต์ที่รู้จัก OpenClaw อาจเลือกใช้เมทาดาทาแบบมีโครงสร้างสำหรับการแสดงผล ขณะเดียวกันยังคงเก็บข้อความสำรองไว้สำหรับการคัดลอก การค้นหา การแจ้งเตือน และการช่วยการเข้าถึง
บล็อกที่รองรับ
อะแดปเตอร์ขาออกของ Matrix ประกาศการรองรับสำหรับ:
buttonsselectcontextdivider
ไคลเอนต์ควรมองว่าบล็อกเหล่านี้เป็นคำใบ้การนำเสนอแบบพยายามให้ดีที่สุด ฟิลด์ที่ไม่รู้จักและประเภทบล็อกที่ไม่รู้จักควรถูกละเว้น แทนที่จะทำให้ข้อความทั้งหมดแสดงผลล้มเหลว
การโต้ตอบ
เมทาดาทานี้ไม่ได้เพิ่มความหมายเชิง callback ของ Matrix ค่าของปุ่มและตัวเลือกในตัวเลือกแบบเลือกได้เป็นเพย์โหลดการโต้ตอบสำรอง ซึ่งโดยปกติเป็นคำสั่ง slash หรือคำสั่งข้อความ ไคลเอนต์ Matrix ที่ต้องการรองรับการโต้ตอบสามารถส่งค่าที่เลือกกลับไปยังห้องเป็นข้อความปกติได้
ตัวอย่างเช่น ปุ่มที่มีค่า /model deepseek/deepseek-chat สามารถจัดการได้โดยส่งค่านั้นเป็นข้อความ Matrix แบบเข้ารหัสในห้องเดียวกัน
ความสัมพันธ์กับเมทาดาทาการอนุมัติ
com.openclaw.presentation ใช้สำหรับการนำเสนอข้อความแบบ rich ทั่วไป
พรอมต์การอนุมัติใช้เมทาดาทาเฉพาะ com.openclaw.approval เนื่องจากการอนุมัติมีสถานะที่ไวต่อความปลอดภัย การตัดสินใจ และรายละเอียด exec/Plugin หากคีย์เมทาดาทาทั้งสองมีอยู่ในเหตุการณ์เดียวกัน ไคลเอนต์ควรเลือกใช้ตัวแสดงผลการอนุมัติเฉพาะก่อน
ข้อความสื่อ
เมื่อคำตอบมี URL สื่อหลายรายการ OpenClaw จะส่งเหตุการณ์ Matrix หนึ่งรายการต่อ URL สื่อหนึ่งรายการ เมทาดาทาการนำเสนอจะแนบเฉพาะกับเหตุการณ์สื่อรายการแรก เพื่อให้ไคลเอนต์มีเพย์โหลดแบบมีโครงสร้างที่เสถียรหนึ่งรายการ และหลีกเลี่ยงตัวแสดงผลที่ซ้ำกัน
รักษาเมทาดาทาการนำเสนอให้กระชับ ข้อความขนาดใหญ่ที่ผู้ใช้มองเห็นควรอยู่ใน body และใช้เส้นทางการแบ่งข้อความ Matrix ตามปกติ