Hermes Flightplan #1 : Le guide ultime pour créer un agent IA Telegram toujours actif (Code complet prêt à l'emploi)

@witcheer
ANGLAISil y a 4 semaines · 22 juin 2026
111K
232
34
5
759

TL;DR

Ce guide propose une procédure détaillée pour déployer l'agent IA Hermes sur un VPS ou un Mac, incluant l'intégration à Telegram, la récupération automatique après un crash et une configuration sécurisée via Nous Portal.

Vous voulez un agent IA que vous pouvez contacter depuis votre téléphone, qui continue de fonctionner après avoir fermé votre ordinateur portable et qui redémarre tout seul après une réinitialisation ? Hermes Agent fait exactement cela : il fonctionne comme une passerelle avec laquelle vous communiquez via Telegram, et une fois correctement configuré, il redémarre automatiquement après un crash ou une coupure de courant.

J'ai mis en place la même configuration sur deux machines, un VPS cloud bon marché et le Mac Mini sur mon bureau, afin de pouvoir décrire l'intégralité du processus sans rien omettre. C'est un seul chemin. La machine ne change que deux choses : la commande d'installation et la partie qui maintient la passerelle active. Tout le reste est identique.

Tout ce qui suit a été exécuté sur mon propre matériel. Le chemin Linux est un Hetzner CX23 (x86, 2 vCPU, 4 Go de RAM, 40 Go de disque) sous Ubuntu 24.04.4 LTS - le chemin Mac est un Mac Mini M4 sous macOS 15. Les deux exécutaient Hermes Agent v0.16.0.

Ce que vous aurez à la fin

  • Hermes Agent installé, fonctionnant en tant qu'utilisateur normal, pas root
  • Un bot Telegram que vous pouvez contacter depuis votre téléphone, verrouillé uniquement sur votre compte
  • La passerelle fonctionnant comme un service géré, afin qu'elle redémarre après un crash ou une réinitialisation
  • Sur le VPS, une machine sécurisée : SSH par clé uniquement, pas de connexion root, un pare-feu

Choisissez votre machine

Un VPS est la solution la moins chère. N'importe quelle machine x86 avec 4 Go de RAM et environ 20 Go d'espace disque libre peut exécuter cela ; le mien est un Hetzner CX23 à 7,79 $/mois (tarifs Hetzner US, 18/06/2026). Louez-le, et il est toujours allumé par définition.

Un Mac que vous possédez déjà est l'autre option. N'importe quel Mac Apple Silicon qui reste allumé fonctionne, et le coût d'exploitation est nul au-delà du modèle. L'inconvénient est que la couche de durabilité est plus délicate sur macOS, ce que je couvre à la fin.

Vous avez besoin d'une clé SSH sur votre propre machine (ssh-keygen -t ed25519 si vous n'en avez pas), d'un compte Telegram et d'un modèle pour l'agent. Ce guide pointe vers Nous Portal, qui utilise OAuth, donc il n'y a pas de clé API à conserver dans un fichier. Hermes a besoin d'un modèle avec au moins 64k de contexte.

Étape 1 : Préparez la machine

sur un VPS

Créez le serveur chez votre fournisseur : Ubuntu 24.04, une instance x86 (pas Arm, voir la note sur les coûts), et collez votre clé publique SSH lors de la création.

Une nouvelle machine publique a besoin de quelques minutes de sécurisation avant d'y installer un agent. Le script secure-box.sh de la recette le fait en une seule passe : une mise à jour apt, un fichier d'échange de 2 Go, un utilisateur sudo non-root avec votre clé, SSH par clé uniquement avec connexion root désactivée, et un pare-feu qui n'autorise que SSH. Modifiez les deux variables en haut, copiez-le, exécutez-le en tant que root :

bash
1scp secure-box.sh root@<votre-ip-vps>:
2ssh root@<votre-ip-vps> 'bash secure-box.sh'

Cette image Ubuntu était livrée avec PasswordAuthentication activé, même si j'ai créé la machine avec une clé SSH. Le script le désactive. Avant de fermer la session root, ouvrez un deuxième terminal et confirmez que le nouvel utilisateur peut se connecter, afin qu'une erreur ne vous verrouille pas :

bash
1ssh hermes@<votre-ip-vps>

À partir de là, vous êtes hermes, pas root.

sur un Mac

Pas de passe de sécurisation. C'est votre machine sur votre propre réseau, pas une machine publique. Installez Homebrew si vous ne l'avez pas (l'installateur l'utilise à l'étape suivante) et vous êtes prêt.

Étape 2 : Installez Hermes

L'installation est une seule commande, identique sur les deux machines, exécutée en tant qu'utilisateur normal :

bash
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
2source ~/.bashrc
3hermes --version

L'installateur détecte votre système d'exploitation et récupère sa propre chaîne d'outils (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, un Playwright Chromium pour les outils navigateur) dans ~/.hermes, donc il ne touche jamais à votre Python système. Sur ma machine Hetzner, il a installé Hermes Agent v0.16.0 sur Python 3.11.15.

C'est l'étape lourde. Sur le VPS, le disque est passé de 1,2 Go utilisé à 7,8 Go, soit environ 6,6 Go, la plupart étant le moteur du navigateur et Node. Prévoyez 20 Go de libre et ne vous inquiétez pas. Exécuté via une simple commande SSH sans terminal, l'installateur affiche « Setup wizard skipped (no terminal available) », ce qui est normal, la configuration est l'étape suivante.

Sur un Mac, la même commande s'exécute, avec une subtilité : installez Homebrew d'abord. Avec Homebrew présent, l'installateur récupère git et ses dépendances sans invite. Sans cela, il revient aux outils en ligne de commande d'Apple, ce qui peut ouvrir une boîte de dialogue macOS que vous devez cliquer, et une boîte de dialogue n'est pas idéale via SSH (c'est dans la branche macOS de l'installateur). Ensuite, le flux est le même que ci-dessus.

Étape 3 : Pointez-le vers un modèle

bash
1hermes setup --portal

C'est OAuth via Nous Portal : il imprime une URL et un code, vous l'approuvez dans le navigateur, et maintenant la machine communique avec un modèle sans qu'aucune clé API ne soit stockée dans un fichier. Nous Portal a un niveau gratuit, et j'ai exécuté l'ensemble sur un modèle gratuit. Si vous préférez utiliser votre propre fournisseur, exécutez hermes model et choisissez-en un ; la clé sera alors dans ~/.hermes/.env.

Étape 4 : Communiquez avec lui

sur un VPS

Dès que votre connexion SSH est interrompue, une session en premier plan meurt avec elle. tmux maintient la session active : démarrez dans tmux, détachez-la, et elle continue de fonctionner.

bash
1sudo apt-get install -y tmux
2tmux new -s hermes # puis, à l'intérieur : hermes

Détachez avec Ctrl-b puis d, et reconnectez-vous plus tard depuis n'importe où :

bash
1ssh hermes@<votre-ip-vps>
2tmux attach -t hermes

Le premier démarrage de l'agent interactif prend un moment. Le mien a passé environ 30 secondes à charger le modèle et les compétences avant que l'invite n'apparaisse. Une fois qu'il est opérationnel, les commandes slash fonctionnent.

/goal est celle qui mérite d'être montrée : elle définit un objectif permanent sur lequel l'agent travaille au fil des tours, avec un modèle juge qui vérifie après chaque tour si l'objectif est atteint.

bash
1/goal vérifie la RAM totale et l'espace disque libre de cette machine à l'aide des outils shell, puis rapporte les deux sur une seule ligne et marque l'objectif comme atteint

Le mien a exécuté la commande shell lui-même et est revenu avec « RAM totale du VPS : 3,7 Gi, espace disque libre : 28 G » en environ 15 secondes. C'est l'agent utilisant ses propres outils.

Gardez deux idées distinctes : tmux maintient une session interactive ouverte après une déconnexion SSH, mais pas après un redémarrage. Pour une passerelle sans surveillance qui survit à un redémarrage, vous voulez un service géré, qui est l'étape 6.

sur un Mac

Vous êtes assis devant la machine, vous pouvez donc exécuter hermes dans un terminal. tmux aide toujours si vous vous connectez en SSH depuis votre ordinateur portable, mais c'est facultatif ici.

Étape 5 : La passerelle Telegram

Cette partie est identique sur les deux machines. Créez un bot : envoyez un message à @ BotFather sur Telegram, envoyez /newbot et copiez le jeton. Obtenez votre identifiant utilisateur numérique auprès de @ userinfobot. Ensuite, configurez la passerelle :

bash
1hermes gateway setup

Choisissez Telegram, collez le jeton et définissez les utilisateurs autorisés sur votre identifiant numérique afin que vous seul puissiez lui parler. Le jeton atterrit dans ~/.hermes/.env, le reste dans ~/.hermes/gateway.json.

La configuration ne fait qu'écrire la configuration. Elle ne démarre rien, donc le bot reste silencieux, et cela surprend les gens : rien ne sonde Telegram pour l'instant. Démarrez-le en premier plan une fois pour vérifier qu'il se connecte :

bash
1hermes gateway run

Vous voulez voir, dans le journal :

bash
1gateway.run: Connecting to telegram...
2[Telegram] Connected to Telegram (polling mode)
3gateway.run: ✓ telegram connected

Le mode d'interrogation signifie que la passerelle contacte Telegram ; rien ne se connecte à votre machine, c'est pourquoi le pare-feu n'a besoin d'aucun port entrant autre que SSH. Envoyez un message à votre bot ; il devrait répondre. Ensuite, arrêtez la passerelle en premier plan avec Ctrl-C, car vous ne pouvez pas avoir deux choses qui sondent le même jeton en même temps, et l'étape suivante l'exécute en tant que service.

Étape 6 : Faites en sorte qu'il survive à un redémarrage

C'est le seul endroit où les deux machines divergent.

sur un VPS : systemd

hermes gateway install enregistre la passerelle en tant que service systemd afin qu'elle redémarre en cas de crash et revienne après un redémarrage. Dans cette version, l'installateur pose deux questions [Y/n] et il n'y a pas d'option pour les ignorer. Exécutez-le via une commande SSH non interactive, ce qui est naturel lors du script d'une machine, et il n'obtient pas de réponse, abandonne et n'installe rien. Fournissez les réponses sur l'entrée standard :

bash
1printf 'n\nY\n' | hermes gateway install

Les deux questions sont « démarrer la passerelle maintenant ? » et « démarrer automatiquement à la connexion/démarrage ? ». Le n puis Y dit : ne la démarrez pas maintenant, mais activez-la au démarrage. L'installateur active également la persistance de session utilisateur, ce qui permet à un service utilisateur de s'exécuter avant que vous ne vous soyez connecté. Confirmez-le, car c'est ce qui rend « survit au redémarrage » vrai et pas seulement « survit à la déconnexion » :

bash
1loginctl show-user $USER -p Linger # veut : Linger=yes

Démarrez-le et vérifiez-le :

bash
1hermes gateway start
2systemctl --user status hermes-gateway

Vous voulez active (running) et NRestarts=0. Sur ma machine, la passerelle utilisait environ 280 Mo et l'ensemble de la machine se situait à environ 556 Mo, confortable sur 4 Go.

Maintenant, le vrai test. Redémarrez et n'y touchez pas :

bash
1sudo reboot

Le mien est revenu en environ 15 secondes, la passerelle avait démarré toute seule, s'était reconnectée à Telegram et avait répondu au message suivant avec l'historique de la conversation d'avant le redémarrage intact. C'est tout l'intérêt.

sur un Mac : launchd et un chien de garde

macOS utilise launchd, pas systemd, et il y a un piège. Sur macOS 15 avec Hermes v0.16.0, hermes gateway start peut échouer à enregistrer le service launchd et revenir, sans vous le dire, à un processus d'arrière-plan non supervisé. Vous voyez ceci :

bash
1Bootstrap failed: 5: Input/output error
2⚠ launchd cannot manage the gateway on this macOS version (launchctl exit 5)
3✓ Started gateway as a background process instead
4 It will NOT auto-start at login or auto-restart on crash.

Si vous aviez un travail launchd fonctionnel auparavant, la commande l'a déchargé, et le repli fonctionne bien jusqu'au premier crash ou redémarrage, puis votre agent a disparu sans rien pour vous le dire. launchctl brut fonctionne là où la CLI échoue, y compris via SSH :

bash
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist
2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # veut : state = running

Le plist démarre la passerelle à la connexion mais ne la redémarre pas en cas de crash. Un chien de garde cron comble les deux lacunes, et cron s'exécute au démarrage sans nécessité de connexion. La recette fournit gateway-watchdog.sh ; il vérifie toutes les 5 minutes si le processus de la passerelle est vivant et le réamorce si ce n'est pas le cas. Installez-le selon un calendrier :

bash
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -

J'ai vu cette séquence récupérer une passerelle dégradée sur mon propre Mac Mini. Redémarrez et confirmez que la passerelle est de retour dans les cinq minutes sans vous connecter.

Vérifiez votre configuration

  1. Le service est actif : systemctl --user status hermes-gateway sur Linux (active (running)), ou launchctl print gui/$(id -u)/ai.hermes.gateway | grep state sur macOS (state = running)
  2. Envoyez un message à votre bot : il vous répond et ignore quiconque ne figure pas dans vos utilisateurs autorisés
  3. Sur Linux, loginctl show-user $USER -p Linger affiche Linger=yes
  4. Redémarrez la machine, attendez, renvoyez un message au bot sans vous reconnecter : il répond

Coût

Sur le VPS, la machine est la seule dépense. Le mien est un Hetzner CX23 à 0,012 $/heure, plafonné à 7,79 $/mois (tarifs Hetzner US, 18/06/2026 ; le CX22 UE est de la même forme et moins cher).

Sur le Mac, c'est une machine que vous possédez déjà, zéro service supplémentaire. Le modèle est gratuit sur le niveau gratuit de Nous Portal dans les deux cas.

Ici, la mémoire n'est pas la limite : la passerelle utilisait environ 280 Mo, l'ensemble de la machine environ 556 Mo, donc 1 Go de RAM est suffisant. Le disque est la vraie limite : l'installation fait environ 6,6 Go, donc une image de 1 Go ou 10 Go est juste, donnez-lui 20 Go. Et utilisez x86, c'est le choix sûr.

Exécutez-le vous-même, et quelle est la suite

Les deux machines ont une recette complète avec les scripts exacts, exécutables tels quels :

Vous avez maintenant un agent toujours actif sur Telegram qui survit à un redémarrage.

Le prochain Flightplan s'appuie sur cela : des tâches planifiées qui vous envoient un message uniquement lorsque quelque chose compte, un espace de travail synchronisé par git que l'agent lit et écrit, et le flux de rédaction et d'approbation qui maintient un humain sur chaque action publique.

Merci d'avoir lu

Enregistrer en un clic

Lire les articles viraux en profondeur avec l’IA de YouMind

Enregistrez la source, posez des questions ciblées, résumez l’argument et transformez un article viral en notes réutilisables dans un seul espace de travail IA.

Découvrir YouMind
Pour les créateurs

Transformez votre Markdown en un article 𝕏 impeccable

Quand vous publiez vos propres textes longs, la mise en forme 𝕏 des images, tableaux et blocs de code est pénible. YouMind transforme un brouillon Markdown complet en un article 𝕏 impeccable, prêt à publier.

Essayer Markdown vers 𝕏

D'autres patterns à décoder

Articles viraux récents

Explorer plus d'articles viraux