SMS — Command AI by Text
SMS — Command AI by Text — easy-to-understand guide based on official docs
SMS — Pilotez votre IA par texto
Vous vous souvenez de l’époque d’avant les smartphones, où le texto était le moyen le plus rapide de joindre quelqu’un ? Eh bien, ce canal classique est toujours bien vivant — et c’est désormais un moyen à part entière de discuter avec votre assistant IA.
Hermes se connecte maintenant aux SMS via Twilio. Ainsi, toute personne ayant un numéro de téléphone peut envoyer un texto à votre bot et recevoir des réponses générées par IA. Pas d’installation d’application, pas de QR code, pas de courbe d’apprentissage. Juste de bons vieux SMS.
Quoi de neuf dans cette mise à jour
La passerelle SMS a reçu une sérieuse mise à niveau. Voici ce qui a changé :
SMS_WEBHOOK_URLest désormais obligatoire — Hermes valide les signatures des webhooks Twilio pour empêcher les imposteurs. La passerelle refusera de démarrer sans cela.- Nouvelles variables d’environnement —
SMS_WEBHOOK_HOST,SMS_WEBHOOK_PORT,SMS_INSECURE_NO_SIGNATUREetSMS_ALLOW_ALL_USERSvous offrent plus de contrôle. - Meilleures valeurs de sécurité par défaut — La passerelle refuse tous les utilisateurs par défaut. Vous devez explicitement mettre sur liste blanche les numéros de téléphone.
- Découpage de messages plus intelligent — Les réponses longues sont désormais coupées aux limites naturelles (retours à la ligne, puis espaces) au lieu d’être tronquées en plein milieu d’un mot.
Pour commencer
Tout d’abord, vous aurez besoin d’un compte Twilio et d’un numéro de téléphone avec la capacité SMS. Twilio propose un essai gratuit, vous pouvez donc tout tester sans dépenser un centime.
Vous aurez également besoin d’un serveur accessible publiquement. Twilio envoie des webhooks à votre serveur lorsque quelqu’un envoie un texto à votre numéro. Si vous exécutez Hermes localement, des outils comme cloudflared ou ngrok peuvent exposer votre localhost sur Internet.
Installez l’extension SMS avec :
cd ~/.hermes/hermes-agent && uv pip install -e ".[sms]"
Étape 1 : Récupérez vos identifiants Twilio
Rendez-vous sur la Console Twilio, copiez votre Account SID et votre Auth Token depuis le tableau de bord, et notez votre numéro de téléphone au format E.164 (comme +15551234567).
Étape 2 : Configurez Hermes
Le moyen le plus simple est l’assistant interactif :
hermes gateway setup
Sélectionnez SMS (Twilio) et suivez les instructions.
Vous préférez une configuration manuelle ? Ajoutez ceci à ~/.hermes/.env :
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=your_auth_token_here
TWILIO_PHONE_NUMBER=+15551234567
# Sécurité : restreindre à des numéros de téléphone spécifiques (recommandé)
SMS_ALLOWED_USERS=+15559876543,+15551112222
# Optionnel : définir un canal principal pour la livraison des tâches planifiées
SMS_HOME_CHANNEL=+15559876543
Étape 3 : Configurez le webhook Twilio
Dans la Console Twilio, allez dans Phone Numbers → Manage → Active Numbers, cliquez sur votre numéro, et sous Messaging → A MESSAGE COMES IN, définissez le webhook sur :
https://your-server:8080/webhooks/twilio
Définissez la méthode HTTP sur POST.
Important : Définissez SMS_WEBHOOK_URL sur l’URL exactement identique à celle configurée dans Twilio. C’est requis pour la validation de la signature :
SMS_WEBHOOK_URL=https://your-server:8080/webhooks/twilio
Le port du webhook est 8080 par défaut, mais vous pouvez le remplacer avec SMS_WEBHOOK_PORT.
Étape 4 : Démarrez la passerelle
hermes gateway
Vous devriez voir quelque chose comme :
[sms] Twilio webhook server listening on 127.0.0.1:8080, from: +1555***4567
Maintenant, envoyez un texto à votre numéro Twilio — Hermes répondra par SMS.
En quoi le comportement SMS diffère
Le SMS est un support en texte brut, donc Hermes s’adapte :
- Pas de Markdown — Il est supprimé automatiquement car le SMS le rendrait comme des caractères littéraux
- Limite de 1600 caractères — Les réponses plus longues sont réparties sur plusieurs messages aux limites naturelles
- Prévention des boucles — Les messages provenant de votre propre numéro Twilio sont ignorés pour éviter les boucles
- Confidentialité — Les numéros de téléphone sont masqués dans les journaux
La sécurité, c’est important
Hermes valide que les webhooks entrants proviennent réellement de Twilio en vérifiant l’en-tête X-Twilio-Signature (HMAC-SHA1). Cela empêche les attaquants d’injecter de faux messages.
La passerelle refuse tous les utilisateurs par défaut. Vous devez configurer une liste blanche :
SMS_ALLOWED_USERS=+15559876543,+15551112222
Ou, si vous vous sentez téméraire (ne le faites pas) :
SMS_ALLOW_ALL_USERS=true
Pour le développement local sans URL publique, vous pouvez désactiver la validation de la signature :
SMS_INSECURE_NO_SIGNATURE=true
Mais rappelez-vous — c’est uniquement pour le développement local, jamais en production.
Un dernier avertissement
Le SMS n’a pas de chiffrement intégré. Ne l’utilisez pas pour des opérations sensibles. Pour tout ce qui est confidentiel, tenez-vous-en à Signal ou Telegram.
Dépannage
Les messages n’arrivent pas ? Vérifiez :
- Que votre URL de webhook est correcte et accessible publiquement
- Que vos
TWILIO_ACCOUNT_SIDetTWILIO_AUTH_TOKENsont corrects - La Console Twilio → Monitor → Logs → Messaging pour les erreurs de livraison
- Que votre numéro de téléphone est dans
SMS_ALLOWED_USERS
C’est tout ! Envoyez un texto à votre bot, obtenez des réponses. Simple comme bonjour.
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › user-guide/messaging/sms