SSD Nodes Learn Hosting plans →
Guides Matt ConnorPar Matt Connor · Mis à jour le 2026-09-03

Hermes Agent : un VPS à 5 $ suffit-il ?

Hermes n’a pas besoin de GPU : le modèle tourne ailleurs. Installez-le avec un utilisateur dédié, ProtectSystem=strict dans systemd et l’IPv6 couvert par UFW.

Ce qu’est Hermes Agent

Hermes Agent est un agent IA auto-hébergé de Nous Research, publié en février 2026. Vous l’exécutez sur votre propre serveur. Il conserve une mémoire persistante de vos projets, écrit ses propres skills réutilisables au fil de son fonctionnement et vous contacte via des applications de chat comme Telegram et Discord. Il est indépendant du modèle utilisé : vous pouvez le connecter au modèle de langage de votre choix. Il est assez léger pour fonctionner sur un VPS à $5, dans Docker ou via SSH. Cette séparation, où le modèle s’exécute ailleurs tandis que la boucle d’exécution, les outils et la mémoire fonctionnent sur votre serveur, fait de Hermes un agent harness plutôt qu’un modèle. C’est aussi pourquoi un petit serveur suffit.

Comme tout agent, sa valeur vient de sa capacité à agir en votre nom. C’est aussi pourquoi vous devez le configurer avec soin. Un agent qui mémorise, apprend et exécute des tâches est un processus permanent disposant d’un accès réel à votre serveur. Ce guide l’installe de manière sûre. Le hardening présenté ici repose sur les mêmes principes que ceux appliqués pour exécuter OpenClaw en toute sécurité.

L’installation en une commande et pourquoi il faut la lire d’abord

Hermes s’installe avec une seule commande :

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

C’est pratique, mais cette méthode mérite aussi votre attention. Diriger directement un script téléchargé depuis Internet vers un shell exécute tout ce qu’il contient, avec les droits de l’utilisateur qui le lance. Avant de l’exécuter sur un serveur réel, téléchargez-le, lisez-le, puis exécutez-le avec un utilisateur dédié plutôt qu’avec root :

curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.sh

Il ne s’agit pas de se méfier particulièrement de Hermes. C’est une bonne habitude qui évite qu’une installation curl | bash devienne discrètement le maillon le plus faible de votre configuration.

Attribuez-lui un compte non privilégié

Exécutez Hermes avec son propre compte système, jamais avec root. Ainsi, un bug ou une instruction malveillante ne pourra pas atteindre le reste de la machine. Créez un utilisateur sans shell de connexion :

sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermes

Installez Hermes sous /opt/hermes et faites de ce compte le propriétaire. L’installateur officiel installe le logiciel pour l’utilisateur qui l’exécute. Exécutez donc le script téléchargé en tant qu’utilisateur hermes, par exemple avec sudo -u hermes bash hermes-install.sh. Les fichiers seront ainsi placés dans son répertoire personnel, et non dans le vôtre. Le raisonnement est le même que pour exécuter des services avec un utilisateur non privilégié : le compte utilisé par l’agent limite l’étendue des dommages qu’il peut causer. Le compte système ne constitue toutefois qu’une partie du problème. Les propres paramètres de l’agent déterminent aussi ce qu’il peut faire sans demander confirmation. C’est le sujet des modes d’autorisation de Claude Code lorsque l’agent s’exécute sur une machine devant laquelle vous n’êtes pas présent. Si la machine doit finalement servir d’autres personnes que vous, OneCLI applique cette logique d’un compte par agent à toute une équipe : chaque personne dispose de son propre agent en sandbox, tandis que les clés du modèle restent dans une passerelle unique, sans que personne ait à les copier.

Filtrez le trafic du serveur et isolez ses secrets

Hermes fonctionne en se connectant à un modèle et aux applications de chat que vous lui associez. Il n’a donc pas besoin d’accepter des connexions entrantes depuis Internet. Placez un pare-feu avec une politique de refus par défaut devant le serveur :

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

Surveillez ici la faille des pare-feu IPv6, car un jeu de règles qui ne couvre que l’IPv4 peut laisser un service exposé en IPv6. Si l’agent doit accéder à une ressource présente uniquement sur votre réseau domestique, comme un NAS ou une base de données locale, l’annonce de ce réseau sur votre tailnet avec un subnet router permet de l’atteindre via une connexion sortante plutôt que par un port entrant ouvert. Conservez la clé d’API du modèle et les éventuels jetons de chat dans un fichier que seul l’utilisateur hermes peut lire (mode 600), puis chargez-le dans le service au lieu de le coller sur une ligne de commande, où il finirait dans l’historique de votre shell. Un fichier de secrets de ce type constitue une cible réduite mais très sensible, au même titre que le jeton d’administration d’un gestionnaire de mots de passe auto-hébergé, et le raisonnement présenté dans le renforcement de Vaultwarden s’applique également : protégez l’unique fichier qui déverrouille tout le reste, ainsi que ses sauvegardes. Les permissions des fichiers empêchent les autres utilisateurs de la machine d’y accéder, mais pas le fournisseur qui l’héberge. Si les clés détenues par votre agent sont suffisamment sensibles pour modifier cette évaluation, la mémoire chiffrée et l’attestation déterminent si votre hébergeur peut les lire dans la RAM.

Exécuter Hermes comme service systemd renforcé

Une unité systemd permet à Hermes de continuer à fonctionner après votre déconnexion et après un redémarrage. Elle le redémarre s’il se termine de manière inattendue. Elle permet aussi d’ajouter un sandboxing au niveau du kernel pour limiter les ressources auxquelles il peut accéder. Activez NoNewPrivileges, ProtectSystem=strict, PrivateTmp et ProtectHome afin qu’une compromission reste contenue.

Générez une unité renforcée ici, puis copiez-la vers /etc/systemd/system/hermes.service. L’unité démarre hermes gateway, le processus persistant qui se connecte à vos applications de chat. Après l’installation, exécutez hermes --help pour vérifier que cette commande et le chemin du binaire correspondent à votre version, avant d’activer le service :

ToolGenerate a hardened systemd unit for the agent

Les directives, ainsi que les étapes daemon-reload et enable --now, sont présentées dans exécuter un programme comme service systemd :

sudo systemctl daemon-reload
sudo systemctl enable --now hermes

Pour un exemple détaillé du même schéma avec un autre agent, exécuter dsh sans interface sous systemd explique plus longuement les règles Restart et les commandes journalctl dont vous aurez besoin la première fois que le service s’arrête pendant la nuit. Mieux vaut ne pas attendre le matin pour le découvrir : une unité OnFailure= qui envoie l’alerte à votre propre serveur ntfy affiche une notification sur votre téléphone dès que Hermes cesse ses tentatives de redémarrage.

Si vous préférez que systemd supervise un conteneur plutôt qu’une installation native, maintenir KiroCrew actif dans un conteneur épinglé permet également de conserver le service après un redémarrage, tout en maintenant la version de l’image inchangée.

Renforcez la sécurité du serveur

Terminez en sécurisant l’accès principal au serveur. Configurez SSH pour n’accepter que l’authentification par clé et désactivez la connexion de root, comme indiqué dans Sécuriser SSH sur un VPS. Ainsi, le compte utilisé pour administrer le serveur ne peut pas être deviné. Un agent qui conserve une mémoire persistante doit être protégé. La protection la plus simple consiste à empêcher toute connexion non autorisée au serveur qui l’héberge.

Une fois le serveur lui-même sécurisé, la fonction que la plupart des utilisateurs ajoutent ensuite est la recherche web. Configurer l’agent pour utiliser votre propre instance SearXNG permet de conserver ces requêtes sur votre serveur, au prix de lui transmettre des pages que personne n’a vérifiées. Hermes est aussi rarement le seul agent présent sur le serveur. Si Claude Code y fonctionne également, deux sessions peuvent se transmettre directement des tâches au lieu de faire transiter chaque transfert par vous. Si vous ajoutez ensuite un agent qui lit votre code plutôt que vos applications de chat, exécuter les analyses de sécurité d’open-kritt sur le même serveur suit la même logique : une release épinglée, son propre compte et une interface web accessible via un tunnel SSH plutôt que par un port ouvert.

Si vous préférez comprendre le fonctionnement interne plutôt que d’exécuter un agent fourni sous forme de package, construire votre propre agent IA sur un VPS présente la procédure étape par étape. Si le vocabulaire de ce guide vous est encore peu familier, un parcours progressif pour apprendre les agents IA présente la boucle, les outils, la mémoire et la sécurité dans l’ordre où ils s’appuient les uns sur les autres. Les choix effectués par Hermes cessent ainsi de sembler magiques.

FAQ

Puis-je exécuter Hermes Agent sur un petit VPS ?

Oui. Hermes est conçu pour fonctionner sur un petit serveur, et un VPS à $5 suffit pour un agent personnel toujours actif. Il communique avec un modèle de langage et vos applications de chat au lieu de servir un trafic important. Il consomme donc peu de ressources. Donnez-lui son propre utilisateur, un firewall et un service systemd : un petit VPS le fera fonctionner sans difficulté. Si vous avez déjà une machine chez vous, comparez d’abord ses coûts matériels et électriques à cet abonnement mensuel, car un serveur Proxmox à domicile et un VPS loué ont chacun leurs avantages.

Le script d’installation en une ligne peut-il être exécuté sans risque ?

L’installation curl | bash est pratique, mais la bonne pratique consiste à télécharger le script et à le lire avant de l’exécuter. Exécutez-le également avec un utilisateur dédié plutôt qu’avec root. Ainsi, un installateur passé dans un pipe, quel que soit le projet, ne peut pas faire plus que ce qu’autorise ce compte limité. Ce principe ne concerne pas uniquement Hermes. C’est une bonne pratique pour toute installation de ce type.

Comment exécuter Hermes sans root ?

Créez un utilisateur système dédié sans shell de connexion. Installez Hermes dans un répertoire appartenant à cet utilisateur, par exemple /opt/hermes, puis exécutez le service avec ce compte. Si l’agent est compromis, les dégâts restent limités à ce que ce compte peut atteindre.

Comment maintenir Hermes en fonctionnement après ma déconnexion ?

Exécutez-le comme un service systemd. Un fichier d’unité démarre Hermes au boot, le redémarre s’il plante et le maintient en fonctionnement après la fin de votre session SSH. Les options de sandboxing de systemd limitent également les ressources auxquelles le processus peut accéder. Générez une unité renforcée avec l’outil présenté plus haut, puis activez-la avec systemctl enable --now hermes.

Hermes Agent a-t-il besoin d’un GPU ?

Non. Hermes est le runtime de l’agent, pas le modèle de langage. Il fonctionne donc très bien sur un petit VPS équipé uniquement d’un CPU. Les calculs lourds sont effectués là où le modèle s’exécute, généralement via une API hébergée à laquelle vous le connectez. Si vous souhaitez également auto-héberger le modèle sur la même machine, dimensionnez celle-ci en fonction du modèle, et non de Hermes. Pour l’hébergement d’un modèle sur CPU uniquement, les chiffres du guide Ollama s’appliquent.