Technical reference
リッチ出力プロトコル
アシスタントの出力は、いくつかの専用チャネルを通じて配信/レンダリング指示を伝達します。
- 添付ファイル配信用の構造化された
mediaUrl/mediaUrlsフィールド。 - 音声の表示方法を示す
[[audio_as_voice]]。 - 返信メタデータ用の
[[reply_to_current]]/[[reply_to:<id>]]。 - Control UI のリッチレンダリング用の
[embed ...]。
構造化されたメディアフィールドと [[...]] タグは配信メタデータです。[embed ...] は別個のウェブ専用リッチレンダリング経路であり、メディアのエイリアスではありません。
メディア添付ファイル
リモート添付ファイルには、公開されている https: URL を使用する必要があります。http:、ループバック、リンクローカル、プライベート、および内部ホスト名は添付ファイル指示として拒否されます。さらに、サーバー側のメディア取得機能が独自のネットワーク保護を適用します。
ローカル添付ファイルでは、絶対パス、ワークスペース相対パス、またはホーム相対の ~/ パスを使用できます。ただし、配信前にエージェントのファイル読み取りポリシーとメディアタイプの検査が適用されます。
通常の Markdown 画像構文()は、デフォルトではテキストのままです。Markdown 画像をメディア返信として扱うチャネルは、送信アダプターでその動作を有効にします。Telegram ではこれが有効なため、 はメディア添付ファイルになります。
ブロックストリーミングが有効な場合、メディアは構造化されたペイロードフィールドで送信する必要があります。同じメディア URL がストリーミングブロックと最終アシスタントペイロードの両方に含まれている場合、OpenClaw はそれを一度だけ配信し、最終ペイロードから重複分を削除します。
[embed ...]
[embed ...] は、Control UI でエージェントが使用できる唯一のリッチレンダリング構文です。自己終了形式の例:
[embed ref="cv_123" title="Status" /]ルール:
- 新しい出力では
[view ...]は使用できません。 - Embed ショートコードは、アシスタントメッセージ領域でのみレンダリングされます。
- URL に基づく Embed のみレンダリングされます。
ref="..."またはurl="..."を使用してください。 - ブロック形式のインライン HTML Embed ショートコードはレンダリングされません。
- Web UI は表示テキストからショートコードを取り除き、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 形式を使用します。