Mainstream messaging

เมทาดาทาการนำเสนอของ Matrix

Edit source

OpenClaw สามารถแนบเมทาดาทา MessagePresentation ที่ทำให้เป็นมาตรฐานแล้วไปกับเหตุการณ์ Matrix m.room.message ขาออกภายใต้ com.openclaw.presentation.

ไคลเอนต์ Matrix มาตรฐานจะยังคงแสดงผล body แบบข้อความธรรมดาต่อไป ไคลเอนต์ที่รู้จัก OpenClaw สามารถอ่านเมทาดาทาแบบมีโครงสร้างและแสดงผล UI แบบเนทีฟ เช่น ปุ่ม ตัวเลือกแบบเลือกได้ แถวบริบท และตัวแบ่ง

เนื้อหาเหตุการณ์

เมทาดาทาถูกเก็บไว้ในเนื้อหาเหตุการณ์ Matrix:

json
{  "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 ประกาศการรองรับสำหรับ:

  • buttons
  • select
  • context
  • divider

ไคลเอนต์ควรมองว่าบล็อกเหล่านี้เป็นคำใบ้การนำเสนอแบบพยายามให้ดีที่สุด ฟิลด์ที่ไม่รู้จักและประเภทบล็อกที่ไม่รู้จักควรถูกละเว้น แทนที่จะทำให้ข้อความทั้งหมดแสดงผลล้มเหลว

การโต้ตอบ

เมทาดาทานี้ไม่ได้เพิ่มความหมายเชิง callback ของ Matrix ค่าของปุ่มและตัวเลือกในตัวเลือกแบบเลือกได้เป็นเพย์โหลดการโต้ตอบสำรอง ซึ่งโดยปกติเป็นคำสั่ง slash หรือคำสั่งข้อความ ไคลเอนต์ Matrix ที่ต้องการรองรับการโต้ตอบสามารถส่งค่าที่เลือกกลับไปยังห้องเป็นข้อความปกติได้

ตัวอย่างเช่น ปุ่มที่มีค่า /model deepseek/deepseek-chat สามารถจัดการได้โดยส่งค่านั้นเป็นข้อความ Matrix แบบเข้ารหัสในห้องเดียวกัน

ความสัมพันธ์กับเมทาดาทาการอนุมัติ

com.openclaw.presentation ใช้สำหรับการนำเสนอข้อความแบบ rich ทั่วไป

พรอมต์การอนุมัติใช้เมทาดาทาเฉพาะ com.openclaw.approval เนื่องจากการอนุมัติมีสถานะที่ไวต่อความปลอดภัย การตัดสินใจ และรายละเอียด exec/Plugin หากคีย์เมทาดาทาทั้งสองมีอยู่ในเหตุการณ์เดียวกัน ไคลเอนต์ควรเลือกใช้ตัวแสดงผลการอนุมัติเฉพาะก่อน

ข้อความสื่อ

เมื่อคำตอบมี URL สื่อหลายรายการ OpenClaw จะส่งเหตุการณ์ Matrix หนึ่งรายการต่อ URL สื่อหนึ่งรายการ เมทาดาทาการนำเสนอจะแนบเฉพาะกับเหตุการณ์สื่อรายการแรก เพื่อให้ไคลเอนต์มีเพย์โหลดแบบมีโครงสร้างที่เสถียรหนึ่งรายการ และหลีกเลี่ยงตัวแสดงผลที่ซ้ำกัน

รักษาเมทาดาทาการนำเสนอให้กระชับ ข้อความขนาดใหญ่ที่ผู้ใช้มองเห็นควรอยู่ใน body และใช้เส้นทางการแบ่งข้อความ Matrix ตามปกติ

Was this useful?