Technical reference
リッチ出力プロトコル
アシスタントの出力は、いくつかの専用チャネルを通じて配信・レンダリング指示を伝達します。
- 添付ファイル配信用の構造化された
mediaUrl/mediaUrlsフィールド。 - 音声表示のヒント用の
[[audio_as_voice]]。 - 返信メタデータ用の
[[reply_to_current]]/[[reply_to:<id>]]。 - Control UI のリッチレンダリング用の
[embed ...]。
構造化メディアフィールドと [[...]] タグは配信メタデータです。[embed ...] は独立した Web 専用のリッチレンダリング経路であり、メディアのエイリアスではありません。
メディア添付ファイル
リモート添付ファイルには、公開された https: URL が必要です。http:、ループバック、リンクローカル、プライベート、および内部ホスト名は添付ファイル指示として拒否されます。さらに、サーバー側のメディア取得処理は独自のネットワーク保護を適用します。
ローカル添付ファイルには、絶対パス、ワークスペース相対パス、またはホーム相対の ~/ パスを使用できます。配信前には、引き続きエージェントのファイル読み取りポリシーとメディアタイプのチェックが適用されます。
通常の Markdown 画像構文()は、デフォルトではテキストのままです。Markdown 画像をメディア返信として扱うチャネルは、送信アダプターで明示的に有効化します。Telegram ではこれが有効になっているため、 はメディア添付ファイルになります。
ブロックストリーミングが有効な場合、メディアは構造化ペイロードフィールドで伝送する必要があります。同じメディア URL がストリーミングブロックと最終アシスタントペイロードの両方に現れる場合、OpenClaw はそれを一度だけ配信し、最終ペイロードから重複を削除します。
[embed ...]
[embed ...] は、Control UI でエージェントが使用できる唯一のリッチレンダリング構文です。自己終了形式の例:
[embed ref="cv_123" title="Status" /]ルール:
- 新しい出力では、
[view ...]は使用できなくなりました。 - 埋め込みショートコードは、アシスタントメッセージのサーフェス内でのみレンダリングされます。
- URL を参照する埋め込みのみがレンダリングされます。
ref="..."またはurl="..."を使用してください。 - ブロック形式のインライン HTML 埋め込みショートコードはレンダリングされません。
- Web UI は表示テキストからショートコードを削除し、埋め込みをインラインでレンダリングします。
保存されるレンダリング形式
正規化されて保存されるアシスタントコンテンツブロックは、構造化された canvas 項目です。
{ "type": "canvas", "preview": { "kind": "canvas", "surface": "assistant_message", "render": "url", "viewId": "cv_123", "url": "/__openclaw__/canvas/documents/cv_123/index.html", "title": "ステータス", "preferredHeight": 320 }}present_view は認識されません。保存・レンダリングされるリッチブロックでは、常にこの canvas 形式を使用します。