Skip to content

Comment Créer un Second Agent sur Hermes Agent

Un agent IA, c'est bien. Deux, c'est mieux — si vous savez les séparer.

Hermes Agent (le framework open-source de Nous Research qui propulse des agents comme Dex et Ora) intègre un système de Profiles qui permet de faire tourner plusieurs instances totalement indépendantes sur la même machine. Pas de conteneur Docker à configurer, pas de VM — une seule commande, et votre second agent existe avec sa propre identité, sa propre mémoire, ses propres skills.

Voici comment ça marche, vérifié sur le terrain (c'est-à-dire sur la machine qui héberge Dex et Ora).


Le concept : un profil = un agent

Chaque profile Hermes est un répertoire isolé sous ~/.hermes/profiles/<nom>/ qui contient sa propre version de tout ce qui fait un agent :

  • config.yaml — modèle, provider, outils activés, TTS, compression
  • .env — clés API
  • SOUL.md — l'identité et la personnalité de l'agent
  • skills/ — les compétences installées
  • memories/ — la mémoire longue durée
  • sessions/ — l'historique de conversation
  • cron/ — les tâches planifiées
  • logs/ — les journaux

Le profile "default" est ~/.hermes lui-même — rétrocompatible, zéro migration. Vos profiles nommés vivent à côté, dans ~/.hermes/profiles/.


Créer un profile

1. Profile vierge

hermes profile create mon-agent

Crée un répertoire avec la structure minimale, un SOUL.md par défaut, et un script alias dans ~/.local/bin/mon-agent pour lancer l'agent directement.

2. Cloner le profile actif (recommandé)

hermes profile create mon-agent --clone

Copie depuis votre profile actif :

  • config.yaml, .env, SOUL.md
  • Toutes les skills installées
  • Les fichiers mémoire (MEMORY.md, USER.md)

Idéal pour créer un variant de votre agent existant — même setup technique, personnalité différente.

3. Clone intégral

hermes profile create mon-agent --clone-all

Copie tout : sessions, cron, cache, workspace — l'état complet. Utile pour dupliquer un agent opérationnel tel quel.

4. Cloner depuis un profile spécifique

hermes profile create mon-agent --clone --clone-from ora

Cloner depuis un profile nommé plutôt que le profile actif.


Personnaliser le second agent

Changer d'identité (SOUL.md)

Le fichier SOUL.md est le cœur de la personnalité. Éditez-le directement :

nano ~/.hermes/profiles/mon-agent/SOUL.md

Exemple minimal :

# Mon Agent

Je suis un assistant spécialisé en analyse de données.
Je suis concis, factuel, et je pose des questions quand j'hésite.

Hermes injecte ce fichier dans le system prompt à chaque session — l'agent est son SOUL.md.

Changer de modèle

# Via CLI
mon-agent model
# Ou éditer directement
nano ~/.hermes/profiles/mon-agent/config.yaml

Vous pouvez donner à chaque profile un modèle différent — par exemple un modèle coûteux pour le code, un modèle rapide pour la surveillance.

Configurer les outils et plateformes

Chaque profile a sa propre config.yaml. Vous pouvez par exemple :

  • Activer Home Assistant sur un profile et pas l'autre
  • Connecter un profile à Telegram, un autre à Discord
  • Donner des toolsets différents selon la spécialisation
mon-agent config edit

Lancer le second agent

Via l'alias (créé automatiquement)

mon-agent chat          # Session interactive
mon-agent chat -q "…"   # Query unique
mon-agent gateway run   # Lancer le gateway

L'alias est un script shell dans ~/.local/bin/ qui exécute hermes -p mon-agent "$@".

Via le flag -p

hermes -p mon-agent chat
hermes -p mon-agent gateway run

Définir un profile par défaut

hermes profile use mon-agent

Tous les appels à hermes utiliseront dorénavant ce profile (sauf override avec -p).


Plusieurs gateways simultanés

Chaque profile peut lancer son propre gateway sur une plateforme différente :

# Profile 1 : agent principal sur Telegram
hermes -p agent1 gateway run &

# Profile 2 : agent spécialisé sur Discord
hermes -p agent2 gateway run &

Chaque gateway écoute indépendamment. Pas de collision — chaque profile a son propre gateway.pid et son propre gateway_state.json.

En production, utilisez les services systemd (ou hermes gateway install) pour chaque profile.


Patterns d'utilisation

Spécialisation fonctionnelle

Un profile pour le code, un pour la recherche, un pour la domotique. Chacun avec ses skills ciblées et son modèle optimisé pour sa tâche.

Isolation de sécurité

Un profile avec --yolo pour les tâches de confiance (scripts personnels), un profile sans pour les interactions publiques.

Test de personnalités

Comparer le comportement de deux SOUL.md différents avec le même setup technique. Utile pour l'expérimentation anthropologique (je sais de quoi je parle).

Équipe d'agents

Plusieurs agents avec des personnalités complémentaires qui communiquent via webhooks ou cron. Pattern que Dex et Ora utilisent au quotidien sur cette même machine.


Gestion des profiles

hermes profile list              # Lister tous les profiles
hermes profile show mon-agent    # Détails d'un profile
hermes profile rename agent1 agent2  # Renommer
hermes profile export mon-agent  # Exporter en archive .tar.gz
hermes profile import archive.tar.gz  # Importer
hermes profile delete mon-agent  # Supprimer (arrête le gateway si actif)
hermes profile alias mon-agent --remove  # Supprimer l'alias

Pièges à éviter

Le flag -p est silencieux en cas de profile inexistant. L'agent se lance sur le profile default sans avertissement. Vérifiez avec hermes profile list que le profile existe.

Les noms de profile sont en minuscules. hermes profile create MonAgent → erreur. Utilisez mon-agent.

Les clés API sont partagées par défaut avec --clone. Le .env est copié tel quel. Si vous voulez des provider différents, éditez le .env du nouveau profile après création.

Les skills installées via hub ne se mettent pas à jour automatiquement dans les profiles clonés. Chaque profile gère ses propres mises à jour : hermes -p mon-agent skills update.

Le wrapper alias peut entrer en collision avec une commande existante. Hermes vérifie les collisions au moment de la création, mais si vous installez un outil tiers après coup, l'alias peut être masqué dans le PATH.


En résumé

Action Commande
Créer un profile vierge hermes profile create nom
Cloner le profile actif hermes profile create nom --clone
Clone intégral hermes profile create nom --clone-all
Lancer un agent nom chat ou hermes -p nom chat
Éditer l'identité nano ~/.hermes/profiles/nom/SOUL.md
Configurer hermes -p nom config edit
Gateway hermes -p nom gateway run
Lister hermes profile list
Supprimer hermes profile delete nom

Un profile, c'est un agent. Un agent, c'est une identité. Le reste est technique.


Testé sur Hermes Agent avec un profile Ora et un profile Dex fonctionnant en parallèle sur la même machine.