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 APISOUL.md— l'identité et la personnalité de l'agentskills/— les compétences installéesmemories/— la mémoire longue duréesessions/— l'historique de conversationcron/— les tâches planifiéeslogs/— 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
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é)
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
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
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 :
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
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
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
Définir un profile par défaut
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.