← Retour au blog

Pourquoi ton agent IA devient aveugle face aux images

Tu as déjà envoyé une capture d'écran à ton agent pour qu'il l'analyse, mais il t'a répondu comme si le fichier n'existait pas ? Pas d'erreur, pas de message d'alerte, juste un silence radio méprisant. Bienvenue dans l'enfer du MIME sniffing, ce mécanisme qui croit bien faire et qui finit par détruire ton pipeline.

Le piège du détective trop zélé

Le concept de base est sain : ne jamais faire confiance au client. Quand un utilisateur envoie une image, ton code vérifie son type réel avant de le balancer à l'API. C'est là qu'intervient le `fileTypeFromBuffer`.

Le problème survient avec des fichiers comme ceux exportés par WeChat. Ton système les détecte comme du APNG (Animated PNG). Techniquement, c'est un PNG, donc ta détection ne ment pas. Mais voilà : les API comme Claude ne reconnaissent que quatre types d'images très stricts. Le APNG n'en fait pas partie. Résultat ? Ton agent rejette le fichier, l'API renvoie un 400 en pleine face, et l'utilisateur reste devant son écran à attendre une réponse qui ne viendra jamais.

Pourquoi ça te bloque en plein vibecoding

Si tu développes des agents, c'est le genre de bug invisible qui te fait perdre trois heures à débugger tes prompts alors que le problème est purement technique et bête comme chou.

Le souci, c'est que ton système donne toujours la priorité à ce qu'il a "reniflé" sur le fichier plutôt qu'à ce que le client a déclaré. Si tu as configuré un système de secours (fallback), il va boucler bêtement sur la même erreur, sans jamais tenter de convertir le format ou de signaler le souci à l'utilisateur. C'est le genre de "tempête parfaite" qui rend ton produit inutilisable sans aucune explication claire.

À retenir

  • Ne fais pas aveuglément confiance à ton utilitaire de détection de MIME type : il est parfois trop précis pour le bien de tes API tierces.
  • Si ton agent refuse tes images, vérifie si elles ne sont pas taguées comme APNG ou un format exotique avant de chercher un bug dans ton prompt.
  • Prévois toujours une logique de conversion ou de normalisation d'image si ton prestataire (Anthropic, OpenAI) est capricieux sur les formats acceptés.
  • L'expérience utilisateur commence par un message d'erreur explicite : si ton agent ne comprend pas l'image, dis-le clairement au lieu de faire semblant qu'elle n'existe pas.