> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Протокол форматированного вывода

Вывод ассистента передаёт директивы доставки и отображения через несколько специализированных каналов:

* Структурированные поля `mediaUrl` / `mediaUrls` для доставки вложений.
* `[[audio_as_voice]]` для указаний по представлению аудио.
* `[[reply_to_current]]` / `[[reply_to:<id>]]` для метаданных ответа.
* `[embed ...]` для расширенного отображения в интерфейсе управления.

Структурированные поля мультимедиа и теги `[[...]]` являются метаданными доставки. `[embed ...]` — это отдельный путь расширенного отображения только для веб-интерфейса, а не псевдоним мультимедиа.

## Мультимедийные вложения

Удалённые вложения должны быть общедоступными URL-адресами `https:`. Имена узлов `http:`, обратной связи, локального канала, частной и внутренней сети отклоняются в директивах вложений; серверные средства получения мультимедиа дополнительно применяют собственные сетевые ограничения.

Для локальных вложений допустимы абсолютные пути, пути относительно рабочей области и пути `~/` относительно домашнего каталога. Перед доставкой они по-прежнему проходят проверку политикой чтения файлов агента и проверку типа мультимедиа.

> [!WARNING]
>
> Не выводите текстовые команды для вложений из инструментов, плагинов, потоковых блоков, вывода браузера или действий с сообщениями. Вместо этого используйте структурированные поля мультимедиа:
>
> ```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
> { "message": "Вот ваше изображение.", "mediaUrl": "/workspace/image.png" }
> ```
>
> Текст устаревшего финального ответа всё ещё может нормализоваться для совместимости, но это не общий протокол плагинов или инструментов.

Обычный синтаксис изображений Markdown (`![alt](url)`) по умолчанию остаётся текстом. Каналы, которым требуется обрабатывать изображения Markdown как ответы с мультимедиа, включают это в своём адаптере исходящих сообщений; Telegram делает это, поэтому `![alt](url)` становится мультимедийным вложением.

Когда включена потоковая передача блоков, мультимедиа должны передаваться в структурированных полях полезной нагрузки. Если один и тот же URL-адрес мультимедиа присутствует в потоковом блоке и снова в финальной полезной нагрузке ассистента, OpenClaw доставляет его один раз и удаляет дубликат из финальной полезной нагрузки.

## `[embed ...]`

`[embed ...]` — единственный доступный агенту синтаксис расширенного отображения для интерфейса управления. Пример с самозакрывающимся элементом:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
[embed ref="cv_123" title="Status" /]
```

Правила:

* `[view ...]` больше не допустим для нового вывода.
* Шорткоды встраивания отображаются только в области сообщений ассистента.
* Отображаются только встраиваемые элементы на основе URL-адресов; используйте `ref="..."` или `url="..."`.
* Блочные шорткоды встраивания со встроенным HTML не отображаются.
* Веб-интерфейс удаляет шорткод из видимого текста и отображает встроенный элемент непосредственно в сообщении.

## Формат хранения и отображения

Нормализованный и сохранённый блок содержимого ассистента представляет собой структурированный элемент `canvas`:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "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`.

## Связанные материалы

* [Адаптеры RPC](https://docs2.openclaw.ai/ru/reference/rpc.md)
* [Typebox](https://docs2.openclaw.ai/ru/concepts/typebox.md)
