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

  • 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 ตามปกติ