Qu'est-ce qu'un outil dans Hermes Agent
Un outil est une interface déclarée entre l'agent et une ressource externe : système de fichiers, API web, base de données, service interne. Lorsque le modèle décide d'agir, il ne le fait pas directement : il formule un appel d'outil structuré que le runtime intercepte, valide et exécute selon les permissions configurées. L'outil est donc à la fois une capacité et une contrainte.
Cette architecture impose une discipline de déclaration : vous ne pouvez pas ajouter un outil en cours de session sans passer par la configuration. Cela peut sembler contraignant, mais c'est précisément ce qui rend le comportement de l'agent auditable. À tout moment, `hermes mcp list` vous donne la liste exacte de ce que l'agent est capable de faire.
- Un outil est une interface déclarée, pas un accès libre
- `hermes mcp list` affiche tous les outils actifs
- Le runtime refuse les appels à des outils non déclarés
Permissions de lecture et d'écriture : une distinction fondamentale
La distinction entre lecture et écriture n'est pas cosmétique : un outil en lecture seule ne peut pas modifier l'état du système, ce qui le rend beaucoup plus sûr à déléguer à l'agent. Un outil d'écriture, en revanche, peut créer, modifier ou supprimer des données, ce qui exige une validation plus stricte et, dans certains cas, une confirmation humaine avant exécution.
Lors de la configuration d'un outil avec `hermes mcp add`, définir le niveau de permission au plus bas nécessaire est une bonne pratique systématique. Si l'agent n'a besoin que de lire des fichiers journaux, lui accorder une permission d'écriture sur le même répertoire crée un risque inutile. Cette granularité est l'un des leviers principaux de contrôle du comportement agentique.
- Lecture seule : l'agent observe sans modifier
- Écriture : l'agent peut changer l'état du système
- Appliquer le principe du moindre privilège à chaque outil
- `hermes mcp add` permet de spécifier les permissions à la déclaration
Ajouter et configurer un outil
L'ajout d'un outil suit un processus en deux temps : déclaration avec `hermes mcp add`, puis configuration fine avec `hermes mcp configure`. La déclaration enregistre l'outil et ses paramètres de base ; la configuration permet d'affiner les règles d'usage, les plages de valeurs acceptables, les conditions de déclenchement d'une validation supplémentaire et les éventuels paramètres d'authentification.
Ne pas confondre la disponibilité d'un outil et son activation : un outil déclaré mais mal configuré peut produire des erreurs silencieuses ou des comportements inattendus. La commande `hermes mcp configure` est l'étape où vous précisez les contraintes métier spécifiques à votre contexte, par exemple les chemins de fichiers autorisés ou les endpoints API accessibles.
- `hermes mcp add` déclare l'outil
- `hermes mcp configure` affine les règles d'usage
- Un outil déclaré sans configuration fine peut se comporter de façon imprévue
Tester un outil avant de l'intégrer à un agent actif
Avant d'intégrer un outil dans un flux agentique en production, le tester de façon isolée avec `hermes mcp test` permet de vérifier qu'il répond correctement aux appels attendus, que les permissions sont bien appliquées et que les erreurs sont correctement remontées au runtime. Ce test unitaire de l'outil est distinct du test de l'agent complet.
Un outil qui fonctionne correctement en isolation peut se comporter différemment lorsqu'il est appelé dans une boucle agentique avec un contexte chargé. Les tests d'intégration — où l'on observe comment l'agent utilise l'outil dans des scénarios réels — sont une étape complémentaire indispensable avant tout déploiement.
- `hermes mcp test` vérifie le comportement isolé d'un outil
- Tester les cas d'erreur, pas seulement le chemin nominal
- Le test isolé ne remplace pas le test d'intégration dans la boucle agentique
Organiser les outils en toolsets cohérents
Un toolset est un ensemble d'outils regroupés par domaine fonctionnel ou par niveau de risque. Organiser les outils en toolsets permet de créer des profils d'agent différents selon le contexte : un agent de consultation n'a besoin que d'outils de lecture, tandis qu'un agent de traitement de données aura accès à des outils d'écriture dans un périmètre délimité. Cette organisation facilite aussi la maintenance.
Changer le toolset actif selon la tâche en cours est une pratique qui réduit la surface d'exposition : l'agent ne dispose que des outils nécessaires à la tâche immédiate. Cela demande une discipline de configuration, mais simplifie considérablement l'audit du comportement et la réponse aux incidents.
- Regrouper les outils par domaine ou par niveau de risque
- Un agent de consultation n'a pas besoin d'outils d'écriture
- Changer de toolset selon la tâche réduit la surface d'exposition
Vérification continue et maintenance des outils
Les outils ne sont pas des composants statiques : les APIs évoluent, les chemins de fichiers changent, les credentials expirent. Une vérification régulière avec `hermes mcp test` et `hermes doctor` permet de détecter les outils cassés avant qu'ils ne provoquent des erreurs en production. Cette maintenance préventive est souvent négligée mais critique pour la fiabilité à long terme.
Lorsqu'un outil change de comportement suite à une mise à jour externe, l'agent peut prendre des décisions basées sur des résultats incorrects sans que cela soit immédiatement visible. Documenter les dépendances de chaque outil et planifier des tests de non-régression fait partie d'une gestion sérieuse d'un agent en production.
- `hermes doctor` détecte les outils mal configurés ou inaccessibles
- Les credentials et endpoints doivent être vérifiés régulièrement
- Documenter les dépendances externes de chaque outil
Outils et confidentialité des données
Chaque outil qui accède à des données réelles introduit une question de confidentialité : ces données vont-elles transiter dans le contexte du modèle ? Si le modèle est hébergé à distance, les résultats des outils — potentiellement sensibles — lui sont transmis. Il est important de savoir, pour chaque outil, quelles données il remonte et si ces données peuvent être traitées par le modèle configuré.
Pour les données sensibles, plusieurs stratégies existent : anonymiser les résultats avant injection dans le contexte, utiliser un modèle local via `hermes gateway setup`, ou restreindre les outils d'accès aux données sensibles à des agents fonctionnant en environnement isolé. L'autonomie accordée à l'agent doit toujours tenir compte du niveau de sensibilité des données qu'il manipule.
- Les résultats d'outils transitent dans le contexte du modèle
- Un modèle distant reçoit les données remontées par les outils
- `hermes gateway setup` permet de configurer un modèle local
- Anonymiser les données sensibles avant injection dans le contexte
Sources et méthode
Cette page est une synthèse éditoriale indépendante. Les capacités et commandes doivent être vérifiées dans les sources officielles avant une utilisation en production.