Entendimento de mídia - Entrada (2026-01-17)
O OpenClaw pode resumir mídia de entrada (imagem/áudio/vídeo) antes de o pipeline de resposta ser executado. Ele detecta automaticamente quando ferramentas locais ou chaves de provider estão disponíveis e pode ser desativado ou personalizado. Se o entendimento estiver desativado, os modelos ainda receberão os arquivos/URLs originais normalmente. O comportamento de mídia específico de cada fornecedor é registrado por plugins do fornecedor, enquanto o core do OpenClaw é proprietário da configuração compartilhadatools.media, da ordem de fallback e da integração com o pipeline de resposta.
Objetivos
- Opcional: fazer um pré-processamento da mídia de entrada em texto curto para roteamento mais rápido + melhor análise de comandos.
- Preservar sempre a entrega da mídia original ao modelo.
- Oferecer suporte a APIs de provider e fallbacks por CLI.
- Permitir vários modelos com fallback ordenado (erro/tamanho/timeout).
Comportamento de alto nível
- Coletar anexos de entrada (
MediaPaths,MediaUrls,MediaTypes). - Para cada capacidade ativada (imagem/áudio/vídeo), selecionar anexos conforme a política (padrão: primeiro).
- Escolher a primeira entrada de modelo elegível (tamanho + capacidade + autenticação).
- Se um modelo falhar ou a mídia for grande demais, recorrer à próxima entrada.
- Em caso de sucesso:
Bodyse torna um bloco[Image],[Audio]ou[Video].- Áudio define
{{Transcript}}; a análise de comandos usa o texto da legenda quando presente, caso contrário usa a transcrição. - As legendas são preservadas como
User text:dentro do bloco.
Visão geral da configuração
tools.media oferece suporte a modelos compartilhados mais substituições por capacidade:
tools.media.models: lista compartilhada de modelos (usecapabilitiespara limitar).tools.media.image/tools.media.audio/tools.media.video:- padrões (
prompt,maxChars,maxBytes,timeoutSeconds,language) - substituições de provider (
baseUrl,headers,providerOptions) - opções de áudio Deepgram via
tools.media.audio.providerOptions.deepgram - controles de eco da transcrição de áudio (
echoTranscript, padrãofalse;echoFormat) - lista
modelsopcional por capacidade (preferida antes dos modelos compartilhados) - política de
attachments(mode,maxAttachments,prefer) scope(bloqueio opcional por canal/chatType/chave de sessão)
- padrões (
tools.media.concurrency: número máximo de execuções concorrentes de capacidade (padrão 2).
Entradas de modelo
Cada entradamodels[] pode ser de provider ou CLI:
{{MediaDir}}(diretório que contém o arquivo de mídia){{OutputDir}}(diretório temporário criado para esta execução){{OutputBase}}(caminho base do arquivo temporário, sem extensão)
Padrões e limites
Padrões recomendados:maxChars: 500 para imagem/vídeo (curto, amigável para comandos)maxChars: não definido para áudio (transcrição completa, a menos que você defina um limite)maxBytes:- imagem: 10MB
- áudio: 20MB
- vídeo: 50MB
- Se a mídia exceder
maxBytes, esse modelo é ignorado e o próximo modelo é tentado. - Arquivos de áudio menores que 1024 bytes são tratados como vazios/corrompidos e ignorados antes da transcrição por provider/CLI.
- Se o modelo retornar mais que
maxChars, a saída será truncada. promptusa por padrão um simples “Descreva a .” mais a orientação demaxChars(somente imagem/vídeo).- Se o modelo de imagem principal ativo já oferecer suporte nativo a visão, o OpenClaw
ignora o bloco de resumo
[Image]e passa a imagem original ao modelo. - Se
<capability>.enabled: true, mas nenhum modelo estiver configurado, o OpenClaw tentará o modelo de resposta ativo quando o provider dele oferecer suporte à capacidade.
Detecção automática de entendimento de mídia (padrão)
Setools.media.<capability>.enabled não estiver definido como false e você não tiver
configurado modelos, o OpenClaw detecta automaticamente nesta ordem e para na primeira
opção funcional:
- Modelo de resposta ativo quando o provider dele oferece suporte à capacidade.
agents.defaults.imageModelrefs primários/fallbacks (somente imagem).- CLIs locais (somente áudio; se instaladas)
sherpa-onnx-offline(exigeSHERPA_ONNX_MODEL_DIRcom encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; usaWHISPER_CPP_MODELou o modelo tiny incluído)whisper(CLI Python; baixa modelos automaticamente)
- Gemini CLI (
gemini) usandoread_many_files - Autenticação de provider
- Entradas configuradas em
models.providers.*com suporte à capacidade são tentadas antes da ordem de fallback incluída. - Providers de config apenas para imagem com um modelo compatível com imagem se registram automaticamente para entendimento de mídia, mesmo quando não são um plugin incluído do fornecedor.
- Ordem de fallback incluída:
- Áudio: OpenAI → Groq → Deepgram → Google → Mistral
- Imagem: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Vídeo: Google → Qwen → Moonshot
- Entradas configuradas em
PATH (expandimos ~) ou defina um modelo CLI explícito com o caminho completo do comando.
Suporte a ambiente de proxy (modelos de provider)
Quando o entendimento de mídia por provider de áudio e vídeo está ativado, o OpenClaw respeita as variáveis de ambiente padrão de proxy de saída para chamadas HTTP ao provider:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
Capacidades (opcional)
Se você definircapabilities, a entrada será executada apenas para esses tipos de mídia. Para listas compartilhadas, o OpenClaw pode inferir padrões:
openai,anthropic,minimax: imageminimax-portal: imagemoonshot: image + videoopenrouter: imagegoogle(Gemini API): image + audio + videoqwen: image + videomistral: audiozai: imagegroq: audiodeepgram: audio- Qualquer catálogo
models.providers.<id>.models[]com um modelo compatível com imagem: image
capabilities explicitamente para evitar correspondências surpreendentes.
Se você omitir capabilities, a entrada será elegível para a lista em que aparece.
Matriz de suporte de providers (integrações OpenClaw)
| Capacidade | Integração de provider | Observações |
|---|---|---|
| Imagem | OpenAI, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, providers de config | Plugins do fornecedor registram suporte a imagem; MiniMax e MiniMax OAuth usam MiniMax-VL-01; providers de config compatíveis com imagem se registram automaticamente. |
| Áudio | OpenAI, Groq, Deepgram, Google, Mistral | Transcrição por provider (Whisper/Deepgram/Gemini/Voxtral). |
| Vídeo | Google, Qwen, Moonshot | Entendimento de vídeo por provider via plugins do fornecedor; o entendimento de vídeo do Qwen usa os endpoints padrão do DashScope. |
- O entendimento de imagem de
minimaxeminimax-portalvem do provider de mídiaMiniMax-VL-01, de propriedade do plugin. - O catálogo de texto incluído do MiniMax continua começando apenas com texto; entradas explícitas em
models.providers.minimaxmaterializam refs de chat M2.7 compatíveis com imagem.
Orientação para seleção de modelo
- Prefira o modelo mais forte e de geração mais recente disponível para cada capacidade de mídia quando qualidade e segurança forem importantes.
- Para agentes com ferramentas lidando com entradas não confiáveis, evite modelos de mídia mais antigos/mais fracos.
- Mantenha pelo menos um fallback por capacidade para disponibilidade (modelo de qualidade + modelo mais rápido/mais barato).
- Fallbacks por CLI (
whisper-cli,whisper,gemini) são úteis quando APIs de provider não estão disponíveis. - Observação sobre
parakeet-mlx: com--output-dir, o OpenClaw lê<output-dir>/<media-basename>.txtquando o formato de saída étxt(ou não especificado); formatos que não sejamtxtrecorrem a stdout.
Política de anexos
attachments por capacidade controla quais anexos são processados:
mode:first(padrão) ouallmaxAttachments: limita o número processado (padrão 1)prefer:first,last,path,url
mode: "all", as saídas recebem rótulos [Image 1/2], [Audio 2/2] etc.
Comportamento de extração de anexos de arquivo:
- O texto extraído do arquivo é envolvido como conteúdo externo não confiável antes de ser acrescentado ao prompt de mídia.
- O bloco injetado usa marcadores explícitos de limite como
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>e inclui uma linha de metadadosSource: External. - Esse caminho de extração de anexos omite intencionalmente o banner longo
SECURITY NOTICE:para evitar aumentar demais o prompt de mídia; os marcadores de limite e os metadados ainda permanecem. - Se um arquivo não tiver texto extraível, o OpenClaw injeta
[No extractable text]. - Se um PDF recorrer a imagens renderizadas das páginas nesse caminho, o prompt de mídia mantém
o placeholder
[PDF content rendered to images; images not forwarded to model]porque essa etapa de extração de anexos encaminha blocos de texto, não as imagens renderizadas do PDF.
Exemplos de configuração
1) Lista compartilhada de modelos + substituições
2) Somente áudio + vídeo (imagem desativada)
3) Entendimento opcional de imagem
4) Entrada única multimodal (capacidades explícitas)
Saída de status
Quando o entendimento de mídia é executado,/status inclui uma linha curta de resumo:
Observações
- O entendimento é best-effort. Erros não bloqueiam respostas.
- Os anexos ainda são passados aos modelos mesmo quando o entendimento está desativado.
- Use
scopepara limitar onde o entendimento é executado (por exemplo, apenas DMs).