Nodes and media
Medya anlama
OpenClaw, yanıt işlem hattı çalışmadan önce gelen medyayı (görüntü/ses/video) özetleyebilir; böylece komut ayrıştırma ve yönlendirme, ham baytlar yerine kısa metin üzerinden çalışır. Anlama özelliği yerel araçları veya sağlayıcı anahtarlarını otomatik olarak algılar; ayrıca açık modeller de yapılandırabilirsiniz. Özgün medya her zaman her zamanki gibi modele iletilir; anlama başarısız olduğunda veya devre dışı bırakıldığında yanıt akışı değişmeden devam eder.
Sağlayıcı Plugin'leri yetenek meta verilerini (hangi sağlayıcının hangi medya türünü desteklediği, varsayılan model, öncelik) kaydeder. OpenClaw çekirdeği, paylaşılan tools.media yapılandırmasını, geri dönüş sırasını ve yanıt işlem hattı entegrasyonunu yönetir.
Nasıl çalışır?
Ekleri topla
Gelen ekleri (MediaPaths, MediaUrls, MediaTypes) toplayın.
Yetenek başına seç
Etkinleştirilmiş her yetenek (görüntü/ses/video) için ekleri attachments politikasına göre seçin (varsayılan: yalnızca ilk ek).
Bir model seç
Uygun ilk model girdisini seçin (boyut + yetenek + kullanılabilir kimlik doğrulama).
Başarısızlıkta geri dön
Bir model hata verirse, zaman aşımına uğrarsa veya medya maxBytes sınırını aşarsa sonraki girdiyi deneyin.
Başarı durumunda uygula
Body, bir [Görüntü], [Ses] veya [Video] bloğuna dönüşür. Ses ayrıca {{Transcript}} değerini ayarlar; komut ayrıştırma, varsa açıklama metnini, aksi takdirde transkripti kullanır. Açıklamalar blok içinde Kullanıcı metni: olarak korunur.
Yapılandırma
tools.media, paylaşılan bir model listesinin yanı sıra yetenek başına geçersiz kılmaları içerir:
{ tools: { media: { concurrency: 2, // max concurrent capability runs (default) models: [/* shared list, gate with capabilities */], image: {/* optional overrides */}, audio: { /* optional overrides */ echoTranscript: true, echoFormat: '📝 "{transcript}"', }, video: {/* optional overrides */}, }, },}Yetenek başına (image/audio/video) anahtarlar:
| Anahtar | Tür | Varsayılan | Notlar |
|---|---|---|---|
enabled |
boolean |
otomatik (false devre dışı bırakır) |
Bu yetenek için otomatik algılamayı kapatmak üzere false olarak ayarlayın |
models |
dizi | yok | Paylaşılan tools.media.models listesinden önce tercih edilir |
prompt |
string |
"Describe the {media}." (+ maxChars yönlendirmesi) |
Varsayılan olarak yalnızca görüntü/video |
maxChars |
number |
500 (görüntü/video), ayarlanmamış (ses) |
Model daha fazlasını döndürürse çıktı kırpılır |
maxBytes |
number |
görüntü 10485760, ses 20971520, video 52428800 |
Boyut sınırını aşan medyada sonraki modele geçilir |
timeoutSeconds |
number |
60 (görüntü/ses), 120 (video) |
|
language |
string |
ayarlanmamış | Ses transkripsiyonu ipucu |
baseUrl/headers/providerOptions/request |
- | - | Sağlayıcı isteği geçersiz kılmaları; bkz. Araçlar ve özel sağlayıcılar |
attachments |
nesne | { mode: "first", maxAttachments: 1 } |
Bkz. Ek politikası |
scope |
nesne | ayarlanmamış | Kanal/chatType/keyPrefix temelinde sınırlandırır |
echoTranscript |
boolean |
false |
Yalnızca ses: temsilci işlemesinden önce transkripti sohbete geri yansıtır |
echoFormat |
string |
'📝 "{transcript}"' |
Yalnızca ses: {transcript} yer tutucusu |
Deepgram'e özgü seçenekler providerOptions.deepgram altında yer alır (üst düzey deepgram: { detectLanguage, punctuate, smartFormat } alanı kullanımdan kaldırılmıştır ancak hâlâ okunur).
Model girdileri
Her models[] girdisi bir sağlayıcı girdisi (varsayılan) veya bir CLI girdisidir:
Sağlayıcı girdisi
{ type: "provider", // default if omitted provider: "openai", model: "gpt-5.6-sol", prompt: "Describe the image in <= 500 chars.", maxChars: 500, maxBytes: 10485760, timeoutSeconds: 60, capabilities: ["image"], // optional, for multi-modal shared entries profile: "vision-profile", preferredProfile: "vision-fallback",}CLI girdisi
{ type: "cli", command: "gemini", args: [ "-m", "gemini-3-flash", "--allowed-tools", "read_file", "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.", ], maxChars: 500, maxBytes: 52428800, timeoutSeconds: 120, capabilities: ["video", "image"],}CLI şablonları ayrıca {{MediaDir}} (medya dosyasını içeren dizin), {{OutputDir}} (bu çalıştırma için oluşturulan geçici dizin) ve {{OutputBase}} (geçici dosyanın uzantısız temel yolu) değerlerini kullanabilir.
Sağlayıcı kimlik bilgileri
Sağlayıcı tabanlı medya anlama, normal model çağrılarıyla aynı kimlik doğrulama çözümlemesini kullanır: kimlik doğrulama profilleri, ortam değişkenleri ve ardından models.providers.<providerId>.apiKey. tools.media.*.models[] girdileri satır içi apiKey alanını kabul etmez.
{ models: { providers: { openai: { apiKey: "<OPENAI_API_KEY>" }, moonshot: { apiKey: "<MOONSHOT_API_KEY>" }, }, },}Profiller, ortam değişkenleri ve özel temel URL'ler için Araçlar ve özel sağlayıcılar bölümüne bakın.
Kurallar ve davranış
maxBytessınırını aşan medyada bu model atlanır ve sonraki model denenir.- 1024 bayttan küçük ses dosyaları boş/bozuk olarak değerlendirilir ve transkripsiyondan önce atlanır; temsilci bunun yerine deterministik bir yer tutucu transkript alır.
- Etkin birincil görüntü modeli zaten görsel algıyı yerel olarak destekliyorsa OpenClaw,
[Görüntü]özet bloğunu atlar ve özgün görüntüyü doğrudan modele iletir. MiniMax bir istisnadır: eski MiniMax M2.x sohbet meta verileri görüntü girdisi desteklediğini belirtse bileminimax,minimax-cn,minimax-portalveminimax-portal-cn, görüntü anlamayı her zaman Plugin'in yönettiğiMiniMax-VL-01medya sağlayıcısı üzerinden yönlendirir (yalnızcaMiniMax-M3ve sonraki sürümler yerel görsel algı yeteneğine sahip kabul edilir). - Bir Gateway/WebChat birincil modeli yalnızca metin destekliyorsa görüntü ekleri, görüntü/PDF araçlarının veya yapılandırılmış bir görüntü modelinin eki kaybetmek yerine yine de inceleyebilmesi için dışarı aktarılan
media://inbound/*başvuruları olarak korunur. - Açık
openclaw infer image describe --file <path> --model <provider/model>(takma ad:openclaw capability image describe) komutu,models.providers.ollama.models[]altında eşleşen görüntü yetenekli bir model yapılandırıldığındaollama/qwen2.5vl:7bgibi Ollama başvuruları da dahil olmak üzere bu görüntü yetenekli sağlayıcıyı/modeli doğrudan çalıştırır. <capability>.enabled,falsedeğilse ancak hiçbir model yapılandırılmamışsa OpenClaw, sağlayıcısı bu yeteneği desteklediğinde etkin yanıt modelini dener.
Otomatik algılama (varsayılan)
tools.media.<capability>.enabled, false değilse ve hiçbir model yapılandırılmamışsa OpenClaw aşağıdakileri sırayla dener ve çalışan ilk seçenekte durur:
Yapılandırılmış görüntü modeli (yalnızca görüntü)
Etkin yanıt modeli zaten görsel algıyı yerel olarak desteklemiyorsa agents.defaults.imageModel birincil/geri dönüş başvuruları kullanılır. provider/model başvurularını tercih edin; çıplak başvurular yalnızca eşleşme benzersiz olduğunda yapılandırılmış görüntü yetenekli sağlayıcı model girdilerinden nitelenir.
Etkin yanıt modeli
Sağlayıcısı yeteneği desteklediğinde etkin yanıt modeli kullanılır.
Sağlayıcı kimlik doğrulaması (yalnızca ses, yerel CLI'lardan önce)
Sesi destekleyen yapılandırılmış models.providers.* girdileri yerel CLI'lardan önce denenir. Paketlenmiş sağlayıcı öncelik sırası (eşitlikler sağlayıcı kimliğine göre alfabetik olarak çözülür): Groq/OpenAI → xAI → Deepgram → OpenRouter → Google/SenseAudio → Deepinfra/ElevenLabs → Mistral.
Yerel CLI'lar (yalnızca ses)
Hazır yerel ikili dosyalar sıralı bir geri dönüş listesine dönüşür:
- Yalnızca geçerli süreçteki daha önceki bir model çağrısı Metal veya CUDA gözlemlediyse önce
whisper-cli - CPU varsayılanlı
sherpa-onnx-offline(tokens.txt/encoder.onnx/decoder.onnx/joiner.onnxiçerenSHERPA_ONNX_MODEL_DIRgerektirir) - Hızlandırma yalnızca derleme düzeyinde mümkünse veya gözlemlenmemişse
whisper-cli - Apple Silicon'da
parakeet-mlx(MLX yetenekli, aygıt kullanımı gözlemlenmemiş) whisper(Python CLI; varsayılan olarakturbomodelini kullanır, otomatik indirir)
Arka uç yetenek incelemesi önbelleğe alınır ve bir model yüklemez. Derleme yeteneği, istenen arka uç bayrakları ve gerçek bir çağrıdan gözlemlenen arka uç ayrı tutulur. Otomatik algılanan whisper.cpp, üst sistemin seçilen arka uç satırının kaydedilebilmesi için model çalıştırma günlüklerini etkin bırakır. Açık CLI girdileri yapılandırılmış sıralarını, arka uç bayraklarını ve çıktı bayraklarını korur.
Sağlayıcı kimlik doğrulaması (görüntü/video)
Yeteneği destekleyen yapılandırılmış models.providers.* girdileri, paketlenmiş geri dönüş sırasından önce denenir. Görüntü yetenekli bir modele sahip yalnızca görüntü yapılandırma sağlayıcıları, paketlenmiş bir sağlayıcı Plugin'i olmasalar bile medya anlama için otomatik olarak kaydedilir.
Paketlenmiş sağlayıcı öncelik sırası (eşitlikler sağlayıcı kimliğine göre alfabetik olarak çözülür):
- Görüntü: Anthropic/OpenAI → Google → MiniMax → Deepinfra → MiniMax Portal → Z.AI
- Video: Google → Qwen → Moonshot
Antigravity CLI (yalnızca görüntü/video)
İlk kurulu agy veya antigravity ikili dosyası (OPENCLAW_ANTIGRAVITY_CLI ile geçersiz kılınabilir), medyanın dizinine karşı korumalı alanda çalıştırılır.
Bir yetenek için otomatik algılamayı devre dışı bırakmak üzere:
{ tools: { media: { audio: { enabled: false, }, }, },}Proxy desteği (ses/video sağlayıcı çağrıları)
Sağlayıcı tabanlı ses ve video anlama, NO_PROXY/no_proxy atlama kuralları dahil standart giden proxy ortam değişkenlerine uyar: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy. Küçük harfli değişkenler büyük harfli değişkenlerden önceliklidir. Hiçbiri ayarlanmamışsa medya anlama doğrudan çıkış kullanır; proxy değeri hatalı biçimlendirilmişse OpenClaw bir uyarı kaydeder ve doğrudan getirmeye geri döner. Görüntü anlama bu proxy yolundan geçmez.
Yetenekler
Belirli medya türleriyle sınırlamak için bir models[] girdisinde capabilities değerini ayarlayın. Paylaşılan listelerde OpenClaw, paketlenmiş sağlayıcı başına varsayılanları çıkarır:
| Sağlayıcı | Yetenekler |
|---|---|
openai, anthropic, minimax |
görüntü |
minimax-portal |
görüntü |
moonshot |
görüntü + video |
openrouter |
görüntü + ses |
google (Gemini API) |
görüntü + ses + video |
qwen |
görüntü + video |
deepinfra |
görüntü + ses |
mistral |
ses |
zai |
görüntü |
groq, xai, deepgram, senseaudio |
ses |
Görüntü destekli bir model içeren herhangi bir models.providers.<id>.models[] kataloğu |
görüntü |
CLI girdilerinde beklenmedik eşleşmeleri önlemek için capabilities değerini açıkça ayarlayın; belirtilmezse girdi, yer aldığı her yetenek listesi için uygun kabul edilir.
Sağlayıcı destek matrisi
| Yetenek | Sağlayıcılar | Notlar |
|---|---|---|
| Görüntü | Anthropic, Codex app-server, Deepinfra, Google, MiniMax, MiniMax Portal, Moonshot, OpenAI, OpenAI Codex OAuth, OpenRouter, Qwen, Z.AI, yapılandırma sağlayıcıları | Üretici Plugin'leri görüntü desteğini kaydeder; openai/*, API anahtarı veya Codex OAuth yönlendirmesini kullanabilir; codex/*, sınırlı bir Codex app-server turu kullanır; görüntü destekli yapılandırma sağlayıcıları otomatik olarak kaydedilir. |
| Ses | Deepgram, Deepinfra, ElevenLabs, Google, Groq, Mistral, OpenAI, OpenRouter, SenseAudio, xAI | Sağlayıcı transkripsiyonu (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral). |
| Video | Google, Moonshot, Qwen | Üretici Plugin'leri aracılığıyla sağlayıcı video anlama desteği; Qwen video anlama, standart DashScope uç noktalarını kullanır. |
Model seçimi rehberi
- Kalite ve güvenliğin önemli olduğu durumlarda her medya yeteneği için mevcut neslin en güçlü modelini tercih edin.
- Güvenilmeyen girdileri işleyen araç destekli ajanlarda eski veya daha zayıf medya modellerinden kaçının.
- Kullanılabilirlik için her yetenek başına en az bir yedek tutun (kaliteli model + daha hızlı/ucuz model).
- CLI yedekleri (
whisper-cli,whisper,gemini), sağlayıcı API'leri kullanılamadığında yardımcı olur. - Bilinen dosya çıktısı kipleri belirleyicidir: çıkarıldığı varsayılan transkript dosyasının boş veya eksik olması, CLI ilerleme çıktısına geri dönmek yerine hiçbir transkript üretilmemesine neden olur.
parakeet-mlx:--output-dirve varsayılan{filename}çıktı şablonuyla birlikte--output-format txt(veyaall) kullanın. Üst kaynaklıPARAKEET_OUTPUT_FORMATvePARAKEET_OUTPUT_TEMPLATEortam değişkenleri de dikkate alınır. OpenClaw,<output-dir>/<media-basename>.txtdosyasını okur; varsayılansrtbiçimi, diğer biçimler ve özel çıktı şablonları stdout'u kullanmaya devam eder.
Ek politikası
Yetenek başına attachments, hangi eklerin işleneceğini denetler:
mode"first" | "all"default: firstYalnızca seçilen ilk eki veya tüm ekleri işleyin.
maxAttachmentsnumberdefault: 1İşlenecek eklerin sayısını sınırlayın.
prefer"first" | "last" | "path" | "url"Aday ekler arasındaki seçim tercihi.
mode: "all" olduğunda çıktılar [Görüntü 1/2], [Ses 2/2] vb. biçiminde etiketlenir.
Dosya eki ayıklama
- Ayıklanan dosya metni, medya istemine eklenmeden önce güvenilmeyen harici içerik olarak sarmalanır; bunun için
<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>/<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>gibi sınır işaretleri ve birSource: Externalmeta veri satırı kullanılır. - Bu yol, medya istemini kısa tutmak için uzun
SECURITY NOTICE:başlığını kasıtlı olarak atlar; sınır işaretleri ve meta veriler yine uygulanır. - Ayıklanabilir metni olmayan bir dosya
[Ayıklanabilir metin yok]sonucunu alır. - Bir PDF, oluşturulmuş sayfa görüntülerine geri dönerse OpenClaw bu görüntüleri görme yetenekli yanıt modellerine iletir ve dosya bloğunda
[PDF içeriği görüntülere dönüştürüldü]yer tutucusunu korur.
Yapılandırma örnekleri
Paylaşılan modeller + geçersiz kılmalar
{ tools: { media: { models: [ { provider: "openai", model: "gpt-5.6-sol", capabilities: ["image"] }, { provider: "google", model: "gemini-3-flash-preview", capabilities: ["image", "audio", "video"], }, { type: "cli", command: "gemini", args: [ "-m", "gemini-3-flash", "--allowed-tools", "read_file", "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.", ], capabilities: ["image", "video"], }, ], audio: { attachments: { mode: "all", maxAttachments: 2 }, }, video: { maxChars: 500, }, }, },}Yalnızca ses + video
{ tools: { media: { audio: { enabled: true, models: [ { provider: "openai", model: "gpt-4o-mini-transcribe" }, { type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"], }, ], }, video: { enabled: true, maxChars: 500, models: [ { provider: "google", model: "gemini-3-flash-preview" }, { type: "cli", command: "gemini", args: [ "-m", "gemini-3-flash", "--allowed-tools", "read_file", "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.", ], }, ], }, }, },}Yalnızca görüntü
{ tools: { media: { image: { enabled: true, maxBytes: 10485760, maxChars: 500, models: [ { provider: "openai", model: "gpt-5.6-sol" }, { provider: "anthropic", model: "claude-opus-4-8" }, { type: "cli", command: "gemini", args: [ "-m", "gemini-3-flash", "--allowed-tools", "read_file", "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.", ], }, ], }, }, },}Çok kipli tek girdi
{ tools: { media: { image: { models: [ { provider: "google", model: "gemini-3.1-pro-preview", capabilities: ["image", "video", "audio"], }, ], }, audio: { models: [ { provider: "google", model: "gemini-3.1-pro-preview", capabilities: ["image", "video", "audio"], }, ], }, video: { models: [ { provider: "google", model: "gemini-3.1-pro-preview", capabilities: ["image", "video", "audio"], }, ], }, }, },}Durum çıktısı
Medya anlama çalıştığında /status, yetenek başına bir özet satırı içerir:
📎 Media: image ok (openai/gpt-5.6-sol) · audio ok (whisper-cli observed=metal)Ön kontrol envanteri için openclaw capability audio providers komutunu çalıştırın. Yerel satırlar; yerel yedek seçimini, genel sağlayıcı seçiminden ve hazırlık durumundan ayrı olarak gösterir ve yetenekli/istenen/gözlemlenen arka uç alanlarını ayrı tutar. Aynı yerel seçim, bilgilendirici bir doctor bulgusu olarak da kullanılabilir:
openclaw doctor --lint --only core/doctor/local-audio-acceleration --severity-min infoNotlar
- Anlama, mümkün olan en iyi çabayla gerçekleştirilir. Hatalar yanıtları engellemez.
- Anlama devre dışı bırakılmış olsa bile ekler modellere iletilmeye devam eder.
- Anlamanın nerede çalışacağını sınırlamak için
scopekullanın (örneğin yalnızca doğrudan mesajlarda).