Rich Output Protocol
어시스턴트 출력에는 소수의 전달/렌더링 지시어가 포함될 수 있습니다:
MEDIA:— 첨부 파일 전달[[audio_as_voice]]— 오디오 표시 힌트[[reply_to_current]]/[[reply_to:<id>]]— 회신 메타데이터[embed ...]— Control UI 리치 렌더링
이 지시어들은 서로 분리되어 있습니다. MEDIA:와 회신/음성 태그는 전달 메타데이터로 남고, [embed ...]는 웹 전용 리치 렌더 경로입니다.
[embed ...]
[embed ...]는 Control UI용 유일한 에이전트 대상 리치 렌더 구문입니다.
자체 종료 예시:
text
[embed ref="cv_123" title="Status" /]규칙:
[view ...]는 새 출력에서 더 이상 유효하지 않습니다.- embed 숏코드는 어시스턴트 메시지 서페이스에서만 렌더됩니다.
- URL 기반 embed만 렌더됩니다.
ref="..."또는url="..."를 사용하세요. - 블록 형식의 인라인 HTML embed 숏코드는 렌더되지 않습니다.
- 웹 UI는 숏코드를 가시 텍스트에서 제거하고 embed를 인라인으로 렌더합니다.
MEDIA:는 embed 별칭이 아니므로 리치 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
}
}저장/렌더되는 리치 블록은 이 canvas 형태를 직접 사용합니다. present_view는 인식되지 않습니다.