Technical reference
โปรโตคอลเอาต์พุตแบบสมบูรณ์
เอาต์พุตของ Assistant ส่งคำสั่งกำกับการส่งมอบ/การแสดงผลผ่านช่องทางเฉพาะหลายช่องทาง:
- ฟิลด์
mediaUrl/mediaUrlsแบบมีโครงสร้างสำหรับส่งไฟล์แนบ [[audio_as_voice]]สำหรับคำแนะนำการนำเสนอเสียง[[reply_to_current]]/[[reply_to:<id>]]สำหรับข้อมูลเมตาของการตอบกลับ[embed ...]สำหรับการแสดงผลแบบสมบูรณ์ใน Control UI
ฟิลด์สื่อแบบมีโครงสร้างและแท็ก [[...]] เป็นข้อมูลเมตาสำหรับการส่งมอบ ส่วน [embed ...] เป็นเส้นทางแยกสำหรับการแสดงผลแบบสมบูรณ์บนเว็บเท่านั้น ไม่ใช่นามแฝงของสื่อ
ไฟล์แนบสื่อ
ไฟล์แนบระยะไกลต้องเป็น URL https: สาธารณะ ระบบจะปฏิเสธ http:, loopback, link-local, ชื่อโฮสต์ส่วนตัว และชื่อโฮสต์ภายในที่ใช้เป็นคำสั่งกำกับไฟล์แนบ และตัวดึงข้อมูลสื่อฝั่งเซิร์ฟเวอร์จะใช้มาตรการป้องกันเครือข่ายของตนเองเพิ่มเติม
ไฟล์แนบในเครื่องรองรับพาธแบบสัมบูรณ์ พาธแบบสัมพัทธ์กับเวิร์กสเปซ หรือพาธ ~/ แบบสัมพัทธ์กับโฮม โดยไฟล์ยังต้องผ่านนโยบายการอ่านไฟล์ของเอเจนต์และการตรวจสอบประเภทสื่อก่อนส่งมอบ
ไวยากรณ์รูปภาพ Markdown แบบธรรมดา () จะยังคงเป็นข้อความโดยค่าเริ่มต้น ช่องทางที่ต้องการให้รูปภาพ Markdown ถูกจัดการเป็นการตอบกลับด้วยสื่อ สามารถเลือกเปิดใช้ได้ในอะแดปเตอร์ขาออกของช่องทางนั้น โดย Telegram ทำเช่นนี้เพื่อให้  กลายเป็นไฟล์แนบสื่อ
เมื่อเปิดใช้การสตรีมแบบบล็อก สื่อต้องส่งผ่านฟิลด์เพย์โหลดแบบมีโครงสร้าง หาก URL สื่อเดียวกันปรากฏในบล็อกที่สตรีมและปรากฏอีกครั้งในเพย์โหลดสุดท้ายของ Assistant OpenClaw จะส่งสื่อนั้นเพียงครั้งเดียวและลบรายการซ้ำออกจากเพย์โหลดสุดท้าย
[embed ...]
[embed ...] เป็นไวยากรณ์การแสดงผลแบบสมบูรณ์สำหรับ Control UI เพียงรูปแบบเดียวที่เอเจนต์ใช้ได้ ตัวอย่างแบบปิดตัวเอง:
[embed ref="cv_123" title="Status" /]กฎ:
[view ...]ใช้กับเอาต์พุตใหม่ไม่ได้อีกต่อไป- ชอร์ตโค้ด Embed แสดงผลเฉพาะในพื้นที่ข้อความของ Assistant
- แสดงผลได้เฉพาะ Embed ที่มี URL รองรับ โดยใช้
ref="..."หรือurl="..." - ชอร์ตโค้ด Embed แบบ HTML อินไลน์ชนิดบล็อกจะไม่แสดงผล
- UI เว็บจะนำชอร์ตโค้ดออกจากข้อความที่มองเห็นและแสดง Embed แบบอินไลน์
รูปแบบการแสดงผลที่จัดเก็บ
บล็อกเนื้อหาของ Assistant ที่ปรับให้อยู่ในรูปแบบมาตรฐาน/จัดเก็บแล้วจะเป็นรายการ canvas แบบมีโครงสร้าง:
{ "type": "canvas", "preview": { "kind": "canvas", "surface": "assistant_message", "render": "url", "viewId": "cv_123", "url": "/__openclaw__/canvas/documents/cv_123/index.html", "title": "Status", "preferredHeight": 320 }}ระบบไม่รู้จัก present_view บล็อกแบบสมบูรณ์ที่จัดเก็บ/แสดงผลจะใช้รูปแบบ canvas นี้เสมอ