Görsel & Medya Desteği — 2025-12-05
WhatsApp kanalı Baileys Web üzerinden çalışır. Bu belge, gönderim, gateway ve ajan yanıtları için geçerli mevcut medya işleme kurallarını kapsar.Hedefler
openclaw message send --mediaüzerinden isteğe bağlı açıklamalarla medya gönderimi.- Web gelen kutusundan otomatik yanıtların metnin yanında medya içerebilmesi.
- Tür bazlı sınırların makul ve öngörülebilir tutulması.
CLI Yüzeyi
openclaw message send --media <path-or-url> [--message <caption>]--mediaisteğe bağlıdır; yalnızca medya gönderimleri için açıklama boş olabilir.--dry-runçözümlenen yükü yazdırır;--jsonise{ channel, to, messageId, mediaUrl, caption }üretir.
WhatsApp Web kanal davranışı
- Girdi: yerel dosya yolu veya HTTP(S) URL’si.
- Akış: Buffer’a yükle, medya türünü algıla ve doğru yükü oluştur:
- Görseller: JPEG’e yeniden boyutlandırma ve yeniden sıkıştırma (maks. kenar 2048px), hedef
agents.defaults.mediaMaxMb(varsayılan 5 MB), üst sınır 6 MB. - Ses/Voice/Video: 16 MB’a kadar doğrudan iletim; ses, sesli not olarak gönderilir (
ptt: true). - Belgeler: diğer her şey; 100 MB’a kadar, mümkünse dosya adı korunur.
- Görseller: JPEG’e yeniden boyutlandırma ve yeniden sıkıştırma (maks. kenar 2048px), hedef
- WhatsApp GIF tarzı oynatma: mobil istemcilerin satır içi döngülemesi için
gifPlayback: true(CLI:--gif-playback) ile bir MP4 gönderin. - MIME algılama; önce magic byte’ları, sonra başlıkları, ardından dosya uzantısını tercih eder.
- Açıklama
--messageveyareply.text’den alınır; boş açıklamaya izin verilir. - Günlükleme: ayrıntısız mod
↩️/✅gösterir; ayrıntılı mod boyut ve kaynak yol/URL’yi içerir.
Otomatik Yanıt Hattı
getReplyFromConfig,{ text?, mediaUrl?, mediaUrls? }döndürür.- Medya mevcut olduğunda, web gönderici yerel yolları veya URL’leri
openclaw message sendile aynı hat üzerinden çözümler. - Birden fazla medya girdisi sağlanırsa ardışık olarak gönderilir.
Komutlara Gelen Medya (Pi)
- Gelen web mesajları medya içerdiğinde, OpenClaw geçici bir dosyaya indirir ve şablonlama değişkenlerini sunar:
- Gelen medya için sözde URL:
{{MediaUrl}}. - Komut çalıştırılmadan önce yazılan yerel geçici yol:
{{MediaPath}}.
- Gelen medya için sözde URL:
- Oturum başına Docker sandbox etkinleştirildiğinde, gelen medya sandbox çalışma alanına kopyalanır ve
MediaPath/MediaUrl,media/inbound/<filename>gibi göreli bir yola yeniden yazılır. - Medya anlama (
tools.media.*veya paylaşılantools.media.modelsile yapılandırıldıysa) şablonlamadan önce çalışır veBodyiçine[Image],[Audio]ve[Video]bloklarını ekleyebilir.- Ses,
{{Transcript}}ayarlar ve eğik çizgi komutlarının çalışmaya devam etmesi için komut ayrıştırmada transkripti kullanır. - Video ve görsel açıklamaları, komut ayrıştırma için mevcut açıklama metnini korur.
- Ses,
- Varsayılan olarak yalnızca ilk eşleşen görsel/ses/video eki işlenir; birden fazla eki işlemek için
tools.media.<cap>.attachmentsayarlayın.
Sınırlar ve Hatalar
Giden gönderim üst sınırları (WhatsApp web gönderimi)- Görseller: yeniden sıkıştırma sonrası ~6 MB üst sınır.
- Ses/voice/video: 16 MB üst sınır; belgeler: 100 MB üst sınır.
- Aşırı büyük veya okunamayan medya → günlüklerde açık hata ve yanıt atlanır.
- Görsel varsayılanı: 10 MB (
tools.media.image.maxBytes). - Ses varsayılanı: 20 MB (
tools.media.audio.maxBytes). - Video varsayılanı: 50 MB (
tools.media.video.maxBytes). - Aşırı büyük medya, anlamayı atlar; ancak yanıtlar özgün gövdeyle gönderilmeye devam eder.
Testler için Notlar
- Görsel/ses/belge durumları için gönderim + yanıt akışlarını kapsayın.
- Görseller için yeniden sıkıştırmayı (boyut sınırı) ve ses için sesli not bayrağını doğrulayın.
- Çoklu medya yanıtlarının ardışık gönderimler olarak yayılmasını sağlayın.