tools.media-configuratie, fallbackvolgorde en integratie met de antwoordpipeline.
Doelen
- Optioneel: verwerk binnenkomende media vooraf tot korte tekst voor snellere routering + betere opdrachtanalyse.
- Behoud levering van oorspronkelijke media aan het model (altijd).
- Ondersteun provider-API’s en CLI-fallbacks.
- Sta meerdere modellen toe met geordende fallback (fout/grootte/time-out).
Gedrag op hoofdlijnen
Per capaciteit selecteren
Selecteer voor elke ingeschakelde capaciteit (afbeelding/audio/video) bijlagen volgens beleid (standaard: eerste).
Fallback bij mislukking
Als een model mislukt of de media te groot zijn, val terug op de volgende vermelding.
Configuratieoverzicht
tools.media ondersteunt gedeelde modellen plus overrides per capaciteit:
Sleutels op het hoogste niveau
Sleutels op het hoogste niveau
tools.media.models: gedeelde modellenlijst (gebruikcapabilitiesom te beperken).tools.media.image/tools.media.audio/tools.media.video:- standaardwaarden (
prompt,maxChars,maxBytes,timeoutSeconds,language) - provideroverrides (
baseUrl,headers,providerOptions) - Deepgram-audio-opties via
tools.media.audio.providerOptions.deepgram - echo-instellingen voor audiotranscript (
echoTranscript, standaardfalse;echoFormat) - optionele per-capaciteit
models-lijst (heeft voorkeur boven gedeelde modellen) attachments-beleid (mode,maxAttachments,prefer)scope(optionele gating op channel/chatType/sessiesleutel)
- standaardwaarden (
tools.media.concurrency: maximaal gelijktijdige capaciteitsruns (standaard 2).
Modelvermeldingen
Elkemodels[]-vermelding kan provider of CLI zijn:
- Providervermelding
- CLI-vermelding
Standaardwaarden en limieten
Aanbevolen standaardwaarden:maxChars: 500 voor afbeelding/video (kort, opdrachtvriendelijk)maxChars: niet ingesteld voor audio (volledig transcript tenzij je een limiet instelt)maxBytes:- afbeelding: 10MB
- audio: 20MB
- video: 50MB
Regels
Regels
- Als media
maxBytesoverschrijden, wordt dat model overgeslagen en wordt het volgende model geprobeerd. - Audiobestanden kleiner dan 1024 bytes worden behandeld als leeg/beschadigd en overgeslagen vóór provider-/CLI-transcriptie; de binnenkomende antwoordcontext ontvangt een deterministisch placeholdertranscript zodat de agent weet dat de notitie te klein was.
- Als het model meer dan
maxCharsretourneert, wordt de uitvoer ingekort. promptgebruikt standaard eenvoudige “Describe the .” plus demaxChars-richtlijn (alleen afbeelding/video).- Als het actieve primaire afbeeldingsmodel al native vision ondersteunt, slaat OpenClaw het
[Image]-samenvattingsblok over en geeft het de oorspronkelijke afbeelding in plaats daarvan door aan het model. - Als een Gateway-/WebChat-primair model alleen tekst ondersteunt, blijven afbeeldingsbijlagen behouden als offloaded
media://inbound/*-refs zodat de afbeelding-/PDF-tools of het geconfigureerde afbeeldingsmodel ze nog steeds kunnen inspecteren in plaats van de bijlage kwijt te raken. - Expliciete
openclaw infer image describe --model <provider/model>-verzoeken zijn anders: ze voeren dat afbeeldingscapabele provider/model direct uit, inclusief Ollama-refs zoalsollama/qwen2.5vl:7b. - Als
<capability>.enabled: truemaar er geen modellen zijn geconfigureerd, probeert OpenClaw het actieve antwoordmodel wanneer de provider de capaciteit ondersteunt.
Mediabegrip automatisch detecteren (standaard)
Alstools.media.<capability>.enabled niet is ingesteld op false en je geen modellen hebt geconfigureerd, detecteert OpenClaw automatisch in deze volgorde en stopt bij de eerste werkende optie:
agents.defaults.imageModel
agents.defaults.imageModel primaire/fallback-refs (alleen afbeelding).
Geef de voorkeur aan provider/model-refs. Kale refs worden alleen gekwalificeerd vanuit geconfigureerde afbeeldingscapabele providermodelvermeldingen wanneer de match uniek is.Lokale CLI’s (alleen audio)
Lokale CLI’s (indien geïnstalleerd):
sherpa-onnx-offline(vereistSHERPA_ONNX_MODEL_DIRmet encoder/decoder/joiner/tokens)whisper-cli(whisper-cpp; gebruiktWHISPER_CPP_MODELof het gebundelde tiny-model)whisper(Python-CLI; downloadt modellen automatisch)
Providerauth
- Geconfigureerde
models.providers.*-vermeldingen die de capaciteit ondersteunen, worden geprobeerd vóór de gebundelde fallbackvolgorde. - Providers met alleen afbeeldingsconfiguratie en een afbeeldingscapabel model registreren zich automatisch voor mediabegrip, zelfs wanneer ze geen gebundelde leverancierplugin zijn.
- Ollama-afbeeldingsbegrip is beschikbaar wanneer expliciet geselecteerd, bijvoorbeeld via
agents.defaults.imageModelofopenclaw infer image describe --model ollama/<vision-model>.
- Audio: OpenAI → Groq → xAI → Deepgram → OpenRouter → Google → SenseAudio → ElevenLabs → Mistral
- Afbeelding: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Video: Google → Qwen → Moonshot
Binaire detectie is best-effort op macOS/Linux/Windows; zorg dat de CLI op
PATH staat (we breiden ~ uit), of stel een expliciet CLI-model in met een volledig commandopad.Ondersteuning voor proxyomgevingen (providermodellen)
Wanneer providergebaseerd audio- en videomediabegrip is ingeschakeld, respecteert OpenClaw standaard uitgaande proxyomgevingsvariabelen voor provider-HTTP-aanroepen:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Capaciteiten (optioneel)
Als jecapabilities instelt, draait de vermelding alleen voor die mediatypen. Voor gedeelde lijsten kan OpenClaw standaardwaarden afleiden:
openai,anthropic,minimax: afbeeldingminimax-portal: afbeeldingmoonshot: afbeelding + videoopenrouter: afbeelding + audiogoogle(Gemini API): afbeelding + audio + videoqwen: afbeelding + videomistral: audiozai: afbeeldinggroq: audioxai: audiodeepgram: audio- Elke
models.providers.<id>.models[]-catalogus met een afbeeldingscapabel model: afbeelding
capabilities expliciet in om verrassende matches te voorkomen. Als je capabilities weglaat, komt de vermelding in aanmerking voor de lijst waarin deze staat.
Providerondersteuningsmatrix (OpenClaw-integraties)
| Capaciteit | Providerintegratie | Notities |
|---|---|---|
| Afbeelding | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Leverancierplugins registreren afbeeldingsondersteuning; openai-codex/* gebruikt OAuth-providerplumbing; codex/* gebruikt een begrensde Codex app-server-turn; MiniMax en MiniMax OAuth gebruiken allebei MiniMax-VL-01; afbeeldingscapabele config providers registreren zich automatisch. |
| Audio | OpenAI, Groq, xAI, Deepgram, OpenRouter, Google, SenseAudio, ElevenLabs, Mistral | Providertranscriptie (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral). |
| Video | Google, Qwen, Moonshot | Providervideobegrip via leverancierplugins; Qwen-videobegrip gebruikt de Standard DashScope-endpoints. |
MiniMax-notitie
minimax- enminimax-portal-afbeeldingsbegrip komt van de plugin-eigenMiniMax-VL-01-mediaprovider.- De gebundelde MiniMax-tekstcatalogus begint nog steeds als alleen tekst; expliciete
models.providers.minimax-vermeldingen materialiseren afbeeldingscapabele M2.7-chatrefs.
Richtlijnen voor modelselectie
- Geef de voorkeur aan het sterkste beschikbare nieuwste-generatiemodel voor elke mediacapaciteit wanneer kwaliteit en veiligheid belangrijk zijn.
- Vermijd oudere/zwakkere mediamodellen voor tool-enabled agents die onvertrouwde invoer verwerken.
- Houd ten minste één fallback per capaciteit voor beschikbaarheid (kwaliteitsmodel + sneller/goedkoper model).
- CLI-fallbacks (
whisper-cli,whisper,gemini) zijn nuttig wanneer provider-API’s niet beschikbaar zijn. parakeet-mlx-notitie: met--output-dirleest OpenClaw<output-dir>/<media-basename>.txtwanneer de uitvoerindelingtxtis (of niet is opgegeven); niet-txt-indelingen vallen terug op stdout.
Bijlagebeleid
Per-capaciteitattachments bepaalt welke bijlagen worden verwerkt:
Of de eerste geselecteerde bijlage of alle geselecteerde bijlagen moeten worden verwerkt.
Beperk het aantal dat wordt verwerkt.
Selectievoorkeur tussen kandidaatbijlagen.
mode: "all" is, krijgen uitvoerresultaten labels zoals [Image 1/2], [Audio 2/2], enzovoort.
File-attachment extraction behavior
File-attachment extraction behavior
- Geëxtraheerde bestandstekst wordt verpakt als niet-vertrouwde externe inhoud voordat deze aan de mediaprompt wordt toegevoegd.
- Het geïnjecteerde blok gebruikt expliciete grensmarkeringen zoals
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>en bevat een metadataregelSource: External. - Dit pad voor bijlage-extractie laat bewust de lange banner
SECURITY NOTICE:weg om te voorkomen dat de mediaprompt opzwelt; de grensmarkeringen en metadata blijven wel behouden. - Als een bestand geen extraheerbare tekst heeft, injecteert OpenClaw
[No extractable text]. - Als een PDF in dit pad terugvalt op gerenderde pagina-afbeeldingen, behoudt de mediaprompt de placeholder
[PDF content rendered to images; images not forwarded to model], omdat deze stap voor bijlage-extractie tekstblokken doorstuurt, niet de gerenderde PDF-afbeeldingen.
Configuratievoorbeelden
Statusuitvoer
Wanneer mediabegrip wordt uitgevoerd, bevat/status een korte samenvattingsregel:
Opmerkingen
- Begrip is best-effort. Fouten blokkeren antwoorden niet.
- Bijlagen worden nog steeds aan modellen doorgegeven, zelfs wanneer begrip is uitgeschakeld.
- Gebruik
scopeom te beperken waar begrip wordt uitgevoerd (bijvoorbeeld alleen DM’s).