tools.media, a ordem de fallback e a integração com o pipeline de resposta.
Como funciona
1
Coletar anexos
Coleta os anexos recebidos (
MediaPaths, MediaUrls, MediaTypes).2
Selecionar por recurso
Para cada recurso habilitado (imagem/áudio/vídeo), seleciona os anexos de acordo com a política
attachments (padrão: somente o primeiro anexo).3
Escolher um modelo
Seleciona a primeira entrada de modelo qualificada (tamanho + recurso + autenticação disponível).
4
Usar fallback em caso de falha
Se um modelo apresentar um erro, exceder o tempo limite ou a mídia ultrapassar
maxBytes, tenta a próxima entrada.5
Aplicar em caso de sucesso
Body se torna um bloco [Image], [Audio] ou [Video]. O áudio também define {{Transcript}}; a análise de comandos usa o texto da legenda quando presente ou, caso contrário, a transcrição. As legendas são preservadas como User text: dentro do bloco.Configuração
tools.media contém uma lista compartilhada de modelos e substituições específicas para cada recurso:
image/audio/video):
As opções específicas do Deepgram ficam em
providerOptions.deepgram (o campo de nível superior deepgram: { detectLanguage, punctuate, smartFormat } está obsoleto, mas ainda é lido).
Entradas de modelo
Cada entrada emmodels[] é uma entrada de provedor (padrão) ou uma entrada de CLI:
- Entrada de provedor
- Entrada de CLI
Credenciais do provedor
A compreensão de mídia pelo provedor usa a mesma resolução de autenticação das chamadas normais de modelos: perfis de autenticação, variáveis de ambiente e, em seguida,models.providers.<providerId>.apiKey. As entradas tools.media.*.models[] não aceitam um campo apiKey embutido.
Regras e comportamento
- Mídias que ultrapassam
maxBytesignoram esse modelo e tentam o próximo. - Arquivos de áudio com menos de 1024 bytes são tratados como vazios/corrompidos e ignorados antes da transcrição; em vez disso, o agente recebe uma transcrição de espaço reservado determinística.
- Se o modelo de imagem principal ativo já oferecer suporte nativo à visão, o OpenClaw ignora o bloco de resumo
[Image]e passa a imagem original diretamente ao modelo. O MiniMax é uma exceção:minimax,minimax-cn,minimax-portaleminimax-portal-cnsempre encaminham a compreensão de imagens pelo provedor de mídiaMiniMax-VL-01, controlado pelo plugin, mesmo que os metadados legados de chat do MiniMax M2.x afirmem aceitar entrada de imagem (somenteMiniMax-M3e posteriores são tratados como compatíveis nativamente com visão). - Se um modelo principal do Gateway/WebChat aceitar somente texto, os anexos de imagem são preservados como referências descarregadas
media://inbound/*, para que ferramentas de imagem/PDF ou um modelo de imagem configurado ainda possam inspecioná-los, em vez de perder o anexo. - O comando explícito
openclaw infer image describe --file <path> --model <provider/model>(alias:openclaw capability image describe) executa diretamente esse provedor/modelo compatível com imagens, incluindo referências do Ollama comoollama/qwen2.5vl:7bquando um modelo correspondente compatível com imagens está configurado emmodels.providers.ollama.models[]. - Se
<capability>.enablednão forfalse, mas nenhum modelo estiver configurado, o OpenClaw tentará usar o modelo de resposta ativo quando o provedor dele oferecer suporte ao recurso.
Detecção automática (padrão)
Quandotools.media.<capability>.enabled não é false e nenhum modelo está configurado, o OpenClaw tenta as opções a seguir, em ordem, e para na primeira que funcionar:
1
Modelo de imagem configurado (somente imagem)
Referências primárias/de fallback de
agents.defaults.imageModel, a menos que o modelo de resposta ativo já ofereça suporte nativo à visão. Dê preferência a referências provider/model; referências simples são qualificadas com base nas entradas configuradas de modelos de provedores compatíveis com imagens somente quando a correspondência é única.2
Modelo de resposta ativo
O modelo de resposta ativo, quando seu provedor oferece suporte ao recurso.
3
Autenticação do provedor (somente áudio, antes das CLIs locais)
As entradas configuradas em
models.providers.* que oferecem suporte a áudio são testadas antes das CLIs locais. Ordem de prioridade dos provedores incluídos (empates são resolvidos alfabeticamente pelo ID do provedor): Groq/OpenAI → xAI → Deepgram → OpenRouter → Google/SenseAudio → Deepinfra/ElevenLabs → Mistral.4
CLIs locais (somente áudio)
Binários locais prontos tornam-se uma lista ordenada de fallback:
whisper-cliprimeiro somente depois que uma invocação anterior de modelo no processo atual tiver detectado Metal ou CUDAsherpa-onnx-offlinecom CPU como padrão (requerSHERPA_ONNX_MODEL_DIRcomtokens.txt/encoder.onnx/decoder.onnx/joiner.onnx)whisper-cliquando a aceleração é apenas compatível com a compilação ou ainda não foi observadaparakeet-mlxno Apple Silicon (compatível com MLX, uso do dispositivo não observado)whisper(CLI do Python; usa o modeloturbopor padrão e o baixa automaticamente)
5
Autenticação do provedor (imagem/vídeo)
As entradas configuradas em
models.providers.* que oferecem suporte ao recurso são testadas antes da ordem de fallback incluída. Provedores de configuração somente para imagem que tenham um modelo compatível com imagens são registrados automaticamente para a compreensão de mídia, mesmo quando não são um plugin de fornecedor incluído.Ordem de prioridade dos provedores incluídos (empates são resolvidos alfabeticamente pelo ID do provedor):- Imagem: Anthropic/OpenAI → Google → MiniMax → Deepinfra → MiniMax Portal → Z.AI
- Vídeo: Google → Qwen → Moonshot
6
CLI do Antigravity (somente imagem/vídeo)
O primeiro binário
agy ou antigravity instalado (substitua com OPENCLAW_ANTIGRAVITY_CLI), isolado no diretório da mídia.A detecção de binários é feita com o melhor esforço possível no macOS/Linux/Windows; certifique-se de que a CLI esteja no
PATH (~ é expandido) ou defina uma entrada explícita de modelo de CLI com o caminho completo do comando.Suporte a proxy (chamadas de provedores de áudio/vídeo)
A compreensão de áudio e vídeo baseada em provedores respeita as variáveis de ambiente padrão de proxy de saída, incluindo as regras de desvioNO_PROXY/no_proxy: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy. As variáveis em minúsculas têm precedência sobre as maiúsculas. Se nenhuma estiver definida, a compreensão de mídia usa saída direta; se o valor do proxy estiver malformado, o OpenClaw registra um aviso e usa a busca direta como fallback. A compreensão de imagens não passa por esse caminho de proxy.
Recursos
Definacapabilities em uma entrada models[] para restringi-la a tipos de mídia específicos. Para listas compartilhadas, o OpenClaw infere os padrões de cada provedor incluído:
Para entradas da CLI, defina
capabilities explicitamente para evitar correspondências inesperadas; se omitido, a entrada será elegível para todas as listas de recursos em que aparecer.
Matriz de compatibilidade dos provedores
Observação sobre o MiniMax: a compreensão de imagens de
minimax, minimax-cn, minimax-portal e minimax-portal-cn sempre vem do provedor de mídia MiniMax-VL-01, pertencente ao Plugin, mesmo que metadados legados de chat do MiniMax M2.x aleguem aceitar entrada de imagens.Orientações para seleção de modelos
- Prefira o modelo mais avançado da geração atual para cada recurso de mídia quando qualidade e segurança forem importantes.
- Para agentes com ferramentas que processam entradas não confiáveis, evite modelos de mídia mais antigos ou menos avançados.
- Mantenha pelo menos uma alternativa por recurso para garantir disponibilidade (um modelo de qualidade + um modelo mais rápido ou barato).
- As alternativas da CLI (
whisper-cli,whisper,gemini) ajudam quando as APIs dos provedores estão indisponíveis. - Os modos conhecidos de saída em arquivo são determinantes: um arquivo de transcrição inferido vazio ou ausente não produz transcrição, em vez de recorrer à saída de progresso da CLI.
parakeet-mlx: use--output-format txt(ouall) com--output-dire o modelo de saída padrão{filename}. As variáveis de ambiente upstreamPARAKEET_OUTPUT_FORMATePARAKEET_OUTPUT_TEMPLATEtambém são respeitadas. O OpenClaw lê<output-dir>/<media-basename>.txt; o formato padrãosrt, outros formatos e modelos de saída personalizados continuam usando stdout.
Política de anexos
A opçãoattachments de cada recurso controla quais anexos são processados:
"first" | "all"
padrão:"first"
Processa apenas o primeiro anexo selecionado ou todos eles.
number
padrão:"1"
Limita a quantidade processada.
"first" | "last" | "path" | "url"
Preferência de seleção entre os anexos candidatos.
mode: "all", as saídas recebem rótulos como [Imagem 1/2], [Áudio 2/2] etc.
Extração de anexos de arquivo
- O texto extraído do arquivo é encapsulado como conteúdo externo não confiável antes de ser acrescentado ao prompt de mídia, usando marcadores de limite como
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>, além de uma linha de metadadosSource: External. - Esse caminho omite intencionalmente o longo banner
SECURITY NOTICE:para manter o prompt de mídia curto; os marcadores de limite e os metadados continuam sendo aplicados. - Um arquivo sem texto extraível recebe
[Nenhum texto extraível]. - Se um PDF recorrer a imagens renderizadas das páginas, o OpenClaw encaminhará essas imagens aos modelos de resposta com capacidade de visão e manterá o espaço reservado
[Conteúdo do PDF renderizado como imagens]no bloco do arquivo.
Exemplos de configuração
- Audio + video only
- Image only
- Multi-modal single entry
Saída de status
Quando a compreensão de mídia é executada,/status inclui uma linha de resumo por recurso:
openclaw capability audio providers. As linhas locais mostram separadamente a alternativa local selecionada, a seleção global de provedores, a prontidão e os campos distintos de back-end compatível, solicitado e observado. A mesma seleção local está disponível como uma constatação informativa do doctor:
Observações
- A compreensão é feita com o melhor esforço possível. Erros não bloqueiam as respostas.
- Os anexos ainda são enviados aos modelos mesmo quando a compreensão está desativada.
- Use
scopepara limitar onde a compreensão é executada (por exemplo, somente em mensagens diretas).