Skip to content

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.yaml via agent.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 :

---
name: nom-du-skill
description: "Description concise de ce que fait le skill"
---

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

  1. Aller sur BotFather sur Telegram.
  2. Commande /newbot → nommer le bot (ex: programmer).
  3. Récupérer le token du bot.
  4. Obtenir son user ID Telegram via @userinfobot.
  5. Dans Hermes :
    hermes gateway setup
    # Suivre les instructions pour Telegram → coller le token + user ID
    

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