# Envoi de fichiers via Telegram depuis les agents Hermes — fix du fallback mail **Date** : 2026-07-04 **Sphères concernées** : hermes-tt, hermes-nyora, hermes-perso (les 3) ## Symptôme Les instances Hermes sont parfois incapables de transférer à Nabil le fichier qu'elles viennent de créer (docx, pdf, xlsx, pptx…) via Telegram, et se rabattent sur un envoi par mail (transfer mail) — friction inutile. ## Cause racine Aucun skill ne documentait l'envoi de fichiers via l'API Bot Telegram. `telegram-output.md` ne couvre que le **formatage texte** (pipe tables MD, rich_messages). Quand le mécanisme natif de l'agent échoue ou n'est pas sélectionné, l'agent conclut « impossible d'envoyer un fichier via Telegram » et bascule sur le mail. Or tout est déjà en place dans chaque conteneur agent : - `TELEGRAM_BOT_TOKEN` (env, un bot par instance) et `TELEGRAM_ALLOWED_USERS` (= chat_id de Nabil : 2084513684) injectés par le compose racine ; - `curl` présent (`/usr/bin/curl`) ; - réseau sortant vers `api.telegram.org` fonctionnel. ## Fix appliqué (validé 2026-07-04) Skill `envoyer-fichier-telegram.md` déployé à la racine `data/skills/` des **3 instances** (ownership 1026:100), snapshot caches purgés, agents redémarrés un par un (healthy, UI 3010/3020/3030 = 200). Commande cœur du skill : ```bash curl -s -F chat_id=$TELEGRAM_ALLOWED_USERS \ -F document=@"/chemin/vers/fichier.docx" \ -F caption="Description courte" \ "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument" ``` Règles du skill : - Ne JAMAIS basculer sur le mail pour livrer un fichier (sauf demande explicite). - Vérifier `"ok":true` dans la réponse avant de confirmer la livraison. - Limite API Bot = **50 Mo** → au-delà, lien pv.bolbol.tn via [partage-pingvin-gros-fichiers.md](partage-pingvin-gros-fichiers.md) (skill `partage-pingvin` sur les 3 instances). - Images avec aperçu : `sendPhoto` ; documents : toujours `sendDocument` (préserve le fichier original). ## Tests de validation - `sendDocument` réel depuis le conteneur hermes-agent-perso → `ok:true`, fichier reçu dans le chat de Nabil (message_id 3027). - `getMe` depuis hermes-agent-tt et hermes-agent-nyora → `ok:true` (HermesTT_botbot, HermesNyora_botbot) : token + réseau valides partout. ## Diagnostic futur Si une instance re-signale « impossible d'envoyer le fichier via Telegram » : 1. Vérifier que `data/skills/envoyer-fichier-telegram.md` existe toujours. 2. `docker exec hermes-agent- sh -c 'curl -s https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe'` → doit répondre `ok:true`. 3. Vérifier la taille du fichier (> 50 Mo = limite API Bot, pas une panne). 4. Vérifier que le chemin du fichier est bien accessible depuis LE conteneur agent (pas un chemin du workspace ou de l'hôte).