Discord — AI in Your Server
Discord — AI in Your Server — easy-to-understand guide based on official docs
Discord — l’IA dans votre serveur
Vous voulez installer Hermes Agent dans votre serveur Discord ? Excellent choix. Ce guide vous explique tout ce que vous devez savoir — du comportement d’Hermes une fois invité, au processus de configuration complet, en passant par de nouvelles fonctionnalités importantes de vérification de santé.
Commençons par le plus amusant : à quoi ressemble vraiment une conversation avec Hermes sur Discord.
Comment Hermes se comporte dans votre serveur
Hermes n’est pas un simple bot qui répond à tout. Il est intelligent quant au moment et à l’endroit où il parle. Voici le détail :
| Contexte | Comportement |
|---|---|
| Messages directs | Hermes répond à chaque message. Pas besoin de @mention. Chaque MD dispose de sa propre session privée. |
| Canaux du serveur | Par défaut, Hermes ne répond que lorsque vous le @mentionnez. Sinon, il reste silencieux. |
| Canaux à réponse libre | Vous voulez un canal où les gens peuvent discuter sans taguer ? Ajoutez-le à DISCORD_FREE_RESPONSE_CHANNELS et Hermes répondra à chaque message en ligne. |
| Threads | Hermes répond dans le même thread. Les règles de mention s’appliquent toujours, sauf si le thread ou son canal parent est en réponse libre. |
| Canaux partagés | Par défaut, Hermes garde l’historique de conversation de chaque utilisateur séparé — même dans le même canal. Alice et Bob qui discutent dans #recherche obtiennent deux sessions indépendantes. |
| Messages mentionnant d’autres personnes | Si quelqu’un @mentionne un autre utilisateur mais pas Hermes, le bot reste silencieux par défaut. Pas d’intrusion dans des conversations qui ne lui sont pas destinées. |
Astuce de pro : Vous voulez un canal d’aide dédié où les gens peuvent simplement taper et obtenir des réponses ? Ajoutez ce canal à DISCORD_FREE_RESPONSE_CHANNELS et le tour est joué.
Le modèle de passerelle : bien plus qu’un simple webhook
Voici un point important : Hermes sur Discord n’est pas un simple webhook qui envoie une réponse préprogrammée. Chaque message passe par un pipeline complet :
- Vérification d’autorisation (
DISCORD_ALLOWED_USERS) - Vérifications de mention / réponse libre
- Recherche de session
- Chargement de la transcription de session
- Exécution complète de l’agent — outils, mémoire, commandes slash
- Envoi de la réponse à Discord
Cela signifie que chaque réponse est soutenue par toute l’intelligence d’Hermes, et non par une réponse scriptée.
Sessions : qui partage quoi ?
Par défaut, Hermes isole les conversations :
- Chaque MD a sa propre session
- Chaque thread a son propre espace de noms de session
- Chaque utilisateur dans un canal partagé a sa propre session
Ceci est contrôlé dans config.yaml :
group_sessions_per_user: true
Si vous voulez une conversation partagée pour toute une salle (utile pour les espaces collaboratifs), définissez-la sur false :
group_sessions_per_user: false
Mais attention : les sessions partagées signifient un contexte partagé et des coûts de tokens partagés. Une tâche longue et gourmande en outils d’une personne peut alourdir le contexte de tout le monde. Et si quelqu’un interrompt en plein milieu, cela peut perturber toute la salle.
Interruptions et concurrence
Avec des sessions par utilisateur (par défaut), Alice peut interrompre sa propre requête sans affecter la conversation de Bob dans le même canal. Bob garde son historique, Alice garde le sien, et personne ne marche sur les pieds de personne.
Avec des sessions partagées, toute la salle partage un seul « slot d’agent en cours d’exécution ». Les messages de suivi de différentes personnes peuvent s’interrompre mutuellement ou se mettre en file d’attente. Amusant pour la collaboration, mais potentiellement chaotique.
Nouveau : vérifications de santé WebSocket de la passerelle
Voici une amélioration récente qui vaut la peine d’être connue. Discord dispose de deux transports distincts : REST et la passerelle WebSocket. Un appel REST réussi ne prouve pas que le bot peut toujours recevoir des événements en temps réel.
Hermes surveille désormais la santé de la passerelle en vérifiant :
- L’état de préparation
- L’état de fermeture du client/socket
- L’ouverture du socket
- L’âge de l’accusé de réception du heartbeat
- La latence du heartbeat
Après un nombre configuré d’échantillons malsains, l’adaptateur émet un événement fatal réessayable et se reconnecte proprement. Pas de boucles de reconnexion infinies.
Configurez les seuils dans config.yaml :
discord:
websocket_liveness_interval_seconds: 15
websocket_liveness_failure_threshold: 2
websocket_heartbeat_ack_max_age_seconds: 60
websocket_max_latency_seconds: 30
Remarque : les anciens noms liveness_interval_seconds et liveness_failure_threshold fonctionnent toujours comme alias de compatibilité, mais ils ne signifient plus une sonde REST.
Étape 1 : Créer une application Discord
- Allez sur le portail développeur Discord et connectez-vous.
- Cliquez sur New Application en haut à droite.
- Nommez votre application (par exemple, « Hermes Agent ») et acceptez les conditions d’utilisation pour développeurs.
- Cliquez sur Create.
Vous arriverez sur la page General Information. Notez votre Application ID — vous en aurez besoin pour construire l’URL d’invitation.
Étape 2 : Créer le bot
- Dans la barre latérale gauche, cliquez sur Bot.
- Discord crée automatiquement un utilisateur bot pour votre application. Personnalisez le nom d’utilisateur si vous le souhaitez.
- Sous Authorization Flow, réglez Public Bot sur ON — requis pour le lien d’invitation fourni par Discord.
Voilà les fondations. À partir de là, vous récupérerez votre jeton de bot, définirez vos variables d’environnement et inviterez Hermes sur votre serveur. En un rien de temps, votre assistant IA sera directement dans Discord — prêt à discuter, utiliser des outils et mémoriser le contexte, tout en temps réel.
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › user-guide/messaging/discord