Médias et appareils
Support des images et médias
Le canal WhatsApp fonctionne via Baileys Web. Ce document décrit les règles actuelles de gestion des médias pour l'envoi, la passerelle et les réponses des agents.
Objectifs
- Envoyer des médias avec des légendes optionnelles via
openclaw message send --media. - Permettre aux réponses automatiques de la boîte de réception web d'inclure des médias avec du texte.
- Maintenir des limites par type raisonnables et prévisibles.
Interface CLI
openclaw message send --media <path-or-url> [--message <caption>]--mediaoptionnel ; la légende peut être vide pour les envois de médias uniquement.--dry-runaffiche la charge utile résolue ;--jsonémet{ channel, to, messageId, mediaUrl, caption }.
Comportement du canal WhatsApp Web
- Entrée : chemin de fichier local ou URL HTTP(S).
- Flux : charger dans un Buffer, détecter le type de média, et construire la charge utile correcte :
- Images : redimensionner et recompresser en JPEG (côté max 2048px) ciblant
agents.defaults.mediaMaxMb(par défaut 5 Mo), plafonné à 6 Mo. - Audio/Voix/Vidéo : transmis tel quel jusqu'à 16 Mo ; l'audio est envoyé comme un message vocal (
ptt: true). - Documents : tout le reste, jusqu'à 100 Mo, avec le nom de fichier préservé si disponible.
- Images : redimensionner et recompresser en JPEG (côté max 2048px) ciblant
- Lecture de type GIF WhatsApp : envoyer un MP4 avec
gifPlayback: true(CLI :--gif-playback) pour que les clients mobiles le lisent en boucle. - La détection MIME privilégie les octets magiques, puis les en-têtes, puis l'extension de fichier.
- La légende provient de
--messageoureply.text; une légende vide est autorisée. - Journalisation : non-verbeux montre
↩️/✅; verbeux inclut la taille et le chemin/URL source.
Pipeline de Réponse Automatique
getReplyFromConfigretourne{ text?, mediaUrl?, mediaUrls? }.- Lorsqu'un média est présent, l'expéditeur web résout les chemins locaux ou les URL en utilisant le même pipeline que
openclaw message send. - Les entrées multimédias multiples sont envoyées séquentiellement si fournies.
Médias entrants vers Commandes (Pi)
- Lorsque les messages web entrants incluent des médias, OpenClaw les télécharge dans un fichier temporaire et expose des variables de modèle :
{{MediaUrl}}pseudo-URL pour le média entrant.{{MediaPath}}chemin local temporaire écrit avant l'exécution de la commande.
- Lorsqu'un bac à sable Docker par session est activé, le média entrant est copié dans l'espace de travail du bac à sable et
MediaPath/MediaUrlsont réécrits en un chemin relatif commemedia/inbound/<filename>. - La compréhension des médias (si configurée via
tools.media.*outools.media.modelspartagés) s'exécute avant le modèle et peut insérer des blocs[Image],[Audio], et[Video]dansBody.- L'audio définit
{{Transcript}}et utilise la transcription pour l'analyse des commandes afin que les commandes slash fonctionnent toujours. - Les descriptions de vidéo et d'image préservent tout texte de légende pour l'analyse des commandes.
- L'audio définit
- Par défaut, seule la première pièce jointe image/audio/vidéo correspondante est traitée ; définissez
tools.media.<cap>.attachmentspour traiter plusieurs pièces jointes.
Limites et Erreurs
Limites d'envoi sortant (envoi WhatsApp web)
- Images : plafond d'environ 6 Mo après recompression.
- Audio/voix/vidéo : plafond de 16 Mo ; documents : plafond de 100 Mo.
- Média trop volumineux ou illisible → erreur claire dans les journaux et la réponse est ignorée.
Limites de compréhension des médias (transcription/description)
- Image par défaut : 10 Mo (
tools.media.image.maxBytes). - Audio par défaut : 20 Mo (
tools.media.audio.maxBytes). - Vidéo par défaut : 50 Mo (
tools.media.video.maxBytes). - Un média trop volumineux ignore la compréhension, mais les réponses passent toujours avec le corps original.
Notes pour les Tests
- Couvrir les flux d'envoi + réponse pour les cas image/audio/document.
- Valider la recompression pour les images (limite de taille) et le drapeau de message vocal pour l'audio.
- S'assurer que les réponses multimédias multiples sont envoyées séquentiellement.
Compréhension des MédiasAudio et Messages Vocaux