v0.20.0

Hermes Agent v0.20.0 — The Herald Release


Aperçu

v0.20.0 — The Herald Release. Publiée le 3 août 2026. ~3 650 commits · ~1 400 PRs fusionnées · ~5 200 fichiers modifiés · ~559 000 insertions · ~405 000 suppressions · ~1 200 tickets fermés · plus de 650 contributeurs communautaires.

Hermès est le héraut des dieux, et cette version le rend tel pour de bon : il parle (voix conversationnelle en temps réel avec TTS en streaming, interruption vocale, mots d’activation sur l’appareil et contrôle mains libres sur le CLI, le desktop et toutes les plateformes de passerelle compatibles audio), il porte les messages à d’autres agents (A2A v1.0), il annonce les événements à vos systèmes (webhooks sortants signés), et il cite ses sources (recherche fondée avec citations vérifiables et fact-checking).

Autour de cette colonne vertébrale : l’application desktop est devenue une plateforme (Artifacts avec aperçu en direct sandboxé, un SDK de plugins, entrée rapide depuis n’importe où, fenêtres multiples), le CLI a reçu une vague de commandes avancées (! mode shell, /init, /diff, /context, /focus), la compression est devenue plus intelligente et plus douce, et les outils eux-mêmes se remettent désormais de leurs propres échecs au lieu de laisser le modèle deviner.

La réaction de la communauté a été immédiate — le fil Digg Tech a atteint plus de 900 000 vues combinées et plus de 5 400 likes en 24 heures. Teknium l’a qualifié de « heralding the new era ». Cette version intègre également tout ce qui figurait dans le tag de correctif d’infrastructure v0.19.1.


Points forts

1. Parlez à Hermes — Voix conversationnelle en streaming avec interruption vocale (Barge-In)

Avant, le mode vocal signifiait : parlez, attendez que toute la réponse soit générée, puis écoutez un long fichier audio. Désormais, Hermes parle clause par clause au fur et à mesure que la réponse est diffusée, vous pouvez l’interrompre en plein milieu en parlant simplement (il s’arrête, écoute, et le modèle est informé que vous l’avez coupé), et la détection de silence tenant compte de l’occupation signifie qu’il ne vous coupe pas la parole.

C’est un changement qualitatif, pas quantitatif — parler à Hermes ressemble enfin à une conversation, pas à un échange de messages vocaux. Fonctionne en mode vocal CLI, sur le desktop et via les adaptateurs de passerelle.

# Entrer en mode vocal depuis le CLI ou le TUI
hermes chat --voice

# Hermes parle clause par clause, vous dites "attends" et il s'arrête
# Totalement mains libres — aucun clavier nécessaire

2. Mots d’activation et contrôle mains libres — Parlez depuis l’autre bout de la pièce

Choisissez votre propre phrase d’activation à vocabulaire ouvert (« hey Hermes » ou ce que vous voulez) et Hermes commence à écouter — la détection s’exécute sur l’appareil, donc aucun audio ne quitte votre machine pendant l’attente. Le routage vocal multi-profils signifie que différents mots d’activation peuvent atteindre différents profils, et dire « stop » met fin au chat vocal sur toutes les surfaces sans toucher au clavier. Votre terminal est désormais quelque chose à quoi vous pouvez parler depuis l’autre bout de la pièce.

# Enregistrer un mot d'activation personnalisé (enrôlement vocal, 3 échantillons)
hermes voice wake-word register --phrase "hey assistant"

# Lier différents profils à différents mots d'activation
hermes voice wake-word bind --profile work --phrase "time to work"
hermes voice wake-word bind --profile personal --phrase "hey hermes"

Réaction de la communauté : les développeurs qualifient cela de moment « tueur d’Alexa/Google Home ». La détection des mots d’activation s’exécute silencieusement en arrière-plan sans consommer de budget modèle.

3. La voix partout — WhatsApp, Feishu, DingTalk, LINE, QQ, WeChat

Envoyez une note vocale à Hermes sur WhatsApp, Feishu, DingTalk, LINE, QQ, Photon ou Weixin et elle est transcrite et répondue. Les réponses TTS automatiques sont délivrées de manière adaptée à la plateforme (opus là où les plateformes attendent de l’opus, légendes jointes correctement).

La STT est désormais entièrement configurable — sa propre catégorie hermes tools, matrice de basculement GUI, listes déroulantes du tableau de bord, affichage de l’état de configuration. La résolution unifiée de la langue résout le problème de « la transcription revient dans la mauvaise langue » qui a tourmenté les utilisateurs de la voix. gpt-transcribe d’OpenAI est désormais pris en charge.

Tous les fournisseurs TTS partagent un préprocesseur de texte parlé unifié — le markdown, les blocs de code et les URLs sont intelligemment supprimés de la sortie vocale.

4. Une recherche digne de confiance — Citations vérifiables avec fact-checking

La nouvelle compétence grounded-citations permet à Hermes de produire des recherches où chaque affirmation est étayée par une source vérifiable : les citations sont comparées au texte réel de la page (pas d’hallucination), les références pointent vers les preuves exactes. Un mode fact-checking applique la même mécanique à n’importe quel document ou affirmation que vous lui soumettez — il vous dit ce qui est correct, ce qui ne l’est pas et ce qui n’a pas pu être vérifié.

Si vous utilisez Hermes pour la recherche, c’est la différence entre « ça a l’air juste » et « prouvablement sourcé ».

# Activer le mode de recherche fondée en conversation
/grounded-citations

# Vérifier les faits d'un document existant
/fact-check "Is this report on AI safety accurate?"

5. Communication Agent-à-Agent — Protocole A2A v1.0

Un nouveau plugin intégré implémente le protocole Agent-to-Agent — Hermes peut découvrir, parler à et être piloté par d’autres agents compatibles A2A. Cela clôt le ticket #514 — l’une des plus anciennes demandes de fonctionnalité ouvertes du dépôt.

Si vous construisez des systèmes multi-agents avec des stacks hétérogènes, Hermes dispose désormais d’un protocole standard pour s’y connecter.

# Activer le plugin A2A
hermes plugins enable a2a

# Hermes découvre automatiquement les agents sur le réseau local
# Peut déléguer des sous-tâches à d'autres agents de manière autonome

Teknium a souligné cela comme l’un des changements d’infrastructure les plus significatifs de cette version — les agents ont enfin un protocole de communication standard au lieu d’être des boîtes noires isolées.

6. Webhooks sortants — Hermes envoie les événements à vos systèmes

Jusqu’à présent, intégrer Hermes signifiait faire du polling ou écouter sur une plateforme. Désormais, Hermes envoie des événements de cycle de vie signés (activité de session, achèvement de tour, événements d’outils) à n’importe quel endpoint HTTP que vous enregistrez — avec des signatures HMAC pour que votre récepteur puisse vérifier l’authenticité.

Connectez Hermes à vos pipelines CI/CD, votre domotique, vos tableaux de bord de surveillance, ou n’importe quel service parlant HTTP, sans boucle de polling.

# hermes.config.yaml
webhooks:
  - url: "https://your-service.example.com/hermes-events"
    events: ["turn_complete", "tool_invocation", "session_activity"]
    hmac_secret: "${env:WEBHOOK_HMAC_KEY}"

7. L’application desktop devient une plateforme — Artifacts, SDK de plugins, entrée rapide

L’application desktop a cessé d’être un client de chat pour devenir un véritable espace de travail :

  • Artifacts : fiches versionnées avec aperçu en direct sandboxé dans un panneau latéral droit — le HTML ou les applications web générées s’exécutent en toute sécurité à côté de la conversation
  • SDK de plugins disponible : Kanban comme premier plugin desktop ; ctx.download remet des fichiers aux utilisateurs depuis les plugins ; SDK widget-app (état + réducteur + rendu) ; moteur de grille de widgets avec moteur de thème adaptatif au fond
  • Fenêtre d’entrée rapide par raccourci global : capturez une idée dans n’importe quelle session depuis n’importe où dans votre OS
  • Plusieurs fenêtres GUI ; placement en panneau flottant
# Desktop : Ctrl+Espace ouvre la fenêtre d'entrée rapide globale
# Tapez "build me a login page in HTML"
# Hermes la génère comme un Artifact avec aperçu en direct dans le panneau droit

La vidéo de revue de Julian Goldie a qualifié l’aperçu en direct des Artifacts d’ajout desktop le plus important, transformant « voir du code » en « voir des résultats ».

8. Vague CLI pour utilisateurs avancés — Moins de retours en arrière, plus de contrôle

Une vague de commandes CLI à fort impact débarque, mettant fin à l’ère du « je me trompe et je recommence » :

Commande Ce qu’elle fait
!command Exécute une commande shell instantanément — aucun tour de modèle consommé, résultats immédiats
/init Analyse votre projet, génère ou met à jour un fichier AGENTS.md
/diff Affiche les diffs staged / tous / session depuis n’importe quelle surface
/context Montre exactement ce qui remplit votre fenêtre de contexte
/focus Vue à sortie réduite avec récupération des lignes masquées
Ctrl+S Range une invite à moitié écrite dans un panneau consultable
hermes import-agent Migration en une commande depuis Claude Code ou Codex CLI
# Shell rapide — aucun budget modèle consommé
! ls -la && cat package.json

# Voyez exactement ce qui mange votre fenêtre de contexte
/context
# Sortie :
# System prompt: 12,450 tokens
# Last 3 turns: 2,100 tokens
# Tool definitions: 4,800 tokens
# Active skill docs: 3,200 tokens
# Remaining: 15,450 / 38,000 tokens

# Migrer depuis Claude Code — une seule commande
hermes import-agent

AICrier a noté que /context est l’une des commandes de diagnostic les plus demandées — fini de deviner ce qui remplit la fenêtre de contexte.

9. Corrigez l’agent en cours de tour — Redirigez au lieu de recommencer

Si Hermes prend la mauvaise direction, vous n’avez plus besoin de faire /stop, de réécrire l’invite et d’attendre une relecture. Tapez une correction pendant qu’il travaille et le tour actif est redirigé : le travail en cours est préservé, l’invite d’origine est conservée, et l’agent corrige sa trajectoire avec vos nouvelles instructions.

Associé au rejet de brouillon par double-Échap et à une pile d’annulation du composeur, piloter Hermes ressemble à de l’édition, pas à un redémarrage.

# Hermes est en train d'exécuter, et vous réalisez qu'il prend la mauvaise direction
# Ne faites pas /stop — tapez simplement une correction :
> Attends, vérifie d'abord la version de Node avant de décider quel gestionnaire de paquets utiliser

# Hermes redirige immédiatement, préserve le travail accompli, et continue

10. Des outils qui se réparent eux-mêmes — Fin des tours gaspillés par les frictions d’outils

Une refonte systématique de l’auto-récupération signifie que l’agent perd bien moins de tours à cause des frictions d’outils :

  • La sortie de terminal tronquée est déversée dans un fichier que l’agent peut relire
  • La commande patch détecte les modifications déjà appliquées et diagnostique les écarts d’espaces
  • Les recherches sans résultat sondent les correspondances proches et récupèrent
  • write_file vérifie le contenu sur le disque
  • Les classes d’échec courantes reviennent avec des conseils de récupération exploitables

La limite d’itération d’appel d’outils par défaut est également passée de 90 à 500 — les longues exécutions autonomes ne heurtent plus un mur artificiel.

# Limite d'itération d'outils par défaut considérablement augmentée
# Ancien : arrêt automatique après 90 itérations
# Nouveau : 500 itérations, assez pour des chaînes de tâches complexes en plusieurs étapes

L’analyse d’AICrier qualifie l’auto-récupération des outils de « gain de productivité silencieux » — vous ne le remarquez pas, mais cela économise 5 à 10 tours gaspillés chaque jour.


Voice & Speech

Voix conversationnelle

  • TTS en streaming clause par clause avec interruption vocale sur toutes les surfaces (mode vocal CLI + adaptateurs de passerelle)
  • Écouteur de tour full-duplex — interruption par la voix pendant la génération ET la lecture
  • Détection de silence tenant compte de l’occupation, indices d’arrêt, sons de réflexion, correctifs d’interruption
  • Le modèle est informé lorsque l’utilisateur interrompt sa réponse orale — le contexte reste cohérent
  • Le desktop prononce le tour entier et vide la narration en attente au repos

Infrastructure TTS / STT

  • Prétraitement de texte parlé unifié + paramètres d’outils de vitesse/instructions/fournisseur ; résolution unifiée de la langue STT (corrige la classe de problèmes de transcription dans la mauvaise langue)
  • STT entièrement configurable — catégorie hermes tools, matrice de basculement GUI, listes déroulantes du tableau de bord, état de configuration ; prise en charge de gpt-transcribe d’OpenAI
  • Délivrance TTS automatique adaptée à la plateforme (plateformes opus gérées correctement, légendes jointes)
  • Classification/routage vocal entrant pour WhatsApp, Feishu, DingTalk, LINE, QQ, Photon, Weixin
  • Renforcement des fournisseurs TTS/STT de commande (timeouts d’inactivité, nettoyage des variables d’env, no-shell, gardes de chemin)
  • Synthèse TTS par phrase pipelinée avec la lecture — la phrase suivante est rendue pendant que la phrase actuelle est prononcée
  • Flux PCM Discord Voice dirigés vers stdin de ffmpeg au lieu de fichiers temporaires

Mots d’activation et mains libres

  • Mots d’activation à vocabulaire ouvert sur l’appareil (enrôlement vocal, 3 échantillons)
  • Routage vocal multi-profils — différents mots d’activation atteignent différents profils
  • Dites « stop » pour terminer le chat vocal mains libres sur toutes les surfaces
  • Vague de 15 correctifs UX et environnement pour le mode vocal CLI/TUI

Agent principal et architecture

Compression — Intelligente et douce

  • Élagage proactif des résultats d’outils pour les modèles à large fenêtre
  • Micro-compaction par tour — coût de compression amorti sur les tours au lieu d’une seule pause géante
  • Queue garantie de N messages utilisateur (compression.min_tail_user_messages) — la conversation récente survit toujours
  • Défense anti-compétence fantôme — les compétences élaguées ne peuvent jamais hanter silencieusement une session
  • Timeouts tenant compte de la progression — les modèles de résumé lents ne sont plus pénalisés
  • Dérogations de seuil par modèle ; seuil de tokens absolu (compression.threshold_tokens) ; compaction déclenchée en mode inactif sur opt-in

Les longues sessions restent cohérentes et cessent de caler.

Redirections en cours de tour

  • Les corrections de l’utilisateur redirigent le tour actif, préservant le travail en cours et l’invite d’origine
  • Double-Échap rejette le brouillon
  • Pile d’annulation du composeur

Approbations — Plus intelligentes, moins de clics

  • hermes approvals suggest exploite l’historique d’approbation pour proposer des listes d’autorisation
  • Politique d’approbation intelligente personnalisable (approvals.smart_policy)
  • Disjoncteur de refus consécutifs — trois refus consécutifs forcent l’arrêt de la boucle
  • Les commandes de redirection du démon Docker/podman nécessitent désormais une approbation supplémentaire
  • Commande de mode d’approbation multi-surfaces
  • Approbations de couplage desktop : profil correct, avec une surface appropriée pour répondre

Mise en cache des prompts et performance du chemin critique

  • Schémas d’outils mis en cache sur Anthropic natif sans perte d’historique
  • Mise en cache des prompts DeepSeek sur les passerelles OpenCode
  • Comptabilisation des tokens par appel API hors du fil du tour
  • Client OpenAI réutilisé à travers les appels LLM séquentiels
  • Canonicalisation des appels d’outils du chemin d’envoi mémorisée

Fournisseurs et modèles

  • Fournisseur Vercel AI Gateway + backend terminal Vercel Sandbox de retour, modernisé (SDK 0.7.2, télémétrie désactivée)
  • Gemini 3.1 Pro + 3.6 Flash dans les catalogues ; cluster de secours Gemini
  • claude-opus-5 dans OpenRouter et Nous Portal
  • deepseek-v4-flash-0731 intégré
  • Mise en cache des prompts de l’API Bedrock Converse (cachePoint)
  • Sélecteur de modèle : valeurs par défaut organisées + fournisseurs repliables + tout sélectionner
  • Caches périmés servis instantanément avec rafraîchissement en arrière-plan

Délégation et sous-agents

  • Métadonnées structurées de timeout/stall + statut en direct par enfant dans /agents
  • Les sous-agents peuvent utiliser execute_code
  • Historique d’outils enfants caviardé exposé dans subagent_stop
  • API publique de cycle de vie des sous-agents pour les plugins

Desktop — D’une application de chat à une plateforme de développement

Capacités de la plateforme

  • Artifacts : fiches versionnées + aperçu en direct sandboxé dans le visualiseur du panneau droit
  • SDK de plugins : Kanban comme premier plugin desktop ; ctx.download remet des fichiers aux utilisateurs ; SDK widget-app (état + réducteur + rendu) ; moteur de grille de widgets + moteur de thème adaptatif au fond
  • Fenêtre d’entrée rapide : raccourci global → n’importe quelle session
  • Fenêtres GUI multiples : sessions parallèles côte à côte
  • Placement en panneau flottant — des panneaux n’importe où
  • Mode de connexion SSH au backend distant
  • Laissez l’agent piloter le shell (panneau d’aperçu + focus de panneau) ET inspecter l’application desktop qu’il construit

Composeur et UX

  • Joindre des fichiers/dossiers/liens via le sélecteur ; puces de composeur @path et lien collé
  • Pile d’annulation du composeur ; double-Échap rejette le brouillon ; double-Entrée envoie le tour en file d’attente
  • Changement de modèle en 2 touches (⌘⇧M) ; YOLO dans ⌘K avec état de bascule en direct
  • Séparateurs de date dans la barre latérale + section épinglée + archivage automatique des sessions inactives sur opt-in
  • Ligne d’activité d’outils groupée avec mise à jour en direct ; les liens @session se résolvent en titres cliquables
  • Réactions emoji style iMessage (opt-in, bidirectionnelles) ; double-clic pour aimer
  • Notifications de consommation de crédits
  • Connexion native desktop RFC 8252 (navigateur système + PKCE, pas de cookies webview)
  • Bascule garder-l’ordinateur-éveillé + indicateur de veille dans l’encoche

Performance desktop — Vague 2 des 60 fps

  • Coût du streaming indépendant de la longueur de la transcription — reste fluide quelle que soit la durée de la conversation
  • 60 fps sur des sessions réelles (épingles à reflux contrôlé, vidange adaptative)
  • 60 fps en glisser-déposer avec cinq onglets en streaming
  • Timers des panneaux masqués mis en pause, boucles de défilement/statut arrêtées dans les sessions occupées
  • CPU au repos proche de zéro en arrière-plan
  • Brassage de rendu de la barre latérale et des superpositions éliminé
  • ⌘K s’ouvre instantanément
  • Démarrage à froid du moteur de rendu : shiki/mermaid restent hors du chemin de démarrage
  • Diagnostics d’état (compteurs de brassage de rendu + store) + règle lint interdisant les refs en miroir d’atomes
  • Suite E2E Playwright avec diffs de régression visuelle

CLI, TUI et Runtime

Commande/Fonctionnalité Description
!command Shell le plus rapide — aucun tour de modèle consommé
/init Analyse le projet → génère/met à jour AGENTS.md
/diff Trois vues de diff — staged / tous / session
/context Décomposition précise de la fenêtre de contexte
/focus Vue à sortie réduite + récupération des lignes masquées
Ctrl+S Range une invite dans un panneau consultable
/goal Indicateur d’objectif persistant
hermes import-agent Migration en une commande depuis Claude Code / Codex CLI
Clarification multi-sélection Interaction par cases à cocher sur CLI/passerelle/TUI
Ligne de résumé par tour + flux de tokens en direct dans le spinner Progrès transparent
SDK de thème multi-surfaces Un seul thème pour CLI, TUI et desktop
hermes -w démarrage à froid ~14s → ~1,8s
hermes update sans opération 2–6s plus rapide
Runtime Node 26 sur tous les installateurs ; canaux brew/pip/PyPI retirés (installateur shell / Docker / Nix conservés)

TUI : le sélecteur de modèle ne détruit plus votre brouillon, le menu slash commence par vos compétences les plus utilisées, les pièces jointes vivent dans le composeur. Locale arabe (ar) avec RTL sur desktop/tableau de bord/agent.


Passerelle, plateformes et relais

Nouvelles plateformes

  • Buzz : messagerie basée sur Nostr de Block avec transport WebSocket natif + authentification NIP-42
  • Photon : sondages natifs, effets, clarification sous forme de sondage, liens enrichis (récupération en 4 PRs)
  • Fournisseur Vercel AI Gateway + backend terminal Vercel Sandbox de retour
  • Slack : boutons natifs Block Kit de clarification ; déclencheurs de réaction sur opt-in ; assainissement de la charge utile sortante
  • Discord : sessions de fil automatique indexées sur prospective_thread_id ; références de réponse construites à partir des ids
  • WhatsApp : accusés de lecture entrants configurables
  • Kanban : les réveils reprennent la session DM/fil du créateur ; les réveils kanban/délégation atteignent les sessions api_server

Parité des phases du relais

  • Phase 1 : découverte supported_ops, champs d’identité, alias /handoff
  • Phase 2 : médias
  • Phase 3 : invites interactives
  • Phase 4 : cycle de vie des fils
  • Indicateurs de frappe sortants

Synchronisation des compétences HSP

  • Client personnel (M1) + client de compétences d’organisation (M2) + espace de noms de compétences d’organisation avec découverte protégée par token

Fiabilité de livraison

  • Pulsations d’activité de session, chien de garde de blocage, attentes de compression bornées — remis en place et renforcés après une révocation en cours de fenêtre
  • Consolidation de SessionState : 19 dictionnaires indexés par session → un seul objet à portée tour/conversation/persistante

Compétences, plugins et MCP

Nouveautés et mises à jour

  • A2A v1.0 : plugin de protocole Agent-à-Agent (clôture #514)
  • Compétence grounded-citations : citations de sources + mode fact-checking
  • Curator : expose les compétences non gérées + curator adopt
  • Compétences Office intégrées : docx, xlsx, pdf + PowerPoint rafraîchi
  • Le dégraissage de l’arbre de compétences continue : yuanbao, segment-anything, jupyter, heartmula, audiocraft → compétences optionnelles
  • Compétence de script tldraw-offline
  • simplify-code v1.1

MCP

  • Entrée de catalogue Comfy Cloud avec 20 outils par défaut organisés
  • Démarrage paresseux des serveurs MCP — à partir d’un cache de schémas d’outils sur disque indexé par empreinte ; les serveurs configurés ne démarrent plus tous au lancement de la session
  • Avertissements d’espaces masqués dans la configuration MCP
  • Intégration d’observabilité NeMo Relay (remise en place sur la version stable 0.6)

Sécurité et fiabilité

Renforcement des identifiants et secrets

  • Pare-feu de sortie d’injection d’identifiants par proxy de fer (remis en place)
  • Récupérations DNS-pinned protégées contre SSRF + liste d’autorisation CDN Slack
  • Caviardage strict aux limites de compaction
  • ReDoS éliminé dans les motifs de caviardage des clés de configuration
  • Lectures d’identifiants de niveau 3 limitées
  • Épingles de dépendances CVE rafraîchies
  • Vague de renforcement Windows : classe de bugs de décodage de sous-processus en mode texte fermée à l’échelle du dépôt, flashs de console masqués, lacunes d’encodage résiduelles (stdio MCP, E/S de mise à jour de passerelle, STT/TTS, démarrage desktop)
  • Source de secrets pour l’assistant de commandes (compatible avec tous les coffres)
  • Parité ${env:VAR} SecretRef entre config.yaml et la configuration MCP

Intégrité des sessions et de l’état

  • Quatre correctifs d’état de session (suivi de fermeture sécurisé, correctif de classe de curseur de vidange, nouvelle tentative de ligne, réparateur de PK d’utilisation)
  • Disposition FTS compacte v23 + hermes sessions optimize + FTS bigramme CJK
  • Chemin de lecture divisé avec connexions en lecture seule par thread
  • Renforcement du fournisseur de mémoire OpenViking
  • Pool d’identifiants : restauration primaire consciente des réinitialisations + correctifs de verrouillage de rafraîchissement différé

Mise à niveau

hermes update

Pour les nouvelles installations :

# macOS / Linux / WSL2
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

# Windows (PowerShell)
iex (irm https://hermes-agent.nousresearch.com/install.ps1)

Si vous venez de Claude Code ou de Codex CLI, la migration se fait en une seule commande :

hermes import-agent

Journal des modifications complet sur GitHub

← Hermes Agent Changelog