Hermes Agent — Guide Complet de la Masterclass
Overview
Hermes Agent est un framework open-source d'agent IA développé par Nous Research qui a atteint 160 000 ⭐ GitHub en deux mois, l'un des projets open-source à la croissance la plus rapide. Contrairement aux agents traditionnels qui oublient tout à la fermeture d'une session, Hermes Agent mémorise et s'améliore avec l'usage grâce à un système de mémoire persistante à trois niveaux et des skills auto-évolutifs.
Cette base de connaissances couvre l'architecture complète, le système d'identité, la mémoire, les skills, les automatismes (curator, GAPA), l'installation, et des cas d'usage concrets avec trois agents fonctionnels.
[!NOTE] Ce guide est basé sur la masterclass vidéo de la chaîne Daily Dose of Data Science (48 min). Les commandes listées sont des exemples ; consultez la documentation officielle pour les dernières mises à jour.
Architecture du Système
Agent Central
Tout repose sur une classe AI Agent dans run_agent.py. Le système fonctionne sur une boucle ReAct standard :
Think → Act → Observe
Caractéristiques :
- Entry points multiples — CLI, Telegram, batch runner, IDE. Tous utilisent la même classe agent.
- Multi-provider — compatible avec Claude, GPT, Gemini, Ollama (modèles locaux) via une couche de traduction d'API.
- Hard cap de 90 turns par tâche — empêche les boucles infinies qui brûleraient les crédits API.
- Sous-agents partagent le même budget de 90 turns.
Entrées (CLI, Telegram, IDE...)
│
▼
┌───────────────────────┐
│ AI Agent │ ← 90 turns max
│ (run_agent.py) │
└───────┬───────────────┘
│
▼
Couche de traduction API
│
▼
Provider (Claude, GPT, Gemini, Ollama...)
[!TIP] Le hard cap de 90 turns est configurable dans
config.yamlviaagent.max_turns.
Système d'Identité — soul.md
Au-dessus de la mémoire ET des skills se trouve soul.md, le fichier qui définit qui est l'agent.
Hiérarchie du System Prompt
| Slot | Contenu | Rôle |
|---|---|---|
| 1 | soul.md | Identité (fixe) — qui est l'agent |
| 2 | Memory | Ce que l'agent sait |
| 3 | Skills | Comment l'agent fait les choses |
| 4 | Conversation | Historique de la session |
Principes
- soul.md s'écrit une fois, se peaufine avec le temps, reste cohérent entre projets et sessions.
- Sans soul.md, tous les agents se ressemblent — c'est la personnalité de l'agent.
Emplacement : ~/.hermes/soul.md (agent principal) ou ~/.hermes/profiles/<nom>/soul.md (profil spécifique).
[!WARNING] soul.md occupe le slot 1 du system prompt. Une modification en cours de session casse le prompt caching — préférez une nouvelle session après changement.
Mémoire à 3 Niveaux
Niveau 1 — Contexte Permanent
Deux fichiers Markdown chargés à chaque turn, sans coût de recherche :
| Fichier | Capacité | Contenu |
|---|---|---|
memory.md |
2 200 chars max | Notes de l'agent : environnement, projets, leçons apprises |
user.md |
1 375 chars max | Profil utilisateur : nom, préférences, style de communication |
[!NOTE] Snapshot figé au début de la session — les modifications en cours de session sont persistées mais prises en compte au prochain démarrage.
Niveau 2 — Recherche SQLite
- Toutes les conversations stockées dans une base SQLite avec Full-Text Search (FTS5).
- Recherche à la demande (coût : 1 appel LLM pour résumer le résultat).
- Capacité illimitée.
# En session Hermes : recherche dans l'historique
session_search(query="installation hermes", limit=3)
Niveau 3 — Providers Externes
8 providers plug-and-play pour la persistance profonde :
- Knowledge graphs
- Temporal knowledge graphs
- Honcho, Mem0, et autres
Principe : Les faits critiques → N1. Le reste → N2 (recherchable). Persistance avancée → N3.
Skills — Système Procédural
Structure d'un Skill
Les skills sont des fichiers Markwith YAML frontmatter :
Emplacement : ~/.hermes/skills/<catégorie>/<nom-du-skill>/SKILL.md
Progressive Skill Disclosure
Système en 3 niveaux pour économiser les tokens :
| Niveau | Ce qui est chargé | Quand |
|---|---|---|
| 0 | Frontmatter (nom + description) de tous les skills | À chaque début de tâche |
| 1 | Corps complet du skill pertinent identifié | Quand le skill correspond à la tâche |
| 2 | Scripts, templates et références associés | Quand l'exécution le nécessite |
[!TIP] Évite de brûler des tokens en chargeant 100 skills inutiles. Seul le skill pertinent est développé.
Self-Evolving Skills
Mécanisme clé qui distingue Hermes des autres agents.
Boucle d'auto-amélioration
Tâche complexe reçue
│
▼
Essais / erreurs (≥ 5 tool calls)
│
▼
Déclenchement automatique : skill_manage()
│
▼
Création d'une procédure reproductible
│
▼
Nouveau skill sauvegardé dans ~/.hermes/skills/
│
▼
Prochaine tâche similaire → skill chargé → exécution directe
Déclencheur
Quand une tâche nécessite ≥ 5 tool calls avec itérations, l'agent appelle skill_manage() pour créer un skill réutilisable.
[!WARNING] Après 6 mois d'utilisation, des centaines de skills peuvent s'accumuler, dont des quasi-doublons. Le Curator résout ce problème.
Le Curator — Nettoyage Automatique des Skills
Filtre et consolide les skills tous les ~4 jours.
Pipeline en 3 Phases
Phase 1 : Filtrage Rapide
Critères mécaniques sans appel LLM (date de création, nombre d'utilisations).
Phase 2 : Analyse LLM
- Évaluation de l'importance du skill
- Détection des near-duplicates
- Décision : garder, mettre à jour, ou archiver
Phase 3 : Consolidation
Fusion des skills similaires en un seul.
# Commandes curator
hermes curator status # État actuel
hermes curator run # Exécuter manuellement
hermes curator pin <skill> # Protéger un skill (jamais touché)
hermes curator unpin <skill> # Retirer la protection
Sécurité
- Les pre-built skills (bundled + hub-installed) sont protégées par défaut.
- Commande
hermes curator pin <skill-name>pour protéger un skill personnalisé.
[!NOTE] Le curator ne supprime jamais de skills. L'action maximale est l'archivage. Les skills épinglés sont exemptés de toute transition automatique et de toute revue LLM.
GAPA — General Agentic Prompt Adaptation
Technique d'optimisation de prompts acceptée à ICLR 2026.
Caractéristiques
- Projet séparé de Nous Research (même équipe qu'Hermes).
- Optimisation de prompts sans modifier les poids du modèle.
- Fonctionne sur CPU — aucun GPU nécessaire.
- Comparé à GRPO (RL) : souvent plus efficace pour les pipelines multi-step.
# GAPA s'utilise comme un optimiseur de prompts système
# Documentation complète : articles liés en description de la vidéo
[!TIP] Article complémentaire : "How to beat GRPO without touching any model weights" — disponible dans les ressources de la chaîne.
Installation et Configuration
Étapes Rapides
# 1. Installer Hermes
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# 2. Lancer le setup interactif
hermes setup
# 3. Configurer le provider et le modèle
hermes model
# 4. Vérifier l'installation
hermes doctor
Connexion Telegram
- Aller sur BotFather sur Telegram.
- Commande
/newbot→ nommer le bot (ex:programmer). - Récupérer le token du bot.
- Obtenir son user ID Telegram via @userinfobot.
- Dans Hermes :
Création de Profils
# Créer un profil isolé
hermes profile create designer
# Setup du profil
hermes designer setup
# Lister les profils
hermes profile list
Modèle Recommandé (Designer)
KimiK 2.6 via OpenRouter — performances proches d'Opus à un coût réduit.
# Configuration du modèle pour un profil
hermes designer model
# → Sélectionner OpenRouter → clé API → KimiK 2.6
Agents Prêts à l'Emploi
Neo — Agent Programmeur
Délègue des projets complets à Claude Code.
Workflow :
1. L'utilisateur soumet une demande (ex: "Construis-moi une landing page").
2. Neo charge le skill Claude Code, fait des recherches web.
3. Génère le projet complet (index.html, assets, etc.).
4. Configuration via soul.md : mode one-shot task, plan préalable avec validation.
# soul.md du profil Neo
name: Neo
role: Programmer
tool: Claude Code
workflow:
- Creer un plan et valider avec l'utilisateur
- Executer avec Claude Code en mode one-shot
- Retourner le resultat
Pixel — Agent Designer
Génère des designs cohérents avec une charte graphique.
Création du skill designer :
1. Envoyer 4 images d'exemple (bannières existantes).
2. L'agent analyse : palette, typographie, composition, style.
3. Crée automatiquement un skill handdrawn-banner.
Structure générée :
~/.hermes/profiles/designer/skills/handdrawn-banner/
├── SKILL.md # Instructions de design
├── references/ # Système de design
├── assets/ # Images d'exemple
└── scripts/ # Appel API de génération
Deep Researcher — Veille Automatique
Scanne GitHub, papiers de recherche et actualités AI/ML.
Fonctionnement : - Cron job configuré pour s'exécuter périodiquement. - Résultats envoyés automatiquement sur Telegram.
# Exemple de cron job pour le deep researcher
hermes cron create "0 8 * * *" \
--name deep-researcher \
--prompt "Scan the latest AI/ML papers, GitHub repos and news. Summarize top 5 findings." \
--deliver telegram
Skills Hub et Bundles
Hub Officiel
- 89 built-in skills incluses avec Hermes.
- Catégories : Apple ecosystem, créatif, DevOps, gaming, data science, etc.
# Parcourir le hub
hermes skills browse
# Rechercher un skill
hermes skills search "technical-writer"
# Installer un skill
hermes skills install <id>
# Lister les skills installés
hermes skills list
Skill Bundles
Regrouper plusieurs skills en un workflow :
# Créer un bundle
hermes skills bundle create backend-feature \
--skills "code-review,tdd,github-pr-workflow" \
--instruction "Execute code-review first, then TDD, finally create PR"
Skills Privées (GitHub)
# Ajouter un dépôt GitHub comme source de skills
hermes skills tap add <github-user>/<skills-repo>
# Installer depuis ce dépôt
hermes skills install <nom-du-skill>
Anatomie du Dossier .hermes
~/.hermes/
├── config.yaml # Configuration principale
├── .env # Clés API et secrets
├── soul.md # Identité de l'agent principal
├── memory/
│ ├── memory.md # Notes persistantes (2 200 chars max)
│ └── user.md # Profil utilisateur (1 375 chars max)
├── skills/ # Skills installés
│ └── <catégorie>/<nom>/
├── profiles/ # Profils isolés
│ └── designer/
│ ├── config.yaml
│ ├── soul.md
│ └── skills/
│ └── handdrawn-banner/
│ ├── SKILL.md
│ ├── references/
│ ├── assets/
│ └── scripts/
├── cron/ # Jobs automatisés
├── plugins/ # Extensions
├── sessions/ # Routing gateway + logs
├── state.db # Base SQLite des sessions
└── logs/ # Logs observabilité
[!NOTE] Vous n'éditerez pas manuellement la plupart de ces fichiers, mais connaître cette structure vous donne le contrôle sur l'identité, la mémoire, les skills, l'automatisation et l'état du système.
Ressources
- Documentation officielle : hermes-agent.nousresearch.com/docs
- Dépôt GitHub : github.com/NousResearch/hermes-agent
- Commande d'aide :
hermes --helpen terminal - Commandes slash :
/helpdans une session Hermes CLI