tools.media कॉन्फिग, fallback क्रम, और उत्तर-पाइपलाइन एकीकरण का स्वामी है।
लक्ष्य
- वैकल्पिक: तेज़ routing + बेहतर command parsing के लिए इनबाउंड मीडिया को छोटे पाठ में पहले से digest करना।
- मॉडल तक मूल मीडिया डिलीवरी सुरक्षित रखें (हमेशा)।
- प्रदाता APIs और CLI fallbacks का समर्थन करें।
- क्रमबद्ध fallback (त्रुटि/आकार/timeout) के साथ कई मॉडलों की अनुमति दें।
उच्च-स्तरीय व्यवहार
प्रति-क्षमता चुनें
हर सक्षम क्षमता (छवि/ऑडियो/वीडियो) के लिए, नीति के अनुसार अटैचमेंट चुनें (डिफॉल्ट: पहला)।
विफलता पर fallback
यदि कोई मॉडल विफल होता है या मीडिया बहुत बड़ा है, तो अगली entry पर fallback करें।
कॉन्फिग overview
tools.media साझा models और प्रति-क्षमता overrides का समर्थन करता है:
शीर्ष-स्तरीय keys
शीर्ष-स्तरीय keys
tools.media.models: साझा model list (capabilitiesका उपयोग gate करने के लिए करें)।tools.media.image/tools.media.audio/tools.media.video:- डिफॉल्ट (
prompt,maxChars,maxBytes,timeoutSeconds,language) - provider overrides (
baseUrl,headers,providerOptions) tools.media.audio.providerOptions.deepgramके जरिए Deepgram audio options- audio transcript echo controls (
echoTranscript, डिफॉल्टfalse;echoFormat) - वैकल्पिक प्रति-क्षमता
modelslist (साझा models से पहले पसंदीदा) attachmentsनीति (mode,maxAttachments,prefer)scope(channel/chatType/session key द्वारा वैकल्पिक gating)
- डिफॉल्ट (
tools.media.concurrency: अधिकतम concurrent capability runs (डिफॉल्ट 2)।
मॉडल entries
हरmodels[] entry provider या CLI हो सकती है:
- Provider entry
- CLI entry
Provider credentials (apiKey)
Provider media understanding सामान्य model calls जैसी ही provider auth resolution का उपयोग करता है: auth profiles, environment variables, फिर models.providers.<providerId>.apiKey।
tools.media.*.models[] entries inline apiKey field स्वीकार नहीं करतीं। media model entry में provider value, जैसे openai या moonshot, के पास मानक provider auth sources में से किसी एक के जरिए credentials उपलब्ध होने चाहिए।
न्यूनतम उदाहरण:
डिफॉल्ट और सीमाएं
अनुशंसित डिफॉल्ट:maxChars: image/video के लिए 500 (छोटा, command-friendly)maxChars: audio के लिए unset (जब तक आप सीमा सेट न करें, पूरा transcript)maxBytes:- image: 10MB
- audio: 20MB
- video: 50MB
नियम
नियम
- यदि media
maxBytesसे अधिक है, तो वह model छोड़ा जाता है और अगला model आजमाया जाता है। - 1024 bytes से छोटी audio files को खाली/corrupt माना जाता है और provider/CLI transcription से पहले छोड़ा जाता है; inbound reply context को deterministic placeholder transcript मिलता है ताकि agent जान सके कि note बहुत छोटा था।
- यदि model
maxCharsसे अधिक लौटाता है, तो output trim कर दिया जाता है। promptसाधारण “Describe the .” औरmaxCharsguidance (केवल image/video) पर डिफॉल्ट होता है।- यदि सक्रिय primary image model पहले से vision को native रूप से support करता है, तो OpenClaw
[Image]summary block छोड़ देता है और इसके बजाय मूल image को model में पास करता है। - यदि Gateway/WebChat primary model text-only है, तो image attachments को offloaded
media://inbound/*refs के रूप में सुरक्षित रखा जाता है ताकि image/PDF tools या configured image model attachment खोने के बजाय अब भी उन्हें inspect कर सकें। - स्पष्ट
openclaw infer image describe --model <provider/model>requests अलग हैं: वे उस image-capable provider/model को सीधे चलाते हैं, जिनमेंollama/qwen2.5vl:7bजैसे Ollama refs शामिल हैं। - यदि
<capability>.enabled: trueहै लेकिन कोई models configured नहीं हैं, तो OpenClaw सक्रिय reply model आजमाता है जब उसका provider क्षमता support करता है।
Auto-detect media understanding (डिफॉल्ट)
यदिtools.media.<capability>.enabled को false पर सेट नहीं किया गया है और आपने models configure नहीं किए हैं, तो OpenClaw इस क्रम में auto-detect करता है और पहले काम करने वाले option पर रुक जाता है:
agents.defaults.imageModel
agents.defaults.imageModel primary/fallback refs (केवल image)।
provider/model refs को प्राथमिकता दें। Bare refs को configured image-capable provider model entries से qualify किया जाता है, केवल जब match unique हो।Local CLIs (केवल audio)
Local CLIs (यदि installed हों):
sherpa-onnx-offline(encoder/decoder/joiner/tokens के साथSHERPA_ONNX_MODEL_DIRआवश्यक)whisper-cli(whisper-cpp;WHISPER_CPP_MODELया bundled tiny model का उपयोग करता है)whisper(Python CLI; models अपने-आप downloads करता है)
Provider auth
- Configured
models.providers.*entries जो क्षमता support करती हैं, bundled fallback order से पहले आजमाई जाती हैं। - image-capable model वाले image-only config providers media understanding के लिए auto-register होते हैं, भले वे bundled vendor plugin न हों।
- Ollama image understanding स्पष्ट रूप से चुने जाने पर उपलब्ध है, उदाहरण के लिए
agents.defaults.imageModelयाopenclaw infer image describe --model ollama/<vision-model>के जरिए।
- Audio: OpenAI → Groq → xAI → Deepgram → OpenRouter → Google → SenseAudio → ElevenLabs → Mistral
- Image: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
- Video: Google → Qwen → Moonshot
Binary detection macOS/Linux/Windows पर best-effort है; सुनिश्चित करें कि CLI
PATH पर है (हम ~ expand करते हैं), या full command path के साथ explicit CLI model सेट करें।Proxy environment support (provider models)
जब provider-based audio और video media understanding सक्षम होता है, तो OpenClaw provider HTTP calls के लिए मानक outbound proxy environment variables का सम्मान करता है:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
क्षमताएं (वैकल्पिक)
यदि आपcapabilities सेट करते हैं, तो entry केवल उन media types के लिए चलती है। साझा lists के लिए, OpenClaw डिफॉल्ट infer कर सकता है:
openai,anthropic,minimax: imageminimax-portal: imagemoonshot: image + videoopenrouter: image + audiogoogle(Gemini API): image + audio + videoqwen: image + videomistral: audiozai: imagegroq: audioxai: audiodeepgram: audio- Any
models.providers.<id>.models[]catalog with an image-capable model: image
capabilities स्पष्ट रूप से सेट करें। यदि आप capabilities छोड़ देते हैं, तो entry उस list के लिए eligible है जिसमें वह दिखाई देती है।
Provider support matrix (OpenClaw integrations)
| क्षमता | Provider integration | Notes |
|---|---|---|
| Image | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Vendor plugins image support register करते हैं; openai/* API-key या Codex OAuth routing का उपयोग कर सकता है; codex/* bounded Codex app-server turn का उपयोग करता है; MiniMax और MiniMax OAuth दोनों MiniMax-VL-01 का उपयोग करते हैं; image-capable config providers auto-register होते हैं। |
| Audio | OpenAI, Groq, xAI, Deepgram, OpenRouter, Google, SenseAudio, ElevenLabs, Mistral | Provider transcription (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral)। |
| Video | Google, Qwen, Moonshot | Vendor plugins के जरिए provider video understanding; Qwen video understanding Standard DashScope endpoints का उपयोग करता है। |
MiniMax note
minimax,minimax-cn,minimax-portal, औरminimax-portal-cnइमेज समझ Plugin-स्वामित्व वालेMiniMax-VL-01मीडिया प्रदाता से आती है।- स्वचालित इमेज रूटिंग
MiniMax-VL-01का उपयोग करती रहती है, भले ही लेगेसी MiniMax M2.x चैट मेटाडेटा इमेज इनपुट का दावा करे।
मॉडल चयन मार्गदर्शन
- जब गुणवत्ता और सुरक्षा महत्वपूर्ण हों, तो प्रत्येक मीडिया क्षमता के लिए उपलब्ध सबसे मजबूत नवीनतम पीढ़ी के मॉडल को प्राथमिकता दें।
- अविश्वसनीय इनपुट संभालने वाले टूल-सक्षम एजेंटों के लिए पुराने/कमजोर मीडिया मॉडल से बचें।
- उपलब्धता के लिए प्रति क्षमता कम से कम एक फ़ॉलबैक रखें (गुणवत्ता मॉडल + तेज़/सस्ता मॉडल)।
- CLI फ़ॉलबैक (
whisper-cli,whisper,gemini) तब उपयोगी होते हैं जब प्रदाता API उपलब्ध न हों। parakeet-mlxनोट:--output-dirके साथ, जब आउटपुट फ़ॉर्मैटtxtहो (या निर्दिष्ट न हो), तो OpenClaw<output-dir>/<media-basename>.txtपढ़ता है; गैर-txtफ़ॉर्मैट stdout पर फ़ॉलबैक करते हैं।
अटैचमेंट नीति
प्रति-क्षमताattachments नियंत्रित करता है कि कौन-से अटैचमेंट संसाधित किए जाते हैं:
पहला चयनित अटैचमेंट संसाधित करना है या सभी को।
संसाधित की जाने वाली संख्या की सीमा लगाएं।
उम्मीदवार अटैचमेंट में चयन प्राथमिकता।
mode: "all" हो, तो आउटपुट को [Image 1/2], [Audio 2/2], आदि लेबल दिए जाते हैं।
File-attachment extraction behavior
File-attachment extraction behavior
- निकाला गया फ़ाइल टेक्स्ट मीडिया प्रॉम्प्ट में जोड़े जाने से पहले अविश्वसनीय बाहरी सामग्री के रूप में लपेटा जाता है।
- इंजेक्ट किया गया ब्लॉक
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>जैसे स्पष्ट सीमा मार्कर का उपयोग करता है और इसमेंSource: Externalमेटाडेटा लाइन शामिल होती है। - यह अटैचमेंट-निष्कर्षण पथ मीडिया प्रॉम्प्ट को अनावश्यक रूप से बड़ा होने से बचाने के लिए लंबा
SECURITY NOTICE:बैनर जानबूझकर छोड़ देता है; सीमा मार्कर और मेटाडेटा फिर भी बने रहते हैं। - यदि किसी फ़ाइल में निकालने योग्य टेक्स्ट नहीं है, तो OpenClaw
[No extractable text]इंजेक्ट करता है। - यदि इस पथ में कोई PDF रेंडर की गई पेज इमेज पर फ़ॉलबैक करती है, तो OpenClaw उन पेज इमेज को विज़न-सक्षम उत्तर मॉडल को अग्रेषित करता है और फ़ाइल ब्लॉक में प्लेसहोल्डर
[PDF content rendered to images]रखता है।
कॉन्फ़िगरेशन उदाहरण
स्थिति आउटपुट
जब मीडिया समझ चलती है, तो/status में एक संक्षिप्त सारांश लाइन शामिल होती है:
नोट्स
- समझना सर्वोत्तम-प्रयास है। त्रुटियां उत्तरों को ब्लॉक नहीं करतीं।
- समझ अक्षम होने पर भी अटैचमेंट मॉडल को भेजे जाते हैं।
- समझ कहां चलती है, इसे सीमित करने के लिए
scopeका उपयोग करें (जैसे केवल DM)।