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:
- Запис провайдера
- Запис CLI
Облікові дані провайдера
Для розпізнавання медіа через провайдера використовується той самий порядок визначення автентифікації, що й для звичайних викликів моделей: профілі автентифікації, змінні середовища, потімmodels.providers.<providerId>.apiKey. Записи tools.media.*.models[] не приймають вбудоване поле apiKey.
Правила та поведінка
- Якщо розмір медіафайлу перевищує
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 або CUDAsherpa-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, завантажується автоматично)
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, інші формати та власні шаблони виведення й надалі використовують stdout.
Політика вкладень
Параметрattachments для кожної можливості визначає, які вкладення обробляються:
"first" | "all"
за замовчуванням:"first"
Обробляти лише перше вибране вкладення або всі вкладення.
number
за замовчуванням:"1"
Обмежує кількість оброблюваних вкладень.
"first" | "last" | "path" | "url"
Визначає пріоритет вибору серед вкладень-кандидатів.
mode: "all", результати позначаються як [Зображення 1/2], [Аудіо 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. Локальні рядки окремо показують переможця серед локальних резервних варіантів, глобальний вибір постачальника, готовність, а також окремі поля придатного, запитаного й фактично використаного бекенду. Той самий локальний вибір доступний як інформаційний результат перевірки doctor:
Примітки
- Розпізнавання виконується за принципом найкращих зусиль. Помилки не блокують відповіді.
- Вкладення все одно передаються моделям, навіть коли розпізнавання вимкнено.
- Використовуйте
scope, щоб обмежити місця виконання розпізнавання (наприклад, лише приватними повідомленнями).