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