---
read_when:
    - การสร้างไคลเอนต์ Matrix ที่แสดงผลคำตอบแบบสมบูรณ์ของ OpenClaw
    - การดีบักเนื้อหาเหตุการณ์ com.openclaw.presentation
summary: เมตาดาต้า Matrix MessagePresentation สำหรับไคลเอนต์ที่รองรับ OpenClaw
title: เมทาดาทาการนำเสนอของ Matrix
x-i18n:
    generated_at: "2026-05-10T19:22:55Z"
    model: gpt-5.5
    provider: openai
    source_hash: c89979b6007faaa6af44c7f2511f354b96f163bcd3d5e7f99c405b51c4950537
    source_path: channels/matrix-presentation.md
    workflow: 16
---

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