Écosystème d'outils de Hermes Agent et intégration MCP

Toutes les capacités de Hermes passent par desoutilsexposés à l'Agent.

Outils organisés enensembles d'outils. Les ensembles d'outils sont ensuite combinés enconfiguration de plateforme. Cette structure à trois couches détermine ce que l'Agent peut faire dans différents scénarios :

工具(Tool)
  └── 工具集(Toolset)         # 相关工具的逻辑分组
        └── 平台配置            # 哪个平台加载哪些工具集
              └── 自定义工具集   # 你自己定义的组合

Commandes de gestion de la boîte à outils

# 打开 curses TUI,按平台开/关工具集
hermes tools

# 命令行列出所有工具和状态
hermes tools list

# 按名称启用或禁用工具集
hermes tools enable NAME
hermes tools disable NAME

Version de bureau, dans le menu des compétences et des outils à gauche :

Désactivez un ensemble d'outils, et ses outilsdisparaissent complètementdu prompt système, pas seulement désactivés—cela économise directement des tokens et empêche l'Agent d'utiliser à mauvais escient des outils qu'il ne devrait pas utiliser.


Aperçu des boîtes à outils intégrées

Hermes fournit plus de 70 outils intégrés, répartis en 28 ensembles d’outils.

Ce qui suit présente les ensembles d’outils les plus couramment utilisés par catégorie.

Fichiers et système

ensemble d’outilsOutils de baseObjectif principal
fichierread_file、write_file、list_dirLecture/écriture de fichiers, opérations sur les répertoires
terminalrun_command、run_scriptExécution de commandes shell
codeexecute_codeExécution de code en bac à sable (Python/JS/Bash)
computerscreenshot、click、typeAutomatisation de l’interface graphique du bureau

Réseau et contenu

ensemble d’outilsOutils de baseObjectif principal
webweb_search、web_extractRecherche web et extraction de contenu
browsernavigate、click、fill_formAutomatisation complète du navigateur
visionanalyze_image、describe_imageAnalyse et description d’images
audiotranscribe、ttsReconnaissance vocale et synthèse vocale

Capacités de l’agent

ensemble d’outilsOutils de baseObjectif principal
memorymemory、session_searchGestion de la mémoire et récupération inter-sessions
skillsskills_list、skill_view、skill_manageGestion des compétences
Délégationspawn_agent、spawn_parallelDélégation de sous-agents et parallélisme
Kanbantask_create、task_updateTableau de bord multi-agents (nécessite une activation explicite)

Création de médias

L'ensemble d'outils suivant nécessite Nous Portal ou une clé API correspondante :

ensemble d’outilsFonctionnalitésDescription
image_genGénération d'images à partir de textePrend en charge 9 modèles, y compris FLUX, GPT-Image
ttsSynthèse vocale10 fournisseurs TTS, dont Piper local

Boîtes à outils personnalisées

Vous pouvez combiner des ensembles d'outils existants en ensembles d'outils spécifiques au projet dans le fichier de configuration :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Ensemble d'outils personnalisé : combinez des ensembles d'outils existants dans une configuration spécifique au projet
custom_toolsets
:
  data-science
:
   - file
    - terminal
    - code
    - web

Ensuite, spécifiez au démarrage :

Exemple

# Utiliser un ensemble d'outils personnalisé au démarrage
hermes --toolsets data-science

Six backends d'exécution de terminal

L'ensemble d'outils de terminal prend en charge six backends d'exécution, déterminant où s'exécutent les commandes Shell de l'AgentOù exécuter, correspondant à différents niveaux d'isolation et à un « rayon d'impact ».

BackendEmplacement d'exécution des commandesNiveau d'isolationScénarios typiques
local (par défaut)Machine locale, autorisations de l'utilisateur actuelAucuneDéveloppement personnel, usage quotidien
dockerDans un conteneur DockerIsolation complèteDéploiement en production, bac à sable sécurisé
sshServeur distantIsolation de la frontière réseauDéveloppement à distance, machines hautes performances
modalBac à sable cloud Modal (VM)Entièrement (cloud)Calcul temporaire, tâches d’évaluation
daytonaEspaces de travail hébergés par DaytonaEntièrement (conteneur cloud)Environnement de développement cloud géré
singularityConteneur SingularityIsolation des espaces de nomsClusters HPC, machines partagées

Changer de backend

Exemple

# Passer au backend Docker (recommandé pour l’environnement de production)
hermes config set terminal.backend docker

# Passer au backend SSH
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@your-server.com

Exemple de configuration complète du backend Docker :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Configuration du backend Docker
terminal
:
  backend
: docker
  docker_image
: "nikolaik/python-nodejs:python3.11-nodejs20"
  container_persistent
: true    # true = montage bind, false = tmpfs temporaire

Principe de sécurité : le backend local donne à l'Agent les mêmes permissions sur le système de fichiers que les vôtres—convient aux machines personnelles, pas aux services de production. Le backend docker est la méthode d'isolation la plus simple et la plus efficace.

Approbation des commandes dangereuses

Par défaut, Hermes demandera une confirmation avant d'exécuter des commandes potentiellement destructrices :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Configuration du mode d'approbation
approvals
:
  mode
: manual        # manual (par défaut) | smart | off
  timeout
: 60         # Secondes d'attente pour l'approbation
  cron_mode
: deny     # Comportement lorsqu'une tâche planifiée rencontre des commandes dangereuses : deny | approve

Contourner temporairement l'approbation dans une session (à utiliser avec prudence) :

Exemple

# Activer le mode YOLO, approuver automatiquement toutes les commandes dans cette session
/yolo

# Appuyer à nouveau sur Entrée pour désactiver
/yolo

MCP : connexion de l'écosystème d'outils externes

MCP (Model Context Protocol) permet à Hermes de se connecter à des serveurs d'outils externes sans modifier le code principal—GitHub, bases de données, systèmes de fichiers, piles de navigateurs, API internes, etc.

L'installation standard inclut la prise en charge de MCPAucune étape supplémentaire n'est requise.

Deux types de serveurs MCP

Serveur stdio local: s'exécute localement en tant que sous-processus, communiquant via l'entrée/sortie standard :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Configuration du serveur MCP stdio
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."

  filesystem
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

  git
:
    command
: "uvx"
    args
: ["mcp-server-git", "--repository", "/home/user/project"]

Scénarios applicables : les outils sont installés localement et un accès à faible latence aux ressources locales est nécessaire.

Serveur HTTP distant: se connecter directement à un point de terminaison MCP distant :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Configuration du serveur HTTP MCP
mcp_servers
:
 # Authentification par jeton Bearer statique
  internal_api
:
    url
: "https://mcp.internal.example.com/mcp"
    headers
:
      Authorization
: "Bearer ${MY_TOKEN}"

  # Authentification OAuth 2.1 (Linear, Sentry, Figma, Stripe, etc.)
  linear
:
    url
: "https://mcp.linear.app/mcp"
    auth
: oauth

  # Fournisseurs qui nécessitent des clients OAuth préenregistrés
  googledrive
:
    url
: "https://drivemcp.googleapis.com/mcp/v1"
    auth
: oauth
    oauth
:
      client_id
: "<your-oauth-client-id>"
      client_secret
: "<your-oauth-client-secret>"

Scénarios applicables : les outils sont hébergés à distance, ou une interface MCP existe au sein de l'organisation.

Répertoire MCP sélectionné par Nous

Hermes dispose d'un annuaire MCP intégré, sélectionné par Nous, avec installation en un clic :

Exemple

# Ouvrir le sélecteur interactif (par défaut)
hermes mcp

# Liste en texte brut
hermes mcp catalog

# Installer les entrées de l'annuaire par nom
hermes mcp install n8n

Le sélecteur affichera l'état actuel de chaque entrée :

n8n          available              管理和检查 n8n 工作流
linear       enabled                Linear 问题/项目管理(远程 OAuth)
github       installed (disabled)   GitHub 仓库 + PR 工具

L'installation effectue automatiquement trois étapes :

  1. Inviter à configurer une clé API ou guider la connexion OAuth
  2. Détecter la liste des outils exposés par le serveur
  3. Affiche une liste de sélection d’outils, vous permettant de décider quels outils activer

Filtrage des outils : n’exposez que ce dont vous avez besoin

Chaque serveur MCP prend en charge un filtrage granulaire des outils, réduisant la surface d’attaque disponible pour l’Agent :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Configuration du filtrage des outils MCP
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."
    tools
:
      include
: [list_issues, create_issue, update_issue, search_code]
      # Les outils non listés ne seront pas enregistrés
    resources
: false
    prompts
: false

  stripe
:
    url
: "https://mcp.stripe.com"
    headers
:
      Authorization
: "Bearer ${STRIPE_KEY}"
    tools
:
      exclude
: [delete_customer, refund_payment]  # Exclure les opérations à haut risque
FieldsComportement
tools.includeN’enregistrer que les outils de la liste, exclure tous les autres
tools.excludeExclure les outils de la liste, enregistrer tous les autres
Définir les deuxinclure la priorité
resources: falseNe pas exposer les outils d’accès aux ressources MCP
prompts: falseNe pas exposer les outils de prompt MCP

FilterRulesUsage MCP originalTool name称(containconnectCharacter/Point),n’est pas Hermes RegisterafterBottom划Lineversion.

Chaque serveur MCP génère un ensemble d’outils indépendant

Après avoir configuré le serveur MCP GitHub, Hermes le créera automatiquement à l’exécutionmcp-githubEnsemble d’outils.

Vous pouvez le gérer comme un ensemble d’outils intégré :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Référencer l'ensemble d'outils MCP dans la configuration de la plateforme
platform_toolsets
:
  cli
:
   - hermes-cli
    - mcp-github
    - mcp-linear

Recharger la configuration MCP

Après avoir modifié config.yaml, il n'est pas nécessaire de redémarrer tout l'Agent :

Exemple

# Recharger le serveur MCP en session (délai d'expiration de 30 secondes)
/reload-mcp

# Ou depuis la ligne de commande
hermes mcp reload

Si l'authentification OAuth est requise, le délai d'expiration de 30 secondes ne suffit pas. Il est recommandé d'ajouter d'abord la configuration du serveur, puis d'exécuter hermes mcp login <server> dans un nouveau terminal pour terminer l'autorisation (attente jusqu'à 5 minutes).


Intégration de l'éditeur (ACP)

ACP (Agent Communication Protocol) permet à Hermes de s'exécuter nativement dans l'éditeur—le chat, l'activité des outils, les diffs de fichiers et les commandes de terminal sont tous rendus directement dans l'éditeur.

Éditeurs pris en charge : VS Code, Zed et toute la série JetBrains.

L'installation standard inclut déjà la prise en charge d'ACP :

Exemple

# Démarrer le mode Agent pour les connexions de l'éditeur
hermes acp

Si les dépendances complètes n'ont pas été incluses lors de l'installation :

Exemple

# Installer les dépendances ACP
cd ~/.hermes/hermes-agent
uv pip install -e ".[acp]"
ÉditeurMéthode d'intégrationFonctionnalités
VS CodePlugin d'extensionComplétion de code en ligne, revue de code, suggestions de refactorisation
ZedMode d'agent natifCommunication stdio/JSON-RPC, sensible au contexte
JetBrainsPluginGénération de code, génération de tests, commentaires de documentation

L'intégration de l'éditeur communique avec Hermes Agent en utilisant le protocole stdio/JSON-RPC, ne dépend pas d'une connexion réseau et convient à une utilisation hors ligne.


Mode vocal

Le mode vocal prend en charge une interaction vocale complète sur l'interface CLI et les plateformes de messagerie :

  • Entrée d'enregistrement du microphone (reconnaissance vocale locale faster-whisper, gratuite)
  • Réponses vocales TTS (10 options de fournisseur disponibles)
  • Conversation en temps réel dans les canaux vocaux Discord

Installer et activer

Exemple

# Installer les dépendances vocales
cd ~/.hermes/hermes-agent
uv pip install -e ".[voice]"

Exemple

# Activer le mode vocal dans le CLI
/voice on
# Appuyez sur Ctrl+B pour démarrer l'enregistrement, relâchez pour envoyer

# Dans la plateforme de messagerie
/voice on     # Activer les réponses TTS
/voice tts    # Activer uniquement la synthèse vocale (sans entrée vocale)
/voice off    # Désactivé

Fournisseurs TTS

fournisseurFonctionnalitésGratuit ou non
Edge TTSVoix neuronales Microsoft, multilinguesGratuit
PiperEntièrement local, faible latenceGratuit
OpenAI TTSHaute qualité, voix multiplesPaiement à l'usage
ElevenLabsQualité audio haut de gamme, clonage vocalPaiement à l'usage
MiniMaxOptimisation pour le chinoisPaiement à l'usage
Mistral VoxtralmultilinguePaiement à l'usage

Passerelle d'outils (abonnement Nous Portal)

Abonnez-vous via Nous Portal pour obtenir des implémentations cloud de quatre types d'outils en un clic, sans avoir à demander des clés API séparément :

OutilsDescription
Recherche WebRecherche + extraction de contenu (ensemble d'outils web)
Génération d'images9 modèles : FLUX, GPT-Image, Ideogram, etc.
TTSSynthèse vocale
Navigateur cloudAutomatisation complète du navigateur (aucun Playwright local nécessaire)

Exemple

# Connexion OAuth, configure automatiquement tous les outils ci-dessus
hermes setup --portal

Sécurité des outils : isolement des variables d'environnement MCP

Le sous-processus stdio MCP reçoit unEnvironnement filtréEmpêchant toute fuite accidentelle d'informations d'identification.

Par défaut, seules les variables suivantes sont transmises au processus MCP :

PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIR(以及所有 XDG_* 变量)

Toutes les autres variables d'environnement (clé API, jeton, mot de passe) sont bloquées.

Seules les variables explicitement déclarées dans le bloc env: de la configuration du serveur MCP seront transmises :

Exemple

# Chemin du fichier : ~/.hermes/config.yaml
# Seules les variables explicitement déclarées sont transmises au sous-processus MCP.
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."   # Seule celle-ci est transmise

De plus, les messages d'erreur des outils MCP sont automatiquement nettoyés avant d'être renvoyés au LLM, les informations sensibles étant remplacées par[REDACTED]。


Référence rapide des commandes courantes

Exemple

# ─── Gestion des outils ────────────────────────────────────────────────
hermes tools                          # Gestion interactive des ensembles d'outils (TUI)
hermes tools list                     # Lister tous les outils et leur état
hermes tools enable NAME              # Activer l’ensemble d’outils
hermes tools disable NAME             # Désactiver l’ensemble d’outils

# ─── Gestion MCP ────────────────────────────────────────────────
hermes mcp                            # Sélecteur interactif de répertoire MCP
hermes mcp catalog                    # Liste du répertoire en texte brut
hermes mcp install <name>             # Installer les entrées du répertoire
hermes mcp add NAME --command CMD     # Ajouter manuellement un serveur MCP
hermes mcp remove NAME                # Supprimer le serveur MCP
hermes mcp list                       # Lister les serveurs configurés
hermes mcp test NAME                  # Tester la connexion
hermes mcp login <server>             # Terminer l’autorisation OAuth
hermes mcp configure <server>         # Reconfigurer la sélection des outils
hermes mcp reload                     # Recharger la configuration MCP

# ─── Backend du terminal ────────────────────────────────────────────────
hermes config set terminal.backend docker
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@host

# ─── ACP EditorSetCheng ──────────────────────────────────────────
hermes acp

# ─── Abonnement au portail ─────────────────────────────────────────────
hermes setup --portal
autres extensions