Technical reference
پروتکل خروجی غنی
خروجی دستیار میتواند مجموعهٔ کوچکی از دستورهای تحویل/رندر را همراه داشته باشد:
- فیلدهای ساختاریافتهٔ
mediaUrl/mediaUrlsبرای تحویل پیوست [[audio_as_voice]]برای راهنماهای نمایش صوت[[reply_to_current]]/[[reply_to:<id>]]برای فرادادهٔ پاسخ[embed ...]برای رندر غنی رابط کاربری Control
پیوستهای رسانهای راهدور باید URLهای عمومی https: باشند. http: ساده،
لوپبک، لینک-لوکال، نامهای میزبان خصوصی و داخلی بهعنوان دستورهای پیوست
نادیده گرفته میشوند؛ واکشندههای رسانهٔ سمت سرور همچنان محافظهای شبکهٔ خودشان را اعمال میکنند.
پیوستهای رسانهای محلی میتوانند از مسیرهای مطلق، مسیرهای نسبی به workspace، یا
مسیرهای نسبی به خانه با ~/ استفاده کنند. آنها همچنان پیش از تحویل از سیاست خواندن فایل عامل و
بررسیهای نوع رسانه عبور میکنند.
نحو تصویر Markdown ساده بهطور پیشفرض متن باقی میماند. کانالهایی که عمداً
پاسخهای تصویری Markdown را به پیوستهای رسانهای نگاشت میکنند، در آداپتور خروجی
خود آن را فعال میکنند؛ Telegram این کار را انجام میدهد تا  همچنان بتواند به یک پاسخ رسانهای تبدیل شود.
این دستورها جدا هستند. فیلدهای رسانهٔ ساختاریافته و برچسبهای پاسخ/صدا
فرادادهٔ تحویل هستند؛ [embed ...] مسیر رندر غنی فقط وب است.
وقتی استریم بلوکی فعال باشد، رسانه باید روی فیلدهای بار ساختاریافته حمل شود. اگر همان URL رسانه در یک بلوک استریمشده ارسال و در بار نهایی دستیار تکرار شود، OpenClaw پیوست را یکبار تحویل میدهد و تکراری را از بار نهایی حذف میکند.
[embed ...]
[embed ...] تنها نحو رندر غنی روبهعامل برای رابط کاربری Control است.
نمونهٔ خودبسته:
[embed ref="cv_123" title="Status" /]قواعد:
[view ...]دیگر برای خروجی جدید معتبر نیست.- شورتکدهای embed فقط در سطح پیام دستیار رندر میشوند.
- فقط embedهایی که به URL تکیه دارند رندر میشوند. از
ref="..."یاurl="..."استفاده کنید. - شورتکدهای embed درونخطی HTML بهشکل بلوکی رندر نمیشوند.
- رابط کاربری وب شورتکد را از متن قابل مشاهده حذف میکند و embed را درونخطی رندر میکند.
- رسانهٔ ساختاریافته نام مستعار embed نیست و نباید برای رندر embed غنی استفاده شود.
شکل رندر ذخیرهشده
بلوک محتوای نرمالسازیشده/ذخیرهشدهٔ دستیار یک آیتم ساختاریافتهٔ 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 }}بلوکهای غنی ذخیرهشده/رندرشده مستقیماً از همین شکل canvas استفاده میکنند. present_view شناسایی نمیشود.