Difficulté : modérée · Durée : env. 20 minutes · Résultat : maîtriser les configurations clés pour l’intégration d’Hermes sur toutes les plateformes
Et si vous pouviez imaginer ceci : le même assistant IA, déployé une seule fois, capable de tourner simultanément sur Telegram, Feishu et WeCom ? Avec Hermes Agent, c’est possible.
C’est un agent IA open source et auto-évolutif de Nous Research. L’une de ses forces majeures : une passerelle de messages intégrée pour toutes les plateformes. Il vous suffit de lancer un seul processus sur votre serveur pour connecter en même temps Telegram, Discord, Slack, Feishu, WeCom, Signal, WhatsApp et bien d’autres (10+ plateformes). Les messages sont routés automatiquement, la mémoire est partagée entre plateformes : une seule configuration, et cela reste valide en permanence.
Dans cet article, nous allons connecter entièrement les trois plateformes les plus couramment utilisées : Telegram, Feishu ( Lark ) et WeCom.
Public cible
Cet article s’adresse aux développeurs suivants :
- Vous avez déjà des bases en Linux / ligne de commande et souhaitez héberger votre propre agent IA sur un serveur
- Vous êtes un développeur indépendant ou une petite équipe, avec un besoin d’intégration de messages multi-plateforme
- Vous évaluez Hermes Agent comme alternative à OpenClaw
TIP
Si vous n’avez pas encore de clé d’API pour le LLM, il est recommandé de la récupérer sur Defapi. Chez Defapi, Claude Opus 4.6 coûte 2,5 $ en entrée et 12,5 $ en sortie par million de tokens, soit la moitié du prix officiel : excellent rapport qualité/prix. Pour connaître les protocoles d’API pris en charge, voir la documentation Defapi Claude.
Dépendances clés et environnement
| Dépendance | Description |
|---|---|
| Python | 3.11+ (le script d’installation gère automatiquement le setup) |
| Système d’exploitation | Linux (Ubuntu 22.04+), macOS ou WSL2 |
| Comptes des plateformes de messagerie | Telegram Bot Token / application entreprise Feishu auto-construite / WeCom |
| LLM API Key | Recommandé : Defapi (Claude Opus 4.6 à moitié prix) |
| Docker | Optionnel : le déploiement en conteneur est officiellement pris en charge à partir de v0.6.0 |
WARNING
Windows natif n’est pas pris en charge : installez WSL2, puis exécutez les commandes dans le terminal WSL2.
Structure complète du projet
hermes-agent/
├── scripts/
│ └── install.sh # Script d’installation en une fois
└── ~/.hermes/ # Dossier principal de configuration (généré automatiquement après l’installation)
├── config.yaml # Configuration centrale (modèle, ensemble d’outils)
├── .env # API Keys (ne pas valider dans Git !)
├── skills/ # Dossier des compétences
├── memory/ # Mémoire persistante
├── sessions/ # Historique des sessions (recherche plein texte FTS5)
└── gateway/ # Configuration de la passerelle (YAML séparés par plateforme)
├── telegram.yaml
├── feishu.yaml
└── wecom.yaml
Étapes pas à pas
Étape 1 : installation instantanée de Hermes Agent
Sous Linux / macOS / WSL2, exécutez le script d’installation officiel :
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Le script gère automatiquement Python, Node.js et toutes les dépendances. Aucune intervention manuelle tout au long du processus. Une fois l’installation terminée, rechargez le shell :
source ~/.bashrc # pour les utilisateurs bash
source ~/.zshrc # pour les utilisateurs zsh
Vérifiez que l’installation est réussie :
hermes doctor
TIP
hermes doctor diagnostique automatiquement les problèmes d’environnement : version de Python, API Key, connectivité réseau, dépendances d’outils, etc. Pour une première exécution, il est vivement recommandé de lancer la commande au moins une fois.
Étape 2 : configurer le fournisseur LLM — connexion à Defapi
Ensuite, il faut indiquer à Hermes où récupérer le modèle de langage. Renseignez la clé API dans le fichier .env :
hermes config set ANTHROPIC_API_KEY <votre-cle-defapi>
Defapi est compatible avec l’interface Anthropic v1/messages : Hermes peut s’y connecter directement. Vous pouvez aussi choisir le modèle et le Provider de façon interactive via la commande hermes model :
hermes model
# Sélection interactive :
# 1. Nous Portal
# 2. OpenRouter (200+ modèles)
# 3. OpenAI
# 4. Defapi / endpoint personnalisé
# 5. Autres...
Si vous utilisez Defapi, sélectionnez « endpoint personnalisé » (Custom) dans le menu interactif, puis saisissez :
API Endpoint: https://api.defapi.org
Model: anthropic/claude-opus-4.6
WARNING
Le fichier .env contient votre API Key. Ne la validez absolument pas dans un dépôt Git. Si vous déployez via Docker, utilisez plutôt des variables d’environnement ou Docker Secrets : ne l’écrivez pas directement dans le Dockerfile.
Étape 3 : connecter la première plateforme — Telegram Bot
C’est la plateforme la plus simple pour valider : l’API Bot de Telegram est publique, sans authentification entreprise.
3.1 Créer un Bot
Dans Telegram, cherchez @BotFather, envoyez /newbot, puis suivez les indications pour nommer le Bot et récupérer BOT_TOKEN, au format par exemple 123456789:ABCdefGHIjklMNOpqrsTUVwxyz.
3.2 Configurer la passerelle Hermes
hermes gateway setup
# Choisir telegram pour entrer dans la configuration interactive
Ou créer manuellement ~/.hermes/gateway/telegram.yaml :
platform: telegram
enabled: true
bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
# Contrôle d’accès : n’autoriser que certains utilisateurs
allowed_users:
- your_telegram_username
# Paramètres de sécurité
require_approval_for_dangerous_tools: true
3.3 Vérifier
Après avoir démarré la passerelle, envoyez un message au Bot :
hermes gateway start
# ou en tâche de fond :
hermes gateway start --daemon
Dans Telegram, envoyez /new au Bot : il devrait répondre avec un message de bienvenue. Envoyez aussi un message en chinois, par exemple « bonjour », et vérifiez si l’IA répond.
TIP
Si le Bot ne répond pas, vérifiez : hermes gateway status pour le statut d’exécution, et hermes logs pour les derniers logs. Les causes les plus fréquentes : Token Bot mal renseigné ou port déjà utilisé.
Étape 4 : connecter Feishu (application d’entreprise Lark)
L’intégration Feishu est un peu plus complexe : elle nécessite de créer une application auto-construite dans la plateforme ouverte Feishu.
4.1 Créer une application sur la plateforme ouverte Feishu
- Ouvrez la plateforme ouverte Feishu et créez une application d’entreprise auto-construite
- Dans « Credentials et informations de base », récupérez
App IDetApp Secret - Activez la capacité « Robot »
4.2 Configurer l’abonnement aux événements
Dans « Abonnement d’événements » de l’application :
- URL de demande (Request URL) :
https://votre-domaine/gateway/feishu/webhook - Événement à choisir :
im.message.receive_v1(réception des messages)
WARNING
Feishu exige que l’URL de rappel soit accessible publiquement en HTTPS. Si votre serveur n’a pas de domaine public, vous pouvez utiliser ngrok pour une ouverture temporaire du réseau interne : ngrok http 8080. L’URL HTTPS générée doit être saisie dans Feishu.
4.3 Installer l’application dans l’entreprise
Dans « Gestion des versions et publication », créez une version et publiez-la, sinon le Bot ne pourra pas recevoir les messages.
4.4 Configurer la passerelle Hermes
hermes gateway setup
# Choisir feishu, puis renseigner App ID et App Secret dans l’interface interactive
Éditer manuellement ~/.hermes/gateway/feishu.yaml :
platform: feishu
enabled: true
app_id: "cli_xxxxxxxxxxxxxx"
app_secret: "xxxxxxxxxxxxxxxxxxxx"
verification_token: "votre_verification_token"
# Chiffrement des messages (optionnel mais recommandé)
encrypt_key: "votre_encrypt_key"
# Groupes et utilisateurs autorisés
allowed_chats: []
require_mention: false
4.5 Vérifier
Dans Feishu, envoyez au Bot le message /new et vérifiez la réponse. Le format des messages de Feishu est différent de Telegram : le Bot peut envoyer des cartes de messages en texte enrichi, et Hermes s’adapte automatiquement.
Étape 5 : connecter WeCom (WeChat Work)
La manière de connecter WeCom est similaire à Feishu : elle utilise aussi le mode callback via Webhook.
5.1 Créer une application depuis le back-office de WeCom
- Connectez-vous à le back-office de WeChat Work
- Allez dans « Gestion des applications » → « Créer une application » → choisissez « Entreprise auto-construite »
- Récupérez
AgentId,Secretet leCorpIdde l’entreprise - Définissez « IP de l’entreprise approuvée (Trusted IP) » sur l’IP de votre serveur
5.2 Configurer la réception des messages
Dans les réglages de l’application, activez le mode « Recevoir des messages » :
- Renseignez
URL:https://votre-domaine/gateway/wecom/webhook - Choisissez « Mode compatibilité » ou « Mode événements »
5.3 Configurer la passerelle Hermes
# ~/.hermes/gateway/wecom.yaml
platform: wecom
enabled: true
corp_id: "wwxxxxxxxxxxxxxx"
agent_id: "1000001"
corp_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
encrypt_mode: "safe" # Le mode sécurisé nécessite la configuration de encoding_aes_key
encoding_aes_key: "votre_cle_aes_de_32_caracteres"
5.4 Vérifier
Dans WeCom, trouvez votre application et envoyez un message de test.
TIP
WeCom est très strict sur la liste blanche d’IP. Si vous déployez sur une machine cloud (par ex. DigitalOcean, Hetzner), assurez-vous d’ajouter l’IP publique du serveur dans la liste des IP de confiance sur le panneau d’administration. Sinon, WeCom refusera directement les messages.
Étape 6 : démarrer la passerelle — une fois pour trois plateformes
Une fois toutes les configurations terminées, démarrez la passerelle avec une seule commande :
hermes gateway start
Hermes charge automatiquement toutes les configurations des plateformes activées dans ~/.hermes/gateway/ et lance en parallèle tous les adaptateurs. Si une plateforme échoue au démarrage (par exemple Token incorrect), cela n’affectera pas le fonctionnement des autres plateformes.
Utilisez hermes gateway status pour voir l’état d’exécution de chaque plateforme :
Plateforme Statut Utilisateurs Messages
telegram ● en ligne 3 142
feishu ● en ligne 7 89
wecom ● en ligne 2 15
Arrêtez la passerelle avec Ctrl+C, ou lancez-la en arrière-plan avec --daemon :
hermes gateway start --daemon
Étape 7 : valider la messagerie multi-plateforme
Vous pouvez maintenant envoyer des messages au Bot depuis les trois plateformes afin de tester :
# Telegram
/new
Bonjour, présente-toi
# Feishu
/new
Qui es-tu ?
# WeCom
/new
Comment puis-je t’aider ?
Les trois côtés renvoient exactement la même réponse, et la mémoire est partagée : ce que vous dites sur Telegram, Feishu et WeCom le savent aussi. C’est là la valeur la plus fondamentale de Hermes : une seule configuration, une expérience unifiée sur toutes les plateformes.
TIP
Si vous voulez faire tourner chaque plateforme avec des instances d’agent différentes (modèles différents, ensembles de compétences différents), vous pouvez utiliser la fonctionnalité Profiles ajoutée dans Hermes v0.6.0 : hermes -p telegram profile create, puis configurer modèle et plateforme différemment dans chaque profile. Les profiles sont totalement isolés : aucun impact entre eux.
Résolution des problèmes fréquents
1. Le Bot Telegram ne reçoit pas de messages
Symptôme : le Bot ne répond jamais, et les logs ne montrent aucun enregistrement.
Étapes de vérification :
# 1. Confirmer que le Token est correct
hermes config get telegram.bot_token
# 2. Vérifier que le port n’est pas déjà utilisé
ss -tlnp | grep 8080
# 3. Si vous utilisez le mode webhook, vérifier la configuration de l’API Telegram Bot
# L’URL de webhook doit être accessible publiquement ; pour le développement local, utilisez ngrok pour percer
ngrok http 8080
# 4. Réinitialiser le webhook (parfois le Bot reste bloqué sur l’ancien webhook)
curl -X POST "https://api.telegram.org/bot<YOUR_TOKEN>/deleteWebhook"
2. Échec de la validation du callback Feishu
Symptôme : la plateforme ouverte Feishu affiche « validation d’URL de callback échouée ».
Étapes de vérification :
# 1. Confirmer que l’URL publique est accessible
curl -X GET "https://your-domain.com/gateway/feishu/webhook"
# 2. Vérifier la validation de la signature Feishu
# Feishu chiffre les messages via AES : encrypt_key doit correspondre à la configuration du back-office
# Consulter les logs Hermes :
hermes logs --platform feishu
WARNING
Le mode de chiffrement de Feishu (encrypt_mode) doit correspondre à la configuration du back-office. Si vous avez choisi « mode sécurisé » côté back-office, alors côté Hermes vous devez aussi renseigner encrypt_mode: safe et la encoding_aes_key correspondante.
3. Le Bot WeCom ne répond pas
Symptôme : le message est envoyé, mais aucune réponse n’est reçue, et aucun log ne montre d’enregistrement.
Étapes de vérification :
# 1. Confirmer que CorpId / AgentId / Secret sont corrects
# 2. Le plus important : vérifier la liste blanche d’IP
# WeCom exige que l’IP du serveur qui appelle l’API soit dans la liste d’IP de confiance
# 3. Tester l’obtention de AccessToken
curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwxxx&corpsecret=secret"
# Si vous recevez "errmsg": "ip not in whitelist", alors l’IP n’a pas été autorisée
4. Le modèle ne répond pas
Symptôme : le message est bien reçu par le Bot, mais l’IA ne répond pas et reste affiché « thinking ».
Étapes de vérification :
# 1. Tester si la clé API fonctionne
curl -X POST "https://api.defapi.org/api/v1/messages" \
-H "Authorization: Bearer <votre-clé>" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-opus-4.6","messages":[{"role":"user","content":"salut"}],"max_tokens":10}'
# 2. Vérifier la configuration du modèle
hermes config get model
# 3. Vérifier fallback_providers (recommandé)
# Dans ~/.hermes/config.yaml, ajoutez un Provider de secours :
fallback_providers:
- provider: openrouter
api_key: "${OPENROUTER_API_KEY}"
TIP
Il est recommandé de configurer au moins un Provider de secours en plus de Defapi. Hermes v0.6.0 prend en charge l’appel en chaîne via fallback_providers : si le Provider principal expire ou renvoie une erreur, il bascule automatiquement sur le Provider de secours, afin d’éviter que l’agent ne se déconnecte.
5. Erreur lors de l’exécution des outils
Symptôme : la réponse du Bot indique qu’il ne peut pas exécuter une action.
Étapes de vérification :
# 1. Voir l’ensemble d’outils actuellement activé
hermes tools
# 2. Activer l’ensemble d’outils requis
hermes tools enable web_search
hermes tools enable terminal
# 3. Les commandes dangereuses nécessitent une confirmation humaine
# Vérifier la configuration :
hermes config get approval_required
# Si c’est à true, toutes les commandes dangereuses demanderont votre validation manuelle
6. Conflits de concurrence multi-plateformes
Symptôme : après qu’une plateforme reçoive un message, les autres plateformes ne répondent plus.
Étapes de vérification :
Le mécanisme de token-lock d’Hermes v0.6.0 peut empêcher deux instances de plateforme d’utiliser en même temps le même Bot Token. Toutefois, si vous exécutez plusieurs instances du même Bot sur plusieurs machines, ce problème peut apparaître.
# Vérifier qu’une seule instance de Hermes est en cours d’exécution
ps aux | grep hermes
pkill -f hermes-agent
# Puis redémarrer
hermes gateway start
TIP
Avec Profiles, chaque plateforme peut faire tourner des instances Hermes totalement indépendantes : chaque profile possède son propre répertoire de configuration, sa mémoire et ses sessions. Les profiles sont complètement isolés entre eux : idéal pour qu’une équipe utilise son propre Bot.
Lectures complémentaires / pistes avancées
Migration depuis OpenClaw
Si vous utilisez déjà OpenClaw, Hermes fournit un outil de migration officiel : il peut importer automatiquement SOUL.md, MEMORY.md, Skills, API Keys et la configuration des plateformes de messages.
hermes claw migrate # Migration complète interactive
hermes claw migrate --dry-run # Aperçu d’abord
hermes claw migrate --preset user-data # Ne pas migrer les informations sensibles
Mode MCP Server
Hermes v0.6.0 ajoute la capacité MCP Server : vous pouvez exposer les outils de Hermes au monde extérieur avec une seule commande.
hermes mcp serve
# Prend en charge deux protocoles de transport : stdio et Streamable HTTP
Une fois connecté, des IDE comme Cursor, VS Code ou Zed peuvent appeler tous les outils Hermes et ses capacités de conversation via le protocole MCP.
Système de compétences personnalisées
Le système Skills de Hermes permet de créer automatiquement des compétences à partir de descriptions en langage naturel. Il est aussi possible d’écrire manuellement :
# Voir les compétences existantes
hermes skills
# Parcourir le Skills Hub (marché communautaire)
/skills
# Installer des compétences communautaires depuis agentskills.io
Tâches planifiées (Cron)
Définissez des tâches en langage naturel : Hermes exécute automatiquement et pousse les résultats vers n’importe quelle plateforme.
# Tous les jours à 8h, envoyer un bulletin météo sur Telegram
/cron "Every day at 8am, summarize today's weather and send to me" --platform telegram
Conclusion
La conception de la passerelle multi-plateformes de Hermes Agent est particulièrement élégante : il vous suffit de maintenir une seule configuration pour faire tourner la même instance d’agent sur n’importe quelle plateforme de messagerie. La mémoire est partagée entre plateformes, la configuration est une fois pour toutes, et l’utilisation des ressources est nettement inférieure à celle de plusieurs Bots indépendants.
Si vous utilisez encore OpenClaw, ou si vous cherchez un véritable agent IA open source qui « fait le job », Hermes vaut vraiment la peine d’être testé pendant 20 minutes. En l’associant à Defapi et à Claude Opus 4.6 à moitié prix, votre coût mensuel peut être réduit à 50 % de l’original — tout en conservant une expérience sans compromis.