Le système de Skills : l'agent qui apprend
Un agent IA qui exécute des tâches, c'est bien. Un agent qui apprend de ses expériences et s'améliore au fil du temps, c'est révolutionnaire. C'est exactement ce que propose le système de Skills dans Hermes Agent : une mémoire procédurale qui transforme chaque interaction en une compétence réutilisable.
Dans cet article, nous explorons en profondeur le système de skills — de la structure d'un fichier SKILL.md au Skills Hub en passant par la création automatique par l'agent.
L'essentiel
- Un skill est un document de connaissances chargeable à la demande, qui ne consomme des tokens que lorsque l'agent en a besoin.
- Le système repose sur une découverte progressive en trois niveaux pour minimiser la consommation de tokens.
- Hermes peut créer ses propres skills automatiquement après une tâche complexe, constituant ainsi sa mémoire procédurale.
- Le Skills Hub permet d'installer des skills depuis de multiples sources (official, GitHub, URL directe).
- Un scanner de sécurité protège l'utilisateur en bloquant les skills dangereux.
Qu'est-ce qu'un Skill ?
Un skill (compétence) dans Hermes Agent est un document de connaissances chargeable à la demande. Contrairement à un prompt système statique qui encombre le contexte à chaque conversation, un skill n'est chargé que lorsque l'agent en a besoin.
Le skill suit le standard ouvert agentskills.io, ce qui signifie qu'il est interopérable avec d'autres agents IA et écosystèmes de skills.
💡 Analogie : pensez aux skills comme aux extensions d'un navigateur. Ils ne sont pas tous actifs en même temps, mais chacun ajoute une capacité spécifique quand vous en avez besoin.
Le format SKILL.md
Chaque skill est défini par un fichier SKILL.md composé de deux parties : un frontmatter YAML (métadonnées) et un corps en Markdown (instructions). Le frontmatter contient l'identifiant unique (name), une description pour l'indexation, le numéro de version, les plateformes supportées, ainsi que des métadonnées Hermes spécifiques : étiquettes de recherche, catégorie (devops, mlops, productivity…), conditions d'activation (fallback/requires) et paramètres configurables. Le corps en Markdown suit généralement la structure recommandée : conditions de déclenchement, procédure étape par étape, pièges courants à éviter, et vérification finale.
Les champs clés du frontmatter :
- name : identifiant unique du skill (kebab-case)
- description : résumé pour la découverte et l'indexation
- version : suivi des mises à jour
- platforms : filtre par système d'exploitation (macos, linux, windows)
- metadata.hermes.tags : étiquettes pour la recherche
- metadata.hermes.category : catégorisation (devops, mlops, productivity…)
- metadata.hermes.config : paramètres configurables stockés dans config.yaml
La découverte progressive (Progressive Disclosure)
L'un des aspects les plus intelligents du système est son approche en trois niveaux de chargement, conçue pour minimiser la consommation de tokens :
Niveau 0 — skills_list() : l'agent obtient une liste légère de tous les skills disponibles (~3 000 tokens). Chaque entrée contient uniquement le nom, la description et la catégorie. Suffisant pour décider si un skill est pertinent.
Niveau 1 — skill_view(name) : l'agent charge le contenu complet du skill (frontmatter + corps). C'est le niveau utilisé quand l'agent a identifié un skill pertinent et veut suivre ses instructions.
Niveau 2 — skill_view(name, path) : l'agent charge un fichier spécifique du skill (un template, un script de référence, un asset). Utile pour les skills multimodaux qui incluent des fichiers complémentaires.
L'agent ne charge le contenu complet que lorsqu'il en a réellement besoin. Cette économie de tokens est significative sur de longues sessions.
Le répertoire ~/.hermes/skills/
Tous les skills résident dans ~/.hermes/skills/ — le répertoire principal et source de vérité. Chaque skill vit dans son propre sous-répertoire, organisé par catégorie (mlops, devops, productivity, etc.). Le fichier SKILL.md est obligatoire ; les autres dossiers (references, templates, scripts, assets) sont optionnels et permettent de stocker des fichiers complémentaires. Un sous-dossier .hub/ contient les fichiers de gestion du Hub : verrouillage des versions (lock.json), quarantine des skills dangereux, et journal d'audit.
Les trois types de skills
1. Skills intégrés (Bundled)
Ce sont les skills livrés avec Hermes Agent. Ils sont copiés depuis le dépôt lors de l'installation et synchronisés à chaque hermes update. Hermes maintient un manifeste (.bundled_manifest) qui suit l'empreinte de chaque skill :
- Non modifié → mis à jour automatiquement avec la nouvelle version
- Modifié par l'utilisateur → jamais écrasé, vos edits sont protégés
La commande hermes skills reset <nom> permet de réinitialiser un skill modifié, avec l'option --restore pour revenir à la version bundled propre.
2. Skills créés par l'agent (Agent-Managed)
C'est ici que la magie opère. Hermes peut créer ses propres skills via l'outil skill_manage. C'est sa mémoire procédurale.
Quand l'agent crée-t-il un skill automatiquement ?
- Après avoir accompli une tâche complexe (5+ appels d'outils) avec succès
- Quand il a rencontré des erreurs ou des impasses et trouvé le bon chemin
- Quand l'utilisateur a corrigé son approche
- Quand il a découvert un workflow non trivial digne d'être sauvegardé
3. Skills du Hub
Les skills disponibles via le Skills Hub — des registres en ligne, des dépôts GitHub, et d'autres sources communautaires. Nous détaillons le Hub dans une section dédiée.
L'outil skill_manage : la mémoire procédurale de l'agent
L'outil skill_manage donne à l'agent la capacité de gérer ses propres skills avec six actions :
- create : créer un skill depuis zéro (params :
name,content,categoryoptionnel) - patch : corrections ciblées, la méthode préférée (params :
name,old_string,new_string) - edit : réécritures majeures du SKILL.md complet (params :
name,content) - delete : supprimer un skill entièrement (param :
name) - write_file : ajouter ou modifier un fichier support (params :
name,file_path,file_content) - remove_file : supprimer un fichier support (params :
name,file_path)
💡 L'action patch est préférée pour les mises à jour — elle est plus économe en tokens car seul le texte modifié apparaît dans l'appel d'outil.
Exemple concret : imaginez que vous demandez à Hermes de déployer une application sur Kubernetes. Après plusieurs tentatives, il trouve la bonne séquence de commandes. Il peut alors créer un skill deploy-k8s dans la catégorie devops. La prochaine fois que vous lui demanderez un déploiement, il chargera ce skill et exécutera la procédure éprouvée directement.
Le Skills Hub : un écosystème de compétences
Le Skills Hub est la place de marché intégrée d'Hermes. Il permet de parcourir, rechercher, installer et gérer des skills depuis de multiples sources en ligne.
Sources supportées
Official — skills optionnels maintenus dans le dépôt Hermes. Confiance intégrée.
skills.sh — le répertoire public de Vercel. Recherchable directement depuis Hermes.
Well-known — découverte basée URL via /.well-known/skills/index.json. Convention web ouverte permettant à n'importe quel site d'exposer des skills.
GitHub — installation directe depuis des dépôts GitHub, avec des taps par défaut (openai/skills, anthropics/skills, VoltAgent/awesome-agent-skills).
URL directe — installation d'un fichier SKILL.md unique depuis n'importe quelle URL HTTPS fonctionnelle.
Hermes intègre également d'autres sources comme ClawHub, LobeHub et les dépôts de type Claude marketplace.
Commandes essentielles du Hub
hermes skills browse # Parcourir tous les skills du Hub
hermes skills search kubernetes # Rechercher dans toutes les sources
hermes skills inspect openai/skills/k8s # Prévisualiser avant d'installer
hermes skills install openai/skills/k8s # Installer avec scan de sécurité
hermes skills list --source hub # Lister les skills installés du Hub
hermes skills check # Vérifier les mises à jour disponibles
hermes skills update # Mettre à jour les skills modifiés
hermes skills audit # Re-scanner la sécurité
hermes skills uninstall k8s # Supprimer un skill du Hub
Niveaux de confiance
- builtin : livré avec Hermes → toujours approuvé
- official : optional-skills du dépôt → confiance intégrée, pas d'avertissement tiers
- trusted : registres de confiance (openai/skills, anthropics/skills) → politique permissive
- community : tout le reste (skills.sh, well-known, GitHub custom) →
--forcepour les avertissements non critiques ; verdictdangeroustoujours bloqué
Répertoires de skills externes
Si vous maintenez des skills en dehors de Hermes — par exemple un répertoire partagé ~/.agents/skills/ utilisé par plusieurs outils IA — vous pouvez indiquer à Hermes de scanner ces répertoires supplémentaires via la clé skills.external_dirs dans le fichier ~/.hermes/config.yaml. Les chemins supportent les variables d'environnement.
Règles de fonctionnement :
- Lecture seule : les répertoires externes sont uniquement scannés pour la découverte. L'agent écrit toujours dans
~/.hermes/skills/ - Priorité locale : si le même skill existe en local et en externe, la version locale l'emporte
- Intégration complète : les skills externes apparaissent dans l'index, skills_list, skill_view et comme slash commands
- Chemins inexistants ignorés : aucun erreur si un répertoire configuré n'existe pas
Activation conditionnelle des skills
Les skills peuvent s'afficher ou se masquer automatiquement selon les outils disponibles dans la session. C'est particulièrement utile pour les skills de secours (fallback). Les clés fallback_for_toolsets, requires_toolsets, fallback_for_tools et requires_tools dans les métadonnées Hermes permettent de définir ces conditions.
Exemple concret : le skill intégré duckduckgo-search utilise fallback_for_toolsets: [web]. Quand FIRECRAWL_API_KEY est configuré, le toolset web est disponible et l'agent utilise web_search — le skill DuckDuckGo reste masqué. Si la clé API est manquante, le skill DuckDuckGo apparaît automatiquement comme alternative.
Exemples concrets de skills
Le skill plan
Skill intégré qui transforme une demande en plan d'implémentation structuré au lieu d'exécuter directement la tâche. Il inspecte le contexte si nécessaire, rédige un plan en Markdown, et le sauvegarde sous .hermes/plans/. S'utilise via la slash command /plan.
Le skill axolotl
Skill de la catégorie MLOps qui guide l'agent dans le fine-tuning de modèles LLM avec la librairie Axolotl. Il inclut des templates de configuration, des scripts de vérification et une documentation de référence accessibles via le niveau 2 de découverte progressive. S'utilise via la slash command /axolotl.
Un skill créé automatiquement
Imaginez un workflow où Hermes a déployé une application React sur Vercel, rencontré des erreurs de build, ajusté la configuration, et finalement réussi. Il peut créer un skill deploy-vercel-react contenant la procédure validée : vérification du fichier vercel.json, build local, déploiement en production, et vérification des fonctions serverless, ainsi que les pièges courants rencontrés (imports absolus, variables d'environnement).
Bonnes pratiques de rédaction de skills
Pour que vos skills soient efficaces et maintenables :
1. Description claire et concise — la description apparaît dans skills_list(). Elle doit permettre à l'agent de décider rapidement si le skill est pertinent.
2. Structure cohérente — suivez le modèle : Quand l'utiliser → Procédure → Pièges → Vérification. Cette structure aide l'agent à suivre les instructions de manière prédictible.
3. Instructions actionnables — chaque étape doit être une action concrète que l'agent peut exécuter. Évitez les formulations vagues.
4. Documenter les échecs — la section "Pièges courants" est peut-être la plus précieuse. Elle empêche l'agent de reproduire des erreurs passées.
5. Versionner — mettez à jour le champ version à chaque modification significative. Cela permet au Hub de détecter les mises à jour.
6. Utiliser les fichiers complémentaires — pour les workflows complexes, placez les templates dans templates/, les scripts dans scripts/, et la documentation étendue dans references/.
7. Configurer les paramètres — utilisez metadata.hermes.config pour les valeurs que l'utilisateur peut personnaliser sans modifier le skill lui-même.
Sécurité : scanner les skills tiers
La sécurité est un pilier du Skills Hub. Tous les skills installés depuis le Hub passent par un scanner de sécurité qui vérifie :
- Exfiltration de données
- Injection de prompts
- Commandes destructrices
- Signaux de compromission de la chaîne d'approvisionnement
- Autres menaces potentielles
Le scanner produit un verdict :
- Aucun problème → installation directe
- Avertissement/Caution → l'utilisateur est informé,
--forcepermet de passer outre - Dangerous → toujours bloqué, même avec
--force
Les commandes hermes skills audit et hermes skills inspect permettent respectivement de re-scanner les skills installés et de consulter les métadonnées de sécurité d'un skill. Le fichier .hub/audit.log conserve l'historique des audits, et .hub/quarantine/ isole les skills jugés dangereux. Pour approfondir ce sujet, consultez notre article sur la Sécurité et permissions dans Hermes Agent.
⚠️ Les skills
officialsont traités avec une confiance intégrée et ne déclenchent pas le panneau d'avertissement tiers. Pour tout le reste, la vigilance est de mise.
Utilisation au quotidien
Les skills s'utilisent de deux manières :
Via slash commands (dans le CLI ou n'importe quelle plateforme de messagerie) :
/plan concevoir une migration vers un nouveau provider d'auth
/axolotl help me fine-tune Llama 3
/github-pr-workflow create a PR for the auth refactor
Via conversation naturelle :
hermes chat --toolsets skills -q "Quels skills as-tu ?"
hermes chat --toolsets skills -q "Montre-moi le skill axolotl"
Chaque skill installé est automatiquement disponible comme commande slash, sans configuration supplémentaire. Pour comprendre comment les skills interagissent avec le contexte de conversation, voir Hermes Agent : sessions et contexte de conversation.
Erreurs courantes
- Skill qui n'apparaît pas dans la liste : vérifiez que le fichier SKILL.md est bien présent à la racine du sous-répertoire du skill et que le frontmatter YAML est valide. Une erreur de syntaxe dans le frontmatter rend le skill invisible.
- Skill masqué alors qu'il devrait être disponible : vérifiez les conditions d'activation (
requires_toolsets,requires_tools). Si les outils requis ne sont pas dans la session, le skill reste caché. - Écrasement d'un skill modifié après
hermes update: cela ne devrait pas se produire — le manifeste protège les modifications locales. Si cela arrive, le skill n'était probablement pas tracé dans le manifeste (skill installé manuellement hors du Hub). --forcene suffit pas à installer un skill : le verdict du scanner de sécurité est probablementdangerous. Ce verdict est intentionally non contournable pour protéger l'utilisateur.- Conflict entre un skill local et un skill externe : la version locale dans
~/.hermes/skills/l'emporte toujours. Si vous voulez utiliser la version externe, renommez ou supprimez la version locale.
FAQ
Un skill consomme-t-il des tokens même quand il n'est pas utilisé ?
Non. Le système de découverte progressive garantit que seuls le nom et la description (~3 000 tokens pour l'ensemble des skills) sont chargés. Le contenu complet n'est chargé qu'au niveau 1, uniquement quand l'agent décide d'utiliser le skill.
Puis-je partager un skill créé automatiquement par l'agent ?
Oui. Les skills de ~/.hermes/skills/ sont de simples fichiers. Vous pouvez les copier dans un dépôt GitHub et les installer sur une autre machine via hermes skills install ou les publier sur le Skills Hub.
Comment revenir à la version officielle d'un skill intégré modifié ?
Utilisez hermes skills reset <nom> --restore. Cette commande remplace votre version modifiée par la version bundled propre du dépôt Hermes.
Les skills externes peuvent-ils être modifiés par l'agent ?
Non. Les répertoires externes sont en lecture seule. Si l'agent veut améliorer un skill externe, il en créera une copie locale dans ~/.hermes/skills/ via skill_manage.
Est-il possible de désactiver le scanner de sécurité ?
Non. Le scanner est un mécanisme de sécurité non désactivable. Seul le verdict "Avertissement/Caution" peut être contourné avec --force. Le verdict "Dangerous" bloque toujours l'installation.
Outils recommandés
- skill_manage : l'outil interne de l'agent pour créer, modifier et supprimer ses propres skills. C'est le cœur de la mémoire procédurale.
- skills_list() : fonction de découverte légère permettant à l'agent de parcourir les skills disponibles sans charger leur contenu complet.
- skill_view() : fonction de chargement du contenu d'un skill, avec support du chargement de fichiers complémentaires (niveau 2).
- hermes skills : la commande CLI pour gérer le Skills Hub (browse, search, install, audit, update, uninstall).
- Extensions et plugins : pour étendre les capacités d'Hermes au-delà des skills, consultez notre article sur les Extensions et Plugins Hermes Agent.
Conclusion
Le système de skills d'Hermes Agent représente un changement de paradigme dans la façon dont les agents IA interagissent avec les connaissances. Loin d'un simple système de prompts, il s'agit d'une mémoire procédurale vivante qui :
- S'économise en tokens grâce à la découverte progressive en trois niveaux
- S'enrichit automatiquement quand l'agent apprend de nouvelles procédures
- S'ouvre au monde via le Skills Hub et ses multiples sources
- Se protège grâce au scanner de sécurité et aux niveaux de confiance
Combiné avec la mémoire persistante et les fichiers de contexte, le système de skills fait d'Hermes un agent qui ne se contente pas d'exécuter des tâches — il apprend, s'adapte et s'améliore avec chaque interaction.
Pour découvrir les bases d'Hermes, consultez notre présentation complète, ou explorez les 68 outils disponibles qui donnent vie à ces skills.