Nodes and media
Dukungan gambar dan media
Saluran WhatsApp berjalan melalui Baileys Web. Dokumen ini mencatat aturan penanganan media saat ini untuk pengiriman, Gateway, dan balasan agen.
Tujuan
- Mengirim media dengan takarir opsional melalui
openclaw message send --media. - Mengizinkan balasan otomatis dari kotak masuk web untuk menyertakan media bersama teks.
- Menjaga batas per jenis tetap wajar dan mudah diprediksi.
Permukaan CLI
openclaw message send --media <path-or-url> [--message <caption>]--mediaopsional; takarir dapat kosong untuk pengiriman media saja.--dry-runmencetak payload yang di-resolve;--jsonmenghasilkan{ channel, to, messageId, mediaUrl, caption }.
Perilaku saluran WhatsApp Web
- Input: jalur file lokal atau URL HTTP(S).
- Alur: muat ke Buffer, deteksi jenis media, dan buat payload yang benar:
- Gambar: ubah ukuran & kompres ulang ke JPEG (sisi maksimum 2048px) dengan target
channels.whatsapp.mediaMaxMb(default: 50 MB). - Audio/Suara/Video: diteruskan apa adanya hingga 16 MB; audio dikirim sebagai catatan suara (
ptt: true). - Dokumen: selain itu, hingga 100 MB, dengan nama file dipertahankan jika tersedia.
- Gambar: ubah ukuran & kompres ulang ke JPEG (sisi maksimum 2048px) dengan target
- Pemutaran bergaya GIF WhatsApp: kirim MP4 dengan
gifPlayback: true(CLI:--gif-playback) agar klien seluler memutar berulang secara inline. - Deteksi MIME memprioritaskan byte tanda tangan, lalu header, lalu ekstensi file.
- Takarir berasal dari
--messageataureply.text; takarir kosong diperbolehkan. - Logging: non-verbose menampilkan
↩️/✅; verbose menyertakan ukuran dan jalur/URL sumber.
Pipeline Balasan Otomatis
getReplyFromConfigmengembalikan{ text?, mediaUrl?, mediaUrls? }.- Saat media ada, pengirim web me-resolve jalur lokal atau URL menggunakan pipeline yang sama seperti
openclaw message send. - Beberapa entri media dikirim secara berurutan jika disediakan.
Media Masuk Ke Perintah
- Saat pesan web masuk menyertakan media, OpenClaw mengunduhnya ke file sementara dan mengekspos variabel templating:
- Pseudo-URL
{{MediaUrl}}untuk media masuk. - Jalur sementara lokal
{{MediaPath}}yang ditulis sebelum menjalankan perintah.
- Pseudo-URL
- Saat sandbox Docker per sesi diaktifkan, media masuk disalin ke ruang kerja sandbox dan
MediaPath/MediaUrlditulis ulang menjadi jalur relatif sepertimedia/inbound/<filename>. - Pemahaman media (jika dikonfigurasi melalui
tools.media.*atautools.media.modelsbersama) berjalan sebelum templating dan dapat menyisipkan blok[Image],[Audio], dan[Video]ke dalamBody.- Audio menetapkan
{{Transcript}}dan menggunakan transkrip untuk parsing perintah agar perintah slash tetap berfungsi. - Deskripsi video dan gambar mempertahankan teks takarir apa pun untuk parsing perintah.
- Jika model gambar utama aktif sudah mendukung visi secara native, OpenClaw melewati blok ringkasan
[Image]dan sebagai gantinya meneruskan gambar asli ke model.
- Audio menetapkan
- Secara default hanya lampiran gambar/audio/video pertama yang cocok yang diproses; atur
tools.media.<cap>.attachmentsuntuk memproses beberapa lampiran.
Batas dan kesalahan
Batas pengiriman keluar (pengiriman web WhatsApp)
- Gambar: hingga
channels.whatsapp.mediaMaxMb(default: 50 MB) setelah kompresi ulang. - Audio/suara/video: batas 16 MB; dokumen: batas 100 MB.
- Media terlalu besar atau tidak dapat dibaca → kesalahan jelas di log dan balasan dilewati.
Batas pemahaman media (transkripsi/deskripsi)
- Default gambar: 10 MB (
tools.media.image.maxBytes). - Default audio: 20 MB (
tools.media.audio.maxBytes). - Default video: 50 MB (
tools.media.video.maxBytes). - Media terlalu besar melewati pemahaman, tetapi balasan tetap berjalan dengan isi asli.
Catatan untuk Pengujian
- Cakup alur pengiriman + balasan untuk kasus gambar/audio/dokumen.
- Validasi kompresi ulang untuk gambar (batas ukuran) dan flag catatan suara untuk audio.
- Pastikan balasan multi-media menyebar sebagai pengiriman berurutan.
Terkait
Was this useful?