Skip to main content
OpenClaw может создавать краткие описания входящих медиафайлов (изображений, аудио и видео) до запуска конвейера ответа, поэтому синтаксический анализ команд и маршрутизация работают с коротким текстом вместо необработанных байтов. Механизм распознавания автоматически обнаруживает локальные инструменты или ключи провайдеров; также можно явно настроить модели. Исходные медиафайлы всегда передаются модели как обычно; если распознавание завершается с ошибкой или отключено, поток ответа продолжается без изменений. Плагины поставщиков регистрируют метаданные возможностей (какой провайдер поддерживает какой тип медиа, модель по умолчанию и приоритет). Ядро OpenClaw отвечает за общую конфигурацию tools.media, порядок резервных вариантов и интеграцию с конвейером ответа.

Как это работает

1

Сбор вложений

Собирает входящие вложения (MediaPaths, MediaUrls, MediaTypes).
2

Выбор для каждой возможности

Для каждой включённой возможности (изображения, аудио и видео) выбирает вложения согласно политике attachments (по умолчанию — только первое вложение).
3

Выбор модели

Выбирает первую подходящую запись модели (с учётом размера, возможности и наличия аутентификации).
4

Резервный вариант при ошибке

Если модель возвращает ошибку, превышает время ожидания или размер медиа превышает maxBytes, пробует следующую запись.
5

Применение при успешном результате

Body становится блоком [Image], [Audio] или [Video]. Для аудио также задаётся {{Transcript}}; при синтаксическом анализе команд используется текст подписи, если он присутствует, иначе — расшифровка. Подписи сохраняются внутри блока как User text:.

Конфигурация

tools.media содержит общий список моделей и переопределения для отдельных возможностей:
Ключи для отдельных возможностей (image/audio/video): Параметры, относящиеся к Deepgram, задаются в providerOptions.deepgram (поле верхнего уровня deepgram: { detectLanguage, punctuate, smartFormat } устарело, но по-прежнему считывается).

Записи моделей

Каждая запись models[] является записью провайдера (по умолчанию) или записью CLI:

Учётные данные провайдера

Для распознавания медиа через провайдера используется тот же порядок разрешения аутентификации, что и для обычных вызовов моделей: профили аутентификации, переменные окружения, затем models.providers.<providerId>.apiKey. Записи tools.media.*.models[] не принимают встроенное поле apiKey.
Сведения о профилях, переменных окружения и пользовательских базовых URL см. в разделе Инструменты и пользовательские провайдеры.

Правила и поведение

  • Если размер медиа превышает maxBytes, эта модель пропускается и пробуется следующая.
  • Аудиофайлы размером менее 1024 байт считаются пустыми или повреждёнными и пропускаются до расшифровки; вместо них агент получает детерминированный текст-заполнитель.
  • Если активная основная модель изображений уже изначально поддерживает зрение, OpenClaw пропускает блок краткого описания [Image] и передаёт исходное изображение непосредственно модели. MiniMax является исключением: minimax, minimax-cn, minimax-portal и minimax-portal-cn всегда направляют распознавание изображений через принадлежащий плагину медиапровайдер MiniMax-VL-01, даже если устаревшие метаданные чата MiniMax M2.x заявляют поддержку ввода изображений (изначально поддерживающими зрение считаются только MiniMax-M3 и более поздние версии).
  • Если основная модель Gateway/WebChat поддерживает только текст, вложения изображений сохраняются как выгруженные ссылки media://inbound/*, чтобы инструменты для изображений/PDF или настроенная модель изображений всё ещё могли их проверить и вложение не было потеряно.
  • Явно заданный openclaw infer image describe --file <path> --model <provider/model> (псевдоним: openclaw capability image describe) запускает этот провайдер и модель с поддержкой изображений напрямую, включая ссылки Ollama, такие как ollama/qwen2.5vl:7b, если соответствующая модель с поддержкой изображений настроена в models.providers.ollama.models[].
  • Если <capability>.enabled не равен false, но модели не настроены, OpenClaw пробует активную модель ответа, если её провайдер поддерживает эту возможность.

Автообнаружение (по умолчанию)

Если tools.media.<capability>.enabled не равен false и модели не настроены, OpenClaw пробует следующие варианты по порядку и останавливается на первом работающем:
1

Настроенная модель изображений (только изображения)

Основные и резервные ссылки agents.defaults.imageModel, если активная модель ответа ещё не поддерживает зрение изначально. Предпочтительны ссылки provider/model; ссылки без квалификатора дополняются данными из настроенных записей моделей провайдеров с поддержкой изображений, только если соответствие однозначно.
2

Активная модель ответа

Активная модель ответа, если её провайдер поддерживает эту возможность.
3

Аутентификация провайдера (только аудио, перед локальными CLI)

Настроенные записи models.providers.*, поддерживающие аудио, пробуются перед локальными CLI. Порядок приоритета встроенных провайдеров (при равном приоритете — в алфавитном порядке по идентификатору провайдера): Groq/OpenAI → xAI → Deepgram → OpenRouter → Google/SenseAudio → Deepinfra/ElevenLabs → Mistral.
4

Локальные CLI (только аудио)

Готовые локальные исполняемые файлы образуют упорядоченный список резервных вариантов:
  • whisper-cli — первым, только если предыдущий вызов модели в текущем процессе обнаружил Metal или CUDA
  • sherpa-onnx-offline с использованием CPU по умолчанию (требует SHERPA_ONNX_MODEL_DIR с tokens.txt/encoder.onnx/decoder.onnx/joiner.onnx)
  • whisper-cli, если ускорение лишь поддерживается сборкой или ещё не обнаружено
  • parakeet-mlx на Apple Silicon (поддерживает MLX, использование устройства не обнаружено)
  • whisper (CLI на Python; по умолчанию использует модель turbo, загружается автоматически)
Результат проверки возможностей бэкенда кэшируется и не загружает модель. Возможности сборки, запрошенные флаги бэкенда и бэкенд, обнаруженный при реальном вызове, учитываются отдельно. Автоматически обнаруженный whisper.cpp оставляет журналы запуска модели включёнными, чтобы можно было записать строку выбранного бэкенда от вышестоящего компонента. Явные записи CLI сохраняют заданный порядок, флаги бэкенда и флаги вывода.
5

Аутентификация провайдера (изображения/видео)

Настроенные записи models.providers.*, поддерживающие эту возможность, пробуются до встроенного порядка резервных вариантов. Провайдеры, настроенные только для изображений и имеющие модель с поддержкой изображений, автоматически регистрируются для распознавания медиа, даже если они не являются встроенным плагином поставщика.Порядок приоритета встроенных провайдеров (при равном приоритете — в алфавитном порядке по идентификатору провайдера):
  • Изображения: Anthropic/OpenAI → Google → MiniMax → Deepinfra → MiniMax Portal → Z.AI
  • Видео: Google → Qwen → Moonshot
6

CLI Antigravity (только изображения/видео)

Первый установленный исполняемый файл agy или antigravity (можно переопределить с помощью OPENCLAW_ANTIGRAVITY_CLI), изолированный каталогом медиафайла.
Чтобы отключить автообнаружение для возможности:
Обнаружение исполняемых файлов выполняется по возможности в macOS/Linux/Windows; убедитесь, что CLI доступен через PATH (~ разворачивается), либо задайте явную запись модели CLI с полным путём к команде.

Поддержка прокси (вызовы провайдеров аудио/видео)

Распознавание аудио и видео на основе провайдеров учитывает стандартные переменные окружения исходящего прокси, включая правила обхода NO_PROXY/no_proxy: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy. Переменные в нижнем регистре имеют приоритет над переменными в верхнем регистре. Если ни одна из них не задана, распознавание медиа использует прямое исходящее соединение; если значение прокси некорректно, OpenClaw записывает предупреждение в журнал и переходит к прямой загрузке. Распознавание изображений не использует этот путь прокси.

Возможности

Задайте capabilities в записи models[], чтобы ограничить её определёнными типами медиа. Для общих списков OpenClaw определяет значения по умолчанию для каждого встроенного провайдера: Для записей CLI задавайте capabilities явно, чтобы избежать неожиданных совпадений; если параметр пропущен, запись может использоваться для каждого списка возможностей, в котором она присутствует.

Матрица поддержки провайдеров

Примечание о MiniMax: распознавание изображений minimax, minimax-cn, minimax-portal и minimax-portal-cn всегда выполняется медиапровайдером MiniMax-VL-01, принадлежащим плагину, даже если устаревшие метаданные чата MiniMax M2.x заявляют поддержку ввода изображений.

Рекомендации по выбору модели

  • Если важны качество и безопасность, выбирайте наиболее мощную модель текущего поколения для каждой возможности обработки медиа.
  • Для агентов с доступом к инструментам, обрабатывающих недоверенные входные данные, избегайте старых или менее мощных медиамоделей.
  • Оставляйте как минимум одну резервную модель для каждой возможности, чтобы обеспечить доступность (качественная модель + более быстрая или дешёвая модель).
  • Резервные варианты CLI (whisper-cli, whisper, gemini) помогают, когда API провайдеров недоступны.
  • Известные режимы вывода в файл имеют приоритет: пустой или отсутствующий предполагаемый файл транскрипта означает отсутствие транскрипта вместо перехода к выводу хода выполнения CLI.
  • parakeet-mlx: используйте --output-format txt (или all) с --output-dir и шаблоном вывода по умолчанию {filename}. Переменные окружения вышестоящего проекта PARAKEET_OUTPUT_FORMAT и PARAKEET_OUTPUT_TEMPLATE также учитываются. OpenClaw читает <output-dir>/<media-basename>.txt; формат по умолчанию srt, другие форматы и пользовательские шаблоны вывода продолжают использовать стандартный вывод.

Политика вложений

Параметр attachments для каждой возможности определяет, какие вложения обрабатываются:
"first" | "all"
по умолчанию:"first"
Обрабатывать только первое выбранное вложение или все вложения.
number
по умолчанию:"1"
Ограничить количество обрабатываемых вложений.
"first" | "last" | "path" | "url"
Предпочтение при выборе среди вложений-кандидатов.
Когда mode: "all", результаты помечаются как [Image 1/2], [Audio 2/2] и т. д.

Извлечение данных из файловых вложений

  • Извлечённый из файла текст оборачивается как недоверенное внешнее содержимое перед добавлением к запросу для обработки медиа с использованием граничных маркеров, таких как <<<EXTERNAL_UNTRUSTED_CONTENT id="...">>> / <<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>, а также строки метаданных Source: External.
  • В этом пути намеренно опускается длинный баннер SECURITY NOTICE:, чтобы запрос для обработки медиа оставался коротким; граничные маркеры и метаданные по-прежнему применяются.
  • Файл, из которого невозможно извлечь текст, получает [No extractable text].
  • Если для PDF используется резервный вариант с отрисованными изображениями страниц, OpenClaw передаёт эти изображения моделям ответа с поддержкой компьютерного зрения и сохраняет заполнитель [PDF content rendered to images] в блоке файла.

Примеры конфигурации

Вывод состояния

При выполнении распознавания медиа /status содержит строку сводки для каждой возможности:
Для предварительной инвентаризации выполните openclaw capability audio providers. В локальных строках победивший локальный резервный вариант отображается отдельно от глобального выбора провайдера, готовности и отдельных полей доступного, запрошенного и обнаруженного бэкенда. Тот же локальный выбор доступен как информационный результат диагностики:

Примечания

  • Распознавание выполняется по мере возможности. Ошибки не блокируют ответы.
  • Вложения всё равно передаются моделям, даже когда распознавание отключено.
  • Используйте scope, чтобы ограничить область выполнения распознавания (например, только личными сообщениями).

См. также