Hermes Agent v0.5.0 — La Version de Durcissement
Aperçu
v0.5.0 — La Version de Durcissement. Publiée le 28 mars 2026. Cette version vise à rendre Hermes Agent prêt pour la production : plus de 50 correctifs de sécurité et de fiabilité, un audit complet de la chaîne d’approvisionnement et des extensions majeures de plateforme qui positionnent Hermes comme un concurrent sérieux dans l’espace des agents autonomes.
À ce stade, le projet avait déjà dépassé les 15 700 étoiles GitHub depuis son lancement public initial en février 2026, avec plus de 242 contributeurs. Nous Research a décrit cette version comme celle qui “durcit” chaque couche de la stack — du verrouillage des versions de dépendances et du patching des CVE, aux protections SSRF et à la prévention des injections de shell.
Fonctionnalités Majeures
1. Hugging Face comme Fournisseur d’Inférence de Première Classe
Hermes Agent s’intègre désormais nativement avec l’API d’Inférence Hugging Face, avec authentification, assistant de configuration et un sélecteur de modèles intelligent qui mappe les valeurs par défaut agentiques d’OpenRouter à leurs équivalents HF.
# Pendant la configuration, Hugging Face apparaît comme option de fournisseur
hermes setup
# Sélectionnez "Hugging Face" → entrez votre token API HF → choisissez parmi les modèles agentiques sélectionnés
# Passer à un modèle Hugging Face à l'exécution
hermes model --provider huggingface
Fonctionnement interne :
- Liste de modèles sélectionnés mappant les valeurs par défaut d’OpenRouter aux équivalents HF, pour choisir le bon modèle sans hésitation
- Les fournisseurs avec plus de 8 modèles sélectionnés ignorent la requête en direct du endpoint
/modelspour un démarrage instantané - Flux d’authentification complet avec votre token API HF, stocké en toute sécurité dans le magasin de credentials Hermes
2. Telegram Private Chat Topics
Des conversations basées sur des projets avec liaison de compétences fonctionnelles par sujet — vous pouvez désormais exécuter des flux de travail isolés dans un seul chat Telegram. Chaque sujet a son propre ensemble de compétences, son propre contexte et sa propre personnalité d’agent.
# hermes.config.yaml
telegram:
private_chat_topics: true
topic_skills:
- topic: "ml-experiments"
skills: [python-ml, data-analysis, notebook]
- topic: "devops"
skills: [docker, terraform, kubernetes]
Cela signifie qu’un seul chat Telegram peut héberger votre flux de travail ML, votre gestion d’infrastructure et votre revue de code — tout isolé, tout persistant, tout au même endroit.
3. Backend Natif Modal SDK
La dépendance swe-rex a été remplacée par le SDK Modal natif (Sandbox.create.aio + exec.aio), éliminant les tunnels SSH et simplifiant radicalement le backend terminal Modal.
# Avant : swe-rex créait des tunnels SSH pour chaque opération de sandbox
# Après : appels SDK directs — plus rapide, plus simple, sans gestion de tunnels
# L'agent utilise maintenant les primitives asynchrones natives de Modal :
# Sandbox.create.aio() — créer des sandboxes sans surcharge de tunnel
# exec.aio() — exécuter des commandes directement via le SDK
Ce changement supprime une dépendance architecturale significative et rend l’exécution en sandbox plus fiable et plus facile à déboguer.
4. Hooks de Cycle de Vie des Plugins Activés
Le système de hooks de plugins est maintenant pleinement opérationnel. Quatre hooks de cycle de vie se déclenchent aux points clés de la boucle de l’agent :
| Hook | Point de Déclenchement | Cas d’Usage |
|---|---|---|
pre_llm_call |
Avant chaque appel API LLM | Modifier les prompts, injecter du contexte, journaliser les requêtes |
post_llm_call |
Après chaque appel API LLM | Post-traiter les réponses, extraire des données structurées |
on_session_start |
Au début d’une session | Initialiser les ressources, configurer l’espace de travail |
on_session_end |
À la fin d’une session | Nettoyer, persister l’état, envoyer des notifications |
# Exemple de plugin utilisant les hooks de cycle de vie
# my_plugin.py
def pre_llm_call(context, messages):
# Ajouter un contexte système personnalisé avant que le LLM ne voie le prompt
messages.insert(0, {"role": "system", "content": "Date du jour : 2026-03-28"})
return messages
def post_llm_call(context, response):
# Journaliser l'utilisation des tokens vers votre plateforme d'analyse
log_usage(response.usage)
return response
Ces hooks se déclenchent dans le CLI, la passerelle et toutes les plateformes de messagerie — complétant une fonctionnalité d’extensibilité longtemps demandée.
5. Application de l’Utilisation d’Outils GPT
Les modèles GPT avaient une particularité persistante : ils décrivaient ce qu’ils avaient l’intention de faire au lieu d’appeler réellement les outils. v0.5.0 ajoute GPT_TOOL_USE_GUIDANCE — une injection spécialisée dans le prompt système qui force les modèles GPT à utiliser les outils plutôt qu’à narrer les actions.
# Interne : avant chaque appel API GPT, l'agent injecte des instructions :
GPT_TOOL_USE_GUIDANCE = """
Lorsque vous devez effectuer une action, vous DEVEZ utiliser l'outil approprié.
Ne décrivez PAS ce que vous feriez — appelez réellement l'outil.
"""
De plus, les avertissements de budget obsolètes qui s’accumulaient dans l’historique de conversation (et amenaient les modèles à éviter les outils sur plusieurs tours) sont maintenant automatiquement supprimés de la transcription.
6. Correction des Limites de Sortie Anthropic
La limite rigide de 16K max_tokens a été remplacée par des limites de sortie natives par modèle :
| Modèle | Ancienne Limite | Nouvelle Limite |
|---|---|---|
| Claude Opus 4.6 | 16K | 128K |
| Claude Sonnet 4.6 | 16K | 64K |
| Autres modèles Claude | 16K | Spécifique au modèle |
Cela corrige deux problèmes de longue date :
- Erreurs “Response truncated” lorsque l’agent avait besoin de plus de 16K tokens de sortie
- Épuisement du budget de réflexion — l’agent détecte maintenant quand un modèle utilise tous les tokens de sortie pour le raisonnement et saute intelligemment les tentatives de continuation inutiles
7. Support Nix Flake
Par @alt-glitch — build uv2nix complet, module NixOS avec mode conteneur persistant, clés de configuration auto-générées depuis le code source Python, et PATHs avec suffixe pour la convivialité agent.
# flake.nix
{
inputs.hermes-agent.url = "github:NousResearch/hermes-agent";
# ...
hermes-agent.nixosModules.default
# Fournit : service hermes-agent avec mode conteneur persistant
}
8. Durcissement de la Chaîne d’Approvisionnement
Cette version a mis en place une défense complète de la chaîne d’approvisionnement :
- Dépendance
litellmcompromise supprimée — un incident de chaîne d’approvisionnement largement médiatisé - Toutes les plages de version de dépendances verrouillées — plus de dérive de version flottante
uv.lockrégénéré avec des hachages cryptographiques — chaque dépendance est vérifiée au moment de l’installation- Workflow CI ajouté qui scanne chaque PR à la recherche de motifs d’attaque de la chaîne d’approvisionnement
- Dépendances mises à jour pour corriger les CVE connus dans tout l’arbre de dépendances
Nouvelles Compétences
| Compétence | Description |
|---|---|
| G0DM0D3 | Compétence de jailbreak Godmode pour l’ingénierie avancée de prompts et l’exploration de capacités |
| Gestion Docker | Gestion du cycle de vie des conteneurs, construction d’images et orchestration compose |
| Migration OpenClaw v2 | 17 nouveaux modules pour migrer d’OpenClaw vers Hermes Agent, incluant le récapitulatif terminal |
Améliorations du Système de Compétences
- Transmission de variables d’environnement — les compétences peuvent déclarer les variables d’environnement dont elles ont besoin, et Hermes les transmet en toute sécurité
- Prompts de compétences mis en cache avec module partagé
skill_utilspour un temps jusqu’au premier token (TTFT) significativement plus rapide - API Git Trees utilisée pour l’installation de compétences afin d’éviter la perte silencieuse de sous-répertoires
- Les compétences créées par l’agent sont maintenant correctement traitées comme de confiance (et non comme du contenu communautaire non fiable)
Plateformes de Messagerie
Telegram
- Private Chat Topics avec liaison de compétences par sujet (voir Fonctionnalités Majeures ci-dessus)
- Découverte automatique d’IP de secours via DNS-over-HTTPS lorsque
api.telegram.orgest inaccessible — l’agent trouve des routes alternatives - Mode de threading de réponse configurable — contrôlez comment l’agent organise ses réponses en fils
- Reconnexion auto-planifiée lorsque le polling échoue après des erreurs 502
Discord
- Correction de l’indicateur fantôme “en train d’écrire” qui persistait après la fin du tour de l’agent
Slack
- Les messages de progression des appels d’outils sont maintenant correctement routés vers le bon fil Slack
- Support de téléchargement de médias — les documents, l’audio et les messages vidéo sont maintenant téléchargeables par l’agent
Cœur de la Passerelle
- Commande
/verbosepour les plateformes de messagerie — basculer la verbosité de sortie des outils depuis n’importe quel chat - Notifications de revue en arrière-plan livrées directement dans le chat utilisateur
- Réessayer les échecs d’envoi transitoires et notifier l’utilisateur lorsque les tentatives sont épuisées
/stopforce la libération du verrou de session — récupérer les agents bloqués sans redémarrer la passerelleSessionStorethread-safe avecthreading.Lock- La passerelle ne gaspille plus environ 10K tokens en chargeant le AGENTS.md du dépôt Hermes dans chaque session
- Timeouts de requête ajoutés aux adaptateurs HA, Email, Mattermost et SMS
CLI & Expérience Utilisateur
Améliorations du CLI Interactif
- Mode d’entrée occupée configurable — contrôlez ce qui se passe lorsque vous tapez pendant le traitement de l’agent
- Collage multiligne préservé — plus d’entrée déformée lors du collage de commandes multilignes
- Callback de génération d’outils — mises à jour en streaming “preparing terminal…” pendant que l’agent génère les arguments d’outils
- Corrections de la barre d’état : les tokens avec des zéros finaux s’affichent maintenant correctement (260K au lieu de 26K), les doublons et la dégradation corrigés pendant les longues sessions
- La boîte de raisonnement ne s’affiche plus 3 fois pendant les boucles d’appels d’outils
- “Event loop is closed” / “Press ENTER to continue” pendant les sessions inactives — corrigé avec une solution à trois couches
- Le TUI se rafraîchit avant la sortie des tâches d’arrière-plan pour éviter le chevauchement visuel
Configuration et Paramétrage
- Refonte de la commande
/model— pipeline partagé extrait pour CLI et passerelle, support d’endpoint personnalisé - Le menu de configuration pour utilisateurs récurrents utilise maintenant un mapping de touches explicite au lieu d’un index positionnel fragile
hermes updatedurci contre l’historique divergent, les branches non principales et les cas limites de passerelle- La migration OpenClaw ne remplace plus les valeurs par défaut ; l’assistant de configuration saute les sections déjà importées
- Le chargement d’AGENTS.md s’arrête maintenant au niveau supérieur — plus de parcours récursif de répertoires
- Chemins Homebrew macOS ajoutés à la résolution PATH du navigateur et du terminal
- SOUL.md par défaut réinitialisé au texte d’identité de base
Système d’Outils
Serveur API
- Support Idempotency-Key — sémantique de réessai sécurisée pour les appels API
- Limites de taille de corps et enveloppe d’erreur compatible OpenAI
- Annule les agents orphelins à la déconnexion SSE avec une véritable interruption
- Le streaming ne se casse plus lorsque l’agent effectue des appels d’outils
Terminal et Opérations sur Fichiers
- L’analyseur de patch V4A gère maintenant correctement les blocs d’ajout uniquement
- Backoff exponentiel pour le polling persistant du shell — réduction de l’utilisation CPU
- Timeout ajouté aux appels de sous-processus dans
context_references
Navigateur et Vision
- Protection SSRF ajoutée à
browser_navigate,vision_toolsetweb_tools - Erreur 402 crédits insuffisants gérée élégamment dans l’outil de vision
- Le timeout de commande du navigateur est maintenant configurable via
config.yaml
MCP
- Résolution unifiée des ensembles d’outils MCP basée sur l’exécution et la configuration
- Protection contre les collisions de noms d’outils MCP — empêche l’écrasement silencieux des outils
Sécurité et Fiabilité
Durcissement de la Sécurité (plus de 50 correctifs)
| Catégorie | Correctif |
|---|---|
| Protection SSRF | browser_navigate, vision_tools et web_tools bloquent maintenant le Server-Side Request Forgery |
| Restriction des Sous-agents | Les ensembles d’outils des sous-agents limités à l’ensemble activé du parent — pas d’escalade de privilèges |
| Prévention Zip-Slip | L’auto-mise à jour durcie contre les attaques de path traversal |
| Injection de Shell | L’expansion de chemin ~user ne permet plus l’injection de commandes |
| Détection de Commandes | Entrée normalisée avant la détection de commandes dangereuses |
| Tirith | Les verdicts de blocage sont maintenant approuvables au lieu d’un blocage strict (humain dans la boucle) |
| Dépendances | litellm/typer/platformdirs compromis supprimés, toutes les plages verrouillées, lockfile avec hachages |
Fiabilité
- Contention de verrou d’écriture WAL SQLite causant des gels TUI de 15-20s — corrigé
- Concurrence SQLite durcie avec garanties d’intégrité des transcriptions de session
- Prévention du re-déclenchement des tâches cron dans les boucles de crash/redémarrage de la passerelle
- Sessions cron correctement marquées comme terminées après l’achèvement de la tâche
Performance
- Optimisations de démarrage TTFT — améliorations rapides pour des démarrages à froid plus rapides
- Mise en cache des prompts de compétences avec module partagé
skill_utilsréduit les calculs répétés - Lectures de fichiers redondantes éliminées pour les conditions de compétences dans le constructeur de prompts
- Délai d’expiration API par défaut augmenté de 900s à 1800s pour les modèles à raisonnement lent
Mise à Niveau
hermes update
Pour les nouvelles installations, consultez le guide d’installation.
Journal des modifications complet sur GitHub
← Hermes Agent Changelog