> ## 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.

# Поддержка изображений и медиа

Канал WhatsApp работает через **Baileys Web**. В этом документе зафиксированы текущие правила обработки медиа для отправки, Gateway и ответов агента.

## Цели

* Отправлять медиа с необязательными подписями через `openclaw message send --media`.
* Разрешить автоответам из веб-входящих включать медиа вместе с текстом.
* Сохранять разумные и предсказуемые ограничения для каждого типа.

## Поверхность CLI

* `openclaw message send --media <path-or-url> [--message <caption>]`
  * `--media` необязателен; подпись может быть пустой для отправок только с медиа.
  * `--dry-run` печатает разрешенную полезную нагрузку; `--json` выводит `{ channel, to, messageId, mediaUrl, caption }`.

## Поведение веб-канала WhatsApp

* Ввод: путь к локальному файлу **или** HTTP(S) URL.
* Поток: загрузить в Buffer, определить тип медиа и собрать правильную полезную нагрузку:
  * **Изображения:** изменить размер и повторно сжать в JPEG (максимальная сторона 2048px) с целевым ограничением `channels.whatsapp.mediaMaxMb` (по умолчанию: 50 MB).
  * **Аудио/голос/видео:** передавать без изменений до 16 MB; аудио отправляется как голосовая заметка (`ptt: true`).
  * **Документы:** все остальное, до 100 MB, с сохранением имени файла, когда оно доступно.
* Воспроизведение в стиле GIF в WhatsApp: отправьте MP4 с `gifPlayback: true` (CLI: `--gif-playback`), чтобы мобильные клиенты зацикливали его прямо в строке.
* Определение MIME предпочитает магические байты, затем заголовки, затем расширение файла.
* Подпись берется из `--message` или `reply.text`; пустая подпись разрешена.
* Логирование: нерасширенный режим показывает `↩️`/`✅`; подробный режим включает размер и исходный путь/URL.

## Конвейер автоответов

* `getReplyFromConfig` возвращает `{ text?, mediaUrl?, mediaUrls? }`.
* Когда медиа присутствует, веб-отправитель разрешает локальные пути или URL через тот же конвейер, что и `openclaw message send`.
* Если предоставлено несколько медиа-элементов, они отправляются последовательно.

## Входящие медиа в команды

* Когда входящие веб-сообщения включают медиа, OpenClaw загружает его во временный файл и предоставляет переменные шаблонов:
  * `{{MediaUrl}}` псевдо-URL для входящего медиа.
  * `{{MediaPath}}` локальный временный путь, записанный перед запуском команды.
* Когда включена Docker-песочница для каждого сеанса, входящее медиа копируется в рабочую область песочницы, а `MediaPath`/`MediaUrl` переписываются в относительный путь вроде `media/inbound/<filename>`.
* Понимание медиа (если настроено через `tools.media.*` или общие `tools.media.models`) выполняется перед шаблонизацией и может вставлять блоки `[Image]`, `[Audio]` и `[Video]` в `Body`.
  * Аудио задает `{{Transcript}}` и использует транскрипт для разбора команд, чтобы slash-команды продолжали работать.
  * Описания видео и изображений сохраняют любой текст подписи для разбора команд.
  * Если активная основная модель изображений уже нативно поддерживает зрение, OpenClaw пропускает сводный блок `[Image]` и вместо этого передает модели исходное изображение.
* По умолчанию обрабатывается только первое подходящее вложение изображения/аудио/видео; задайте `tools.media.<cap>.attachments`, чтобы обрабатывать несколько вложений.

## Ограничения и ошибки

**Ограничения исходящей отправки (веб-отправка WhatsApp)**

* Изображения: до `channels.whatsapp.mediaMaxMb` (по умолчанию: 50 MB) после повторного сжатия.
* Аудио/голос/видео: ограничение 16 MB; документы: ограничение 100 MB.
* Слишком большое или нечитаемое медиа → понятная ошибка в логах, и ответ пропускается.

**Ограничения понимания медиа (транскрипция/описание)**

* Изображение по умолчанию: 10 MB (`tools.media.image.maxBytes`).
* Аудио по умолчанию: 20 MB (`tools.media.audio.maxBytes`).
* Видео по умолчанию: 50 MB (`tools.media.video.maxBytes`).
* Слишком большое медиа пропускает понимание, но ответы все равно проходят с исходным телом.

## Примечания для тестов

* Покрывайте потоки отправки и ответов для случаев с изображениями/аудио/документами.
* Проверяйте повторное сжатие для изображений (граница размера) и флаг голосовой заметки для аудио.
* Убедитесь, что ответы с несколькими медиа расходятся как последовательные отправки.

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

* [Захват с камеры](/ru/nodes/camera)
* [Понимание медиа](/ru/nodes/media-understanding)
* [Аудио и голосовые заметки](/ru/nodes/audio)
