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 แบบธรรมดา (![alt](url)) จะยังคงเป็นข้อความโดยค่าเริ่มต้น ช่องทางที่ต้องการให้รูปภาพ Markdown ถูกจัดการเป็นการตอบกลับด้วยสื่อ สามารถเลือกเปิดใช้ได้ในอะแดปเตอร์ขาออกของช่องทางนั้น โดย Telegram ทำเช่นนี้เพื่อให้ ![alt](url) กลายเป็นไฟล์แนบสื่อ

เมื่อเปิดใช้การสตรีมแบบบล็อก สื่อต้องส่งผ่านฟิลด์เพย์โหลดแบบมีโครงสร้าง หาก URL สื่อเดียวกันปรากฏในบล็อกที่สตรีมและปรากฏอีกครั้งในเพย์โหลดสุดท้ายของ Assistant OpenClaw จะส่งสื่อนั้นเพียงครั้งเดียวและลบรายการซ้ำออกจากเพย์โหลดสุดท้าย

[embed ...]

[embed ...] เป็นไวยากรณ์การแสดงผลแบบสมบูรณ์สำหรับ Control UI เพียงรูปแบบเดียวที่เอเจนต์ใช้ได้ ตัวอย่างแบบปิดตัวเอง:

text
[embed ref="cv_123" title="Status" /]

กฎ:

  • [view ...] ใช้กับเอาต์พุตใหม่ไม่ได้อีกต่อไป
  • ชอร์ตโค้ด Embed แสดงผลเฉพาะในพื้นที่ข้อความของ Assistant
  • แสดงผลได้เฉพาะ Embed ที่มี URL รองรับ โดยใช้ ref="..." หรือ url="..."
  • ชอร์ตโค้ด Embed แบบ HTML อินไลน์ชนิดบล็อกจะไม่แสดงผล
  • UI เว็บจะนำชอร์ตโค้ดออกจากข้อความที่มองเห็นและแสดง Embed แบบอินไลน์

รูปแบบการแสดงผลที่จัดเก็บ

บล็อกเนื้อหาของ Assistant ที่ปรับให้อยู่ในรูปแบบมาตรฐาน/จัดเก็บแล้วจะเป็นรายการ canvas แบบมีโครงสร้าง:

json
{  "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 นี้เสมอ

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page