🤖HermesBlog
Hermes Messaging Platforms · Partie 88/9/2026

SMS — Command AI by Text

SMS — Command AI by Text — easy-to-understand guide based on official docs

messaging-sms

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_URL est 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’environnementSMS_WEBHOOK_HOST, SMS_WEBHOOK_PORT, SMS_INSECURE_NO_SIGNATURE et SMS_ALLOW_ALL_USERS vous 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 :

  1. Que votre URL de webhook est correcte et accessible publiquement
  2. Que vos TWILIO_ACCOUNT_SID et TWILIO_AUTH_TOKEN sont corrects
  3. La Console Twilio → Monitor → Logs → Messaging pour les erreurs de livraison
  4. 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