tools.media, l’ordine di fallback e l’integrazione con la pipeline di risposta.
Obiettivi
- Opzionale: pre-elaborare i media in ingresso in testo breve per un instradamento più rapido e una migliore analisi dei comandi.
- Conservare sempre la consegna dei media originali al modello.
- Supportare API dei provider e fallback CLI.
- Consentire più modelli con fallback ordinato (errore/dimensione/timeout).
Comportamento generale
Seleziona per capability
Per ogni capability abilitata (immagine/audio/video), seleziona gli allegati in base alla policy (predefinito: primo).
Fallback in caso di errore
Se un modello non riesce o il media è troppo grande, passa alla voce successiva.
Applica blocco di successo
In caso di successo:
Bodydiventa un blocco[Image],[Audio]o[Video].- L’audio imposta
{{Transcript}}; l’analisi dei comandi usa il testo della didascalia quando presente, altrimenti la trascrizione. - Le didascalie vengono conservate come
User text:all’interno del blocco.
Panoramica della configurazione
tools.media supporta modelli condivisi più override per capability:
Chiavi di primo livello
Chiavi di primo livello
tools.media.models: elenco di modelli condiviso (usacapabilitiesper limitare).tools.media.image/tools.media.audio/tools.media.video:- valori predefiniti (
prompt,maxChars,maxBytes,timeoutSeconds,language) - override del provider (
baseUrl,headers,providerOptions) - opzioni audio Deepgram tramite
tools.media.audio.providerOptions.deepgram - controlli di eco della trascrizione audio (
echoTranscript, predefinitofalse;echoFormat) - elenco
modelsper capability opzionale (preferito prima dei modelli condivisi) - policy degli
attachments(mode,maxAttachments,prefer) scope(gating opzionale per chiave channel/chatType/session)
- valori predefiniti (
tools.media.concurrency: numero massimo di esecuzioni di capability simultanee (predefinito 2).
Voci modello
Ogni vocemodels[] può essere provider o CLI:
- Voce provider
- Voce CLI
Credenziali del provider (apiKey)
La comprensione dei media tramite provider usa la stessa risoluzione dell’autenticazione del provider delle normali chiamate al modello: profili di autenticazione, variabili d’ambiente, poi models.providers.<providerId>.apiKey.
Le voci tools.media.*.models[] non accettano un campo apiKey inline. Il valore provider in una voce di modello media, come openai o moonshot, deve avere credenziali disponibili tramite una delle sorgenti standard di autenticazione del provider.
Esempio minimo:
Valori predefiniti e limiti
Valori predefiniti consigliati:maxChars: 500 per immagine/video (breve, adatto ai comandi)maxChars: non impostato per audio (trascrizione completa a meno che non imposti un limite)maxBytes:- immagine: 10 MB
- audio: 20 MB
- video: 50 MB
Regole
Regole
- Se il media supera
maxBytes, quel modello viene saltato e viene provato il modello successivo. - I file audio più piccoli di 1024 byte vengono trattati come vuoti/corrotti e saltati prima della trascrizione provider/CLI; il contesto di risposta in ingresso riceve una trascrizione segnaposto deterministica così l’agente sa che la nota era troppo piccola.
- Se il modello restituisce più di
maxChars, l’output viene troncato. - Il valore predefinito di
promptè un semplice “Describe the .” più le indicazioni dimaxChars(solo immagine/video). - Se il modello immagine primario attivo supporta già nativamente la visione, OpenClaw salta il blocco di riepilogo
[Image]e passa invece l’immagine originale al modello. - Se un modello primario Gateway/WebChat è solo testo, gli allegati immagine vengono conservati come riferimenti offload
media://inbound/*così gli strumenti immagine/PDF o il modello immagine configurato possono comunque ispezionarli invece di perdere l’allegato. - Le richieste esplicite
openclaw infer image describe --model <provider/model>sono diverse: eseguono direttamente quel provider/modello con capacità immagine, inclusi riferimenti Ollama comeollama/qwen2.5vl:7b. - Se
<capability>.enabled: truema non sono configurati modelli, OpenClaw prova il modello di risposta attivo quando il suo provider supporta la capability.
Rilevamento automatico della comprensione dei media (predefinito)
Setools.media.<capability>.enabled non è impostato su false e non hai configurato modelli, OpenClaw rileva automaticamente in quest’ordine e si ferma alla prima opzione funzionante:
Modello di risposta attivo
Modello di risposta attivo quando il suo provider supporta la capability.
agents.defaults.imageModel
Riferimenti primari/fallback
agents.defaults.imageModel (solo immagine).
Preferisci riferimenti provider/model. I riferimenti senza prefisso vengono qualificati dalle sole voci di modello provider configurate con capacità immagine quando la corrispondenza è univoca.CLI locali (solo audio)
CLI locali (se installate):
sherpa-onnx-offline(richiedeSHERPA_ONNX_MODEL_DIRcon encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; usaWHISPER_CPP_MODELo il modello tiny incluso)whisper(CLI Python; scarica i modelli automaticamente)
Autenticazione provider
- Le voci
models.providers.*configurate che supportano la capability vengono provate prima dell’ordine di fallback incluso. - I provider di configurazione solo immagine con un modello con capacità immagine si registrano automaticamente per la comprensione dei media anche quando non sono un Plugin fornitore incluso.
- La comprensione delle immagini Ollama è disponibile quando selezionata esplicitamente, per esempio tramite
agents.defaults.imageModeloopenclaw infer image describe --model ollama/<vision-model>.
- Audio: OpenAI → Groq → xAI → Deepgram → OpenRouter → Google → SenseAudio → ElevenLabs → Mistral
- Immagine: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Video: Google → Qwen → Moonshot
Il rilevamento dei binari è best-effort su macOS/Linux/Windows; assicurati che la CLI sia in
PATH (espandiamo ~) oppure imposta un modello CLI esplicito con un percorso completo del comando.Supporto dell’ambiente proxy (modelli provider)
Quando la comprensione dei media audio e video basata su provider è abilitata, OpenClaw rispetta le variabili d’ambiente proxy outbound standard per le chiamate HTTP ai provider:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Capability (opzionale)
Se imposticapabilities, la voce viene eseguita solo per quei tipi di media. Per gli elenchi condivisi, OpenClaw può inferire i valori predefiniti:
openai,anthropic,minimax: immagineminimax-portal: immaginemoonshot: immagine + videoopenrouter: immagine + audiogoogle(API Gemini): immagine + audio + videoqwen: immagine + videomistral: audiozai: immaginegroq: audioxai: audiodeepgram: audio- Qualsiasi catalogo
models.providers.<id>.models[]con un modello con capacità immagine: immagine
capabilities esplicitamente per evitare corrispondenze inattese. Se ometti capabilities, la voce è idonea per l’elenco in cui compare.
Matrice di supporto dei provider (integrazioni OpenClaw)
| Capability | Integrazione provider | Note |
|---|---|---|
| Immagine | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, provider di configurazione | I Plugin dei fornitori registrano il supporto immagine; openai/* può usare chiavi API o instradamento Codex OAuth; codex/* usa un turno limitato di Codex app-server; MiniMax e MiniMax OAuth usano entrambi MiniMax-VL-01; i provider di configurazione con capacità immagine si registrano automaticamente. |
| Audio | OpenAI, Groq, xAI, Deepgram, OpenRouter, Google, SenseAudio, ElevenLabs, Mistral | Trascrizione provider (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral). |
| Video | Google, Qwen, Moonshot | Comprensione video provider tramite Plugin dei fornitori; la comprensione video Qwen usa gli endpoint Standard DashScope. |
Nota MiniMax
- La comprensione delle immagini di
minimax,minimax-cn,minimax-portaleminimax-portal-cnproviene dal provider multimedialeMiniMax-VL-01di proprietà del Plugin. - Il routing automatico delle immagini continua a usare
MiniMax-VL-01anche se i metadati legacy della chat MiniMax M2.x dichiarano input immagine.
Indicazioni per la selezione dei modelli
- Preferisci il modello di ultima generazione più potente disponibile per ogni capacità multimediale quando qualità e sicurezza sono importanti.
- Per agenti abilitati agli strumenti che gestiscono input non attendibili, evita modelli multimediali più vecchi o più deboli.
- Mantieni almeno un fallback per capacità per la disponibilità (modello di qualità + modello più veloce/economico).
- I fallback CLI (
whisper-cli,whisper,gemini) sono utili quando le API dei provider non sono disponibili. - Nota su
parakeet-mlx: con--output-dir, OpenClaw legge<output-dir>/<media-basename>.txtquando il formato di output ètxt(o non specificato); i formati nontxtricadono su stdout.
Criteri per gli allegati
Per ogni capacità,attachments controlla quali allegati vengono elaborati:
Se elaborare il primo allegato selezionato o tutti gli allegati.
Limita il numero elaborato.
Preferenza di selezione tra gli allegati candidati.
mode: "all", gli output sono etichettati [Image 1/2], [Audio 2/2] e così via.
Comportamento di estrazione dagli allegati file
Comportamento di estrazione dagli allegati file
- Il testo estratto dai file viene racchiuso come contenuto esterno non attendibile prima di essere aggiunto al prompt multimediale.
- Il blocco inserito usa marcatori di confine espliciti come
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>e include una riga di metadatiSource: External. - Questo percorso di estrazione dagli allegati omette intenzionalmente il lungo banner
SECURITY NOTICE:per evitare di appesantire il prompt multimediale; i marcatori di confine e i metadati restano comunque presenti. - Se un file non ha testo estraibile, OpenClaw inserisce
[No extractable text]. - Se in questo percorso un PDF ricade su immagini di pagina renderizzate, OpenClaw inoltra quelle immagini di pagina ai modelli di risposta compatibili con la visione e mantiene il placeholder
[PDF content rendered to images]nel blocco del file.
Esempi di configurazione
- Modelli condivisi + override
- Solo audio + video
- Solo immagini
- Singola voce multimodale
Output di stato
Quando la comprensione multimediale viene eseguita,/status include una breve riga di riepilogo:
Note
- La comprensione è best-effort. Gli errori non bloccano le risposte.
- Gli allegati vengono comunque passati ai modelli anche quando la comprensione è disabilitata.
- Usa
scopeper limitare dove viene eseguita la comprensione (ad esempio solo nei DM).