Technical reference

リッチ出力プロトコル

アシスタントの出力は、いくつかの専用チャネルを通じて配信/レンダリング指示を伝達します。

  • 添付ファイル配信用の構造化された mediaUrl / mediaUrls フィールド。
  • 音声の表示方法を示す [[audio_as_voice]]
  • 返信メタデータ用の [[reply_to_current]] / [[reply_to:<id>]]
  • Control UI のリッチレンダリング用の [embed ...]

構造化されたメディアフィールドと [[...]] タグは配信メタデータです。[embed ...] は別個のウェブ専用リッチレンダリング経路であり、メディアのエイリアスではありません。

メディア添付ファイル

リモート添付ファイルには、公開されている https: URL を使用する必要があります。http:、ループバック、リンクローカル、プライベート、および内部ホスト名は添付ファイル指示として拒否されます。さらに、サーバー側のメディア取得機能が独自のネットワーク保護を適用します。

ローカル添付ファイルでは、絶対パス、ワークスペース相対パス、またはホーム相対の ~/ パスを使用できます。ただし、配信前にエージェントのファイル読み取りポリシーとメディアタイプの検査が適用されます。

通常の Markdown 画像構文(![alt](url))は、デフォルトではテキストのままです。Markdown 画像をメディア返信として扱うチャネルは、送信アダプターでその動作を有効にします。Telegram ではこれが有効なため、![alt](url) はメディア添付ファイルになります。

ブロックストリーミングが有効な場合、メディアは構造化されたペイロードフィールドで送信する必要があります。同じメディア URL がストリーミングブロックと最終アシスタントペイロードの両方に含まれている場合、OpenClaw はそれを一度だけ配信し、最終ペイロードから重複分を削除します。

[embed ...]

[embed ...] は、Control UI でエージェントが使用できる唯一のリッチレンダリング構文です。自己終了形式の例:

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

ルール:

  • 新しい出力では [view ...] は使用できません。
  • Embed ショートコードは、アシスタントメッセージ領域でのみレンダリングされます。
  • URL に基づく Embed のみレンダリングされます。ref="..." または url="..." を使用してください。
  • ブロック形式のインライン HTML Embed ショートコードはレンダリングされません。
  • Web UI は表示テキストからショートコードを取り除き、Embed をインラインでレンダリングします。

保存時のレンダリング形式

正規化/保存されたアシスタントのコンテンツブロックは、構造化された 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