v0.9.0

Hermes Agent v0.9.0 — La Release Omniprésente


Aperçu

v0.9.0 — La Release Omniprésente. Publiée le 13 avril 2026. Depuis la v0.8.0 : 487 commits · 269 PRs fusionnées · 167 tickets résolus · 493 fichiers modifiés · 63 281 insertions · 24 contributeurs.

Cette release tient en un mot : être partout. Hermes est sorti du terminal et de quelques plateformes de chat pour plonger dans l’écosystème Apple (iMessage), l’écosystème chinois (WeChat), et même le mobile (Android/Termux). Un tout nouveau tableau de bord web local vous permet de tout gérer sans éditer de fichiers de configuration. Le Mode Rapide supprime les temps d’attente pour les flux de travail sensibles à la latence. La surveillance des processus en arrière-plan vous libère de l’enfer du polling. Et 11 correctifs de renforcement de sécurité garantissent que tout cela fonctionne vite et en toute sécurité.


Fonctionnalités Majeures

1. Tableau de Bord Web Local — Gérez Tout Depuis Votre Navigateur

Hermes est désormais livré avec un tableau de bord de gestion accessible via navigateur, destiné à un usage local. Configurez vos paramètres, surveillez vos sessions, parcourez les compétences et gérez votre gateway — le tout depuis une interface web épurée, sans fichiers de configuration, sans terminal. La manière la plus simple de démarrer avec Hermes.

Le tableau de bord est construit sur FastAPI + Uvicorn, accessible par défaut sur 127.0.0.1:9119, avec l’état du gateway en temps réel, l’historique des sessions et des analyses d’utilisation.

2. Mode Rapide (/fast) — Pipeline d’Inférence Prioritaire

Tapez /fast dans le chat pour faire passer votre session par des files de traitement prioritaires pour les modèles OpenAI et Anthropic, réduisant considérablement la latence d’inférence. Les modèles pris en charge incluent GPT-5.4, Codex, Claude et plus encore.

# Activer le mode rapide
/fast

# Tous les appels LLM suivants passent par des files prioritaires avec une latence bien plus faible
# Tapez /fast à nouveau pour désactiver

Propulsé par le traitement prioritaire d’OpenAI et le niveau rapide d’Anthropic, étendu à tous les modèles éligibles. (#6875, #6960, #7037)

3. iMessage via BlueBubbles — Hermes Entre dans l’Écosystème Apple

Intégration complète d’iMessage via BlueBubbles. Enregistrement automatique des webhooks, intégration à l’assistant d’installation et résilience aux crashs — Hermes peut désormais envoyer et recevoir des iMessages depuis votre Mac.

# Sélectionnez BlueBubbles dans l'assistant d'installation et suivez le guide d'appairage
hermes setup

(#6437, #6460, #6494)

4. WeChat (Weixin) & Mode Callback WeCom — L’Écosystème de Messagerie Chinois au Complet

WeChat (Weixin) : Support natif de WeChat via l’API iLink Bot, avec curseur de streaming, téléversement de médias et gestion des liens Markdown.

Mode Callback WeCom : Un adaptateur en mode callback pour les applications d’entreprise auto-hébergées, avec persistance d’état atomique.

Hermes couvre désormais l’écosystème de messagerie chinois de bout en bout — du WeChat personnel au WeCom professionnel. (#7166, #7943)

5. Support Termux / Android — Hermes Passe au Mobile

Exécutez Hermes nativement sur Android via Termux. Chemins d’installation adaptés, TUI optimisée pour les écrans mobiles, support du backend vocal, et la commande /image fonctionne directement sur l’appareil.

# Installer dans Termux avec le bundle termux spécialisé
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --bundle termux

(#6834)

6. Surveillance des Processus en Arrière-Plan (watch_patterns) — Soyez Notifié, Arrêtez de Poller

Définissez des motifs regex à surveiller dans la sortie des processus en arrière-plan et recevez des notifications en temps réel lorsqu’ils correspondent. Surveillez les erreurs, attendez des événements spécifiques (« listening on port 3000 »), ou suivez les logs de compilation — fini le polling.

# hermes.config.yaml
watch_patterns:
  - pattern: "Error:.*"
    notify: true
  - pattern: "listening on port \\d+"
    notify: true
    label: "Service prêt"

(#7635)

7. xAI (Grok) & Xiaomi MiMo — Support Fournisseur Natif

Deux fournisseurs majeurs de modèles bénéficient d’un support de première classe :

  • xAI (Grok) : Accès direct à l’API, catalogue de modèles, intégration à l’assistant d’installation
  • Xiaomi MiMo : Assistant d’installation, catalogue de modèles, récupération automatique des réponses vides

Ainsi que Qwen OAuth avec support de requêtes portail. (#7372, #7855)

8. Moteur de Contexte Pluggable — Personnalisez Ce Que l’Agent Voit

La gestion du contexte devient un emplacement pluggable via hermes plugins. Branchez des moteurs de contexte personnalisés qui contrôlent exactement ce que l’agent voit à chaque tour — filtrage, résumé ou injection de contexte spécifique au domaine.

# Installer un plugin de moteur de contexte personnalisé
hermes plugins install my-context-engine

(#7464)

9. Support Proxy Unifié — Fonctionne Derrière les Pare-feux

Proxy SOCKS, DISCORD_PROXY et détection automatique du proxy système sur toutes les plateformes du gateway. Hermes fonctionne derrière les pare-feux d’entreprise — macOS détecte automatiquement les paramètres de proxy système, Windows/Linux nécessitent juste une configuration manuelle. (#6814)

10. Renforcement de Sécurité Complet — 11 Correctifs Critiques

La campagne de renforcement de sécurité la plus profonde de l’histoire d’Hermes :

Vulnérabilité Correctif PR
RCE par SMS Validation de signature des webhooks Twilio #7933
Injection Shell Échappement des chemins d’écriture dans le sandbox #7940
Injection d’Argument Git Protection contre le path traversal et l’injection d’arguments #7944
SSRF Protection contre les redirections lors du téléversement d’images Slack #7151
Path Traversal Renforcement des frontières dans le gestionnaire de points de contrôle et le gestionnaire de compétences #7156
Protection de Bind API Exiger API_SERVER_KEY pour les liaisons non-loopback #7455
Auth du Bouton d’Approbation Exiger l’authentification pour la poursuite de session #6930

11. hermes backup & hermes import — Sauvegarde et Restauration en Un Clic

Sauvegarde et restauration complètes de votre configuration Hermes, sessions, compétences et mémoire. Migrez entre machines ou faites un instantané avant des changements majeurs — une seule commande suffit.

# Sauvegarder tout
hermes backup

# Restaurer sur une nouvelle machine
hermes import ./backup-2026-04-13.tar.gz

(#7997)

12. 16 Plateformes Supportées — Véritablement Partout

À partir de cette release, Hermes supporte 16 plateformes de messagerie :

Telegram, Discord, Slack, WhatsApp, Signal, Matrix, iMessage (nouveau), WeChat (nouveau), WeCom, Email, SMS, DingTalk, Feishu, Mattermost, Home Assistant, Webhooks

13. Boîte à Outils de Débogage — /debug & hermes debug share

Nouvelles commandes de débogage : la commande slash /debug disponible sur toutes les plateformes pour des diagnostics rapides, ainsi que hermes debug share pour téléverser un rapport de débogage complet vers un pastebin afin de faciliter le partage lors du dépannage. (#8681)

# Diagnostics rapides dans la CLI
/debug

# Exporter et partager un rapport de débogage
hermes debug share

Agent Principal & Architecture

Support des Fournisseurs & Modèles

  • Fournisseur natif xAI (Grok) avec accès direct à l’API et catalogue de modèles
  • Xiaomi MiMo comme fournisseur de première classe — assistant d’installation, catalogue de modèles, récupération des réponses vides
  • Fournisseur Qwen OAuth avec support de requêtes portail
  • Mode Rapide — bascule /fast pour le traitement prioritaire OpenAI + niveau rapide Anthropic
  • Classification structurée des erreurs API pour des décisions de basculement intelligentes
  • Capture des en-têtes de limite de débit affichée dans /usage
  • Nom du modèle du serveur API dérivé du nom du profil
  • Fournisseurs personnalisés désormais inclus dans les listes et la résolution de /model
  • Activation du fournisseur de secours en cas de réponses vides répétées, avec statut visible pour l’utilisateur
  • Tags de variantes OpenRouter (:free, :extended, :fast) préservés lors du changement de modèle
  • TTL d’épuisement des credentials réduit de 24 heures à 1 heure
  • Renforcement du cycle de vie des credentials OAuth — clés de pool obsolètes, synchronisation auth.json, correction de race condition Codex CLI
  • Récupération des réponses vides pour les modèles de raisonnement (MiMo, Qwen, GLM)
  • Tailles de contexte MiniMax, garde de réflexion, corrections d’endpoints
  • Détection automatique de l’endpoint Z.AI par sonde et cache

Boucle d’Agent & Conversation

  • Emplacement de moteur de contexte pluggable via hermes plugins
  • Surveillance des processus en arrière-planwatch_patterns pour des alertes en temps réel sur la sortie
  • Compression de contexte améliorée — limites plus élevées, suivi des outils, avertissements de dégradation, protection du budget de tokens en fin de contexte
  • /compress <focus> — compression guidée avec un sujet central
  • Avertissements de pression de contexte par paliers avec déduplication dans le gateway
  • Avertissement d’inactivité progressif avant l’escalade du délai d’expiration
  • Empêcher l’agent de s’arrêter en pleine tâche — seuil de compression minimum, refonte du budget, suivi d’activité
  • Propagation de l’activité enfant vers le parent lors de delegate_task
  • Détection des appels d’outils de streaming tronqués avant exécution
  • Nouvelle tentative sur réponse vide (3 essais avec relance)
  • Backoff de streaming adaptatif + nettoyage du curseur pour éviter la troncature des messages
  • La compression utilise le modèle de session en direct plutôt que la configuration persistante obsolète
  • Suppression des balises <thought> des réponses Gemma 4
  • Empêcher <think> dans la prose de supprimer la sortie de réponse
  • Journalisation de diagnostic de sortie de tour dans la boucle d’agent
  • Portée du signal d’interruption d’outil par thread pour éviter les fuites inter-sessions

Mémoire & Sessions

  • Plugin de mémoire Hindsight — parité fonctionnelle, assistant d’installation, améliorations de configuration (@nicoloboschi)
  • HonchoinitOnSessionStart optionnel pour le mode outils (@Kathie-yu)
  • Rendre les enfants orphelins au lieu de les supprimer en cascade lors du nettoyage/suppression
  • La commande doctor vérifie uniquement le fournisseur de mémoire actif

Plateformes de Messagerie (Gateway)

Nouvelles Plateformes

  • BlueBubbles (iMessage) — adaptateur complet avec enregistrement automatique des webhooks, assistant d’installation et résilience aux crashs
  • WeChat (Weixin) — support natif via l’API iLink Bot avec streaming, téléversement de médias, liens Markdown
  • Mode Callback WeCom — adaptateur pour application d’entreprise auto-hébergée avec persistance d’état atomique

Améliorations des Plateformes

Discord :

  • Configuration de liste blanche des salons autorisés
  • Héritage du sujet des forums dans les sessions de fils de discussion
  • Paramètre DISCORD_REPLY_TO_MODE
  • Acceptation des pièces jointes .log, augmentation de la limite de taille des documents
  • Découplage de la synchronisation des commandes slash de la disponibilité

Slack :

  • Améliorations Slack consolidées — 7 PRs communautaires fusionnées en une seule
  • Gestion des événements de cycle de vie des fils de discussion de l’assistant

Matrix :

  • Migration de matrix-nio vers mautrix-python
  • Stockage de chiffrement SQLite remplaçant pickle (corrige le déchiffrement E2EE)
  • Vérification de la clé de récupération de signature croisée pour la migration E2EE
  • Fils de discussion par mention DM + événements de groupe pour Feishu

Cœur du Gateway

  • Support proxy unifié — SOCKS, DISCORD_PROXY, multi-plateforme avec détection automatique sur macOS
  • Regroupement de texte entrant pour Discord, Matrix, WeCom + délai adaptatif
  • Affichage naturel des messages assistant en cours de tour dans les plateformes de chat
  • Gateway compatible WSL avec détection intelligente de systemd
  • Toutes les plateformes manquantes ajoutées à l’assistant d’installation
  • Remplacements de tool_progress par plateforme
  • Intervalle configurable pour les notifications « toujours en cours »
  • /model persiste d’un message à l’autre
  • /usage affiche les limites de débit, le coût et les détails des tokens entre les tours
  • Évacuer le travail en cours avant le redémarrage
  • Ne pas expulser l’agent en cache lors d’exécutions échouées — empêche la boucle de redémarrage MCP
  • Remplacer l’état de session os.environ par contextvars
  • Dériver les plateformes de répertoire de canaux depuis l’enum plutôt qu’une liste codée en dur
  • Valider les téléchargements d’images avant la mise en cache (inter-plateforme)
  • Distribution de webhooks inter-plateforme pour toutes les plateformes
  • Support de livraison thread_id pour les cron Discord
  • Intégration de bot Feishu par QR code
  • Statut du gateway limité au profil actif
  • Empêcher les notifications de processus en arrière-plan de déclencher de fausses demandes d’appairage

CLI & Expérience Utilisateur

CLI Interactive

  • Support Termux / Android — chemins d’installation adaptés, TUI, voix, /image
  • Sélecteur modal natif /model pour la sélection fournisseur → modèle
  • Minuteur écoulé par outil en direct restauré dans le spinner TUI
  • Historique de progression des outils empilés dans la TUI
  • Conseils aléatoires au démarrage d’une nouvelle session (CLI + gateway, 279 conseils)
  • hermes dump — résumé de configuration prêt à copier-coller pour le débogage
  • hermes backup / hermes import — sauvegarde et restauration complètes de la configuration
  • Indice d’environnement WSL dans le prompt système
  • UX de création de profil — fichier SOUL.md d’amorçage + avertissement de credentials
  • Détection de sudo adaptée au shell, support des mots de passe vides
  • Nettoyage de stdin après les menus curses/terminal pour éviter les fuites de séquences d’échappement
  • Gestion des stdin cassés au démarrage de prompt_toolkit

Installation & Configuration

  • Configuration de la verbosité d’affichage par plateforme
  • Journalisation séparée par composant avec contexte de session et filtrage
  • network.force_ipv4 pour corriger les problèmes de timeout IPv6
  • Standardisation des espaces dans les messages et du formatage JSON
  • Rebranding OpenClaw → Hermes lors de la migration
  • config.yaml prioritaire sur les variables d’env pour les paramètres auxiliaires
  • Renforcement des flux d’installation des fournisseurs + rafraîchissement en direct du catalogue OpenRouter
  • Normalisation de l’ordre de l’effort de raisonnement sur toutes les surfaces
  • Suppression de la variable d’env obsolète LLM_MODEL + migration pour nettoyer les entrées périmées
  • Suppression de la commande slash /prompt — source d’erreurs par expansion de préfixe
  • Variable d’env HERMES_HOME_MODE pour remplacer les permissions
  • Repli vers le modèle par défaut quand la configuration du modèle est vide
  • Avertissement quand le contexte du modèle de compression est trop petit

Système d’Outils

Environnements & Exécution

  • Couche d’exécution unifiée spawn-par-appel pour les environnements
  • Synchronisation de fichiers unifiée avec suivi mtime, suppression et état transactionnel
  • Environnements sandbox persistants survivent entre les tours
  • Synchronisation de fichiers par lot via pipe tar pour les backends SSH/Modal
  • Daytona — téléversement groupé, pont de configuration, plafond de disque silencieux
  • Plafond de timeout au premier plan pour éviter les blocages de session
  • Protection contre les valeurs de commande invalides

MCP

  • Support de hermes mcp add --env et --preset
  • Combiner content et structuredContent quand les deux sont présents
  • Corrections de résolution de conflits de noms d’outils MCP
  • Renforcement du navigateur — suppression de code mort, mise en cache, performances de défilement, sécurité, thread safety
  • /browser connect avec lancement automatique utilise un répertoire de profil Chrome dédié
  • Nettoyage des sessions navigateur orphelines au démarrage

Voix & Vision

  • Fournisseur TTS Voxtral (Mistral AI)
  • Support de la vitesse TTS pour Edge TTS, OpenAI TTS, MiniMax
  • Redimensionnement automatique de la vision pour les images surdimensionnées, limite portée à 20 Mo, nouvelle tentative en cas d’échec
  • Correction de non-correspondance fournisseur-modèle STT (whisper-1 vs faster-whisper)

Autres Outils

  • Commande hermes dump pour le résumé de configuration
  • Le stockage TODO applique l’unicité des IDs lors des opérations de remplacement
  • Lister tous les toolsets disponibles dans la description du schéma delegate_task
  • Serveur API : progression des outils en tant qu’événement SSE personnalisé pour éviter la corruption du modèle
  • Serveur API : partage d’un conteneur Docker unique entre toutes les conversations

Écosystème de Compétences

  • Index centralisé des compétences + cache arborescent — élimine les échecs de limite de débit à l’installation
  • Instructions de chargement des compétences plus agressives dans le prompt système (v3)
  • Compétence Google Workspace migrée vers le backend GWS CLI
  • Compétence de stratégies de divergence créative (@SHL0MS)
  • Idéation créative — génération de projets pilotée par contraintes (@SHL0MS)
  • Parallélisation de la navigation/recherche des compétences pour éviter les blocages
  • Lecture du nom depuis le frontmatter de SKILL.md dans skills_sync

Sécurité & Fiabilité

Renforcement de la Sécurité

  • Validation de signature des webhooks Twilio — correctif RCE par SMS
  • Neutralisation des injections shell dans _write_to_sandbox via échappement de chemin
  • Protection contre l’injection d’arguments Git et le path traversal dans le gestionnaire de points de contrôle
  • Contournement de redirection SSRF dans les téléversements d’images Slack + helpers de cache base.py
  • Path traversal, barrière de credentials, lacunes DANGEROUS_PATTERNS
  • Protection de bind API — exiger API_SERVER_KEY pour les liaisons non-loopback
  • Autorisation du bouton d’approbation — exiger l’authentification pour la poursuite de session
  • Renforcement des frontières de chemin dans les opérations du gestionnaire de compétences
  • Validation d’origine des URL de webhook DingTalk/API, rejet des injections d’en-têtes

Fiabilité

  • Diagnostics d’erreur contextuels pour les réponses API invalides
  • Empêcher les erreurs de format 400 de déclencher une boucle de compression sur Codex
  • Ne pas réduire de moitié context_length en cas d’erreurs output-cap-too-large
  • Récupérer le client principal en cas d’erreurs de transport OpenAI
  • Rotation du pool de credentials sur les erreurs 400 classées comme facturation
  • Augmentation automatique du timeout de lecture de flux pour les fournisseurs LLM locaux
  • Repli vers les certificats par défaut quand le chemin du bundle CA n’existe pas
  • Désambiguïsation des motifs de limite d’utilisation dans le classificateur d’erreurs
  • Renforcement du timeout des scripts cron et de la récupération des fournisseurs
  • Détection d’interruption du gateway résiliente aux échecs de tâches de surveillance
  • Empêcher la réinitialisation automatique indésirable de session après des redémarrages gracieux du gateway
  • Empêcher le spam de notifications de mise à jour en double dans le watcher du gateway
  • Déduplication des éléments de raisonnement dans l’entrée de l’API Responses

Infrastructure

  • Image Docker multi-architecture — amd64 + arm64
  • Docker s’exécute en tant qu’utilisateur non-root avec virtualenv
  • Utilisation de uv pour la résolution des dépendances Docker
  • CLI Nix adaptée aux conteneurs — routage automatique vers le conteneur géré
  • Modèle de permission à état partagé Nix pour les utilisateurs de CLI interactive
  • Isolation HOME par profil pour les sous-processus
  • Chemins de profil corrigés dans Docker — les profils vont dans le volume monté
  • Chemin du gateway en conteneur Docker renforcé
  • Activation de stdout sans tampon pour les logs Docker en direct
  • Installation de procps dans l’image Docker
  • Clone git superficiel pour une installation plus rapide
  • hermes update réinitialise toujours en cas de conflit de stash
  • Écriture du code de sortie de mise à jour avant le redémarrage du gateway (race condition cgroup kill)
  • Nix : setupSecrets optionnel, dépendance d’exécution tirith
  • L’arrêt launchd utilise bootout pour que KeepAlive ne relance pas

Corrections de Bugs Notables

  • Correction : /model ne persistait pas d’un message à l’autre dans le gateway
  • Correction : les remplacements de modèle du gateway limités à la session étaient ignorés
  • Correction : la longueur de contexte du modèle de compaction ignorait la configuration (3 tickets liés)
  • Correction : la fenêtre de contexte d’OpenCode.ai était résolue à 128K au lieu de 1M
  • Correction : recherche dans le stockage d’authentification de secours pour Codex
  • Correction : notifications de complétion en double quand le processus est tué
  • Correction : le thread démon de l’agent empêche les processus CLI orphelins à la fermeture d’onglet
  • Correction : pièce jointe d’image obsolète lors du collage de texte et de la saisie vocale
  • Correction : l’ensemencement de session de fil DM causait une contamination inter-fils
  • Correction : la migration OpenClaw affiche un aperçu avant exécution
  • Correction : les erreurs d’authentification étaient mal classées comme réessayables
  • Correction : en-tête Copilot-Integration-Id manquant
  • Correction : capacités de session ACP
  • Correction : utilisation de PromptResponse ACP depuis les champs de niveau supérieur
  • Correction : plusieurs tests échouant/instables sur main
  • Correction : noms de fichiers des marqueurs de sauvegarde
  • Correction : NoneType dans la vérification fast_mode
  • Correction : imports manquants dans uninstall.py

Documentation

  • Guide du développeur d’adaptateur de plateforme + documentation WeCom Callback
  • Guide de dépannage Cron
  • Détection automatique du timeout de streaming pour les LLM locaux
  • Documentation sur l’application forcée des outils élargie
  • Instructions d’appairage BlueBubbles
  • Section de support proxy Telegram
  • Référence CLI hermes dump et hermes logs
  • Référence de configuration tool_progress_overrides
  • Documentation d’avertissement sur la longueur de contexte du modèle de compression

Mise à Niveau

hermes update

Pour les nouvelles installations, consultez le guide d’installation.


Changelog complet sur GitHub

← Hermes Agent Changelog