Hermes Agent 0.20 : voix, A2A et desktop

Nous Research a publié Hermes Agent 0.20 « Herald » le 3 août 2026. Selon l’équipe, c’est la version la plus ambitieuse de l’histoire du projet. Quatre piliers structurent cette livraison : les conversations vocales en temps réel, le protocole A2A v1.0 pour l’interopérabilité entre agents, le desktop élevé au rang de plateforme à part entière, et une CLI enrichie de commandes de diagnostic. Si vous découvrez le projet, notre comparatif avec OpenClaw d’avril 2026 pose les bases ; ici, concentrons-nous sur ce qui change.
| Fonctionnalité | Catégorie | Impact |
|---|---|---|
| Voix temps réel avec barge-in | Interface | Interaction mains libres, full-duplex |
| Wake words locaux | Confidentialité | Aucun audio envoyé avant l’activation |
| A2A v1.0 (Agent-to-Agent) | Interopérabilité | Agents hétérogènes qui se découvrent et se parlent |
| Agent Card JSON-RPC 2.0 | Interopérabilité | Hermes exposé comme cible pour d’autres agents |
| Webhooks sortants signés HMAC-SHA256 | Sécurité | Intégrité des événements envoyés |
| Recherche avec citations vérifiables | Fiabilité | Fact-checking ancré dans les sources |
| Artifacts avec aperçu live | Desktop | Itération visuelle sans quitter la session |
| Plugin SDK + Kanban | Desktop | Écosystème d’extensions natif |
| Multi-fenêtres + SSH remote | Desktop | Sessions parallèles, pilotage à distance |
| Micro-compaction par tour + /focus | Contexte | Fenêtre de contexte optimisée en continu |
Hermes Agent en bref
Hermes Agent est développé par Nous Research sous licence MIT. Son principe fondateur reste une boucle d’apprentissage fermée : l’agent crée des compétences à partir de l’expérience et les améliore au fil des sessions, avec une mémoire persistante. Tout ce qui suit concerne exclusivement la v0.20 ; pour une vue d’ensemble du projet, reportez-vous à l’article d’avril.
Conversations vocales en temps réel
La v0.20 introduit un mode vocal complet, pensé pour des interactions naturelles plutôt que pour de la dictée classique.
Streaming avec barge-in
Le microphone reste actif pendant la génération ET la lecture audio. Vous pouvez interrompre le modèle en plein milieu d’une phrase : il est notifié de l’interruption et s’arrête. La synthèse TTS fonctionne clause par clause, ce qui réduit la latence perçue par rapport à une synthèse monobloc. C’est du full-duplex : les deux parties peuvent parler en même temps, comme dans une conversation téléphonique.
Wake words on-device
La détection du mot de réveil (« hey hermes » par défaut) se fait localement, sans qu’aucun flux audio ne quitte la machine tant que le wake word n’a pas été détecté. C’est un gain de confidentialité notable par rapport aux solutions cloud. La configuration ressemble à ceci :
# config.yaml — extrait voix
voice:
enabled: true
barge_in: true # l'utilisateur peut couper la parole au modèle
stop_phrases: # phrases qui arrêtent la génération vocale
- "arrête-toi"
- "silence"
- "stop"
wake_word: "hey hermes" # mot de réveil par défaut, détecté localement
tts_engine: "kokoro" # moteur TTS local, clause par clause
A2A v1.0 : des agents hétérogènes qui dialoguent
Le protocole Agent-to-Agent (A2A) est un standard ouvert piloté par la Linux Foundation (a2a-protocol.org). Il est compatible avec LangChain, CrewAI, Google ADK et toute implémentation basée sur le a2a-sdk.
Hermes est bidirectionnel dans ce protocole. D’un côté, il peut appeler d’autres agents via trois outils dédiés : a2a_discover (trouver un agent compétent), a2a_call (lui envoyer une tâche) et a2a_orchestrate (enchaîner plusieurs agents). De l’autre, il s’expose lui-même : une Agent Card est servie sur /.well-known/agent-card.json au format JSON-RPC 2.0, ce qui permet à n’importe quel client A2A de le solliciter.
Côté sécurité, les échanges utilisent des bearer tokens, l’écoute est limitée à localhost par défaut, et un rate limiting ainsi qu’un plafond de tours anti-boucle évitent qu’un agent ne s’emballe dans une conversation circulaire. Cas concret : un agent Hermes spécialisé en rédaction peut déléguer une vérification factuelle à un agent Hermes spécialisé en recherche, sans intervention humaine.
Webhooks signés et recherche ancrée
Webhooks sortants signés
Les webhooks émis par Hermes sont désormais signés en HMAC-SHA256. La version recommandée est V2, avec les en-têtes X-Webhook-Signature-V2 et X-Webhook-Timestamp. Le digest est calculé sur "<timestamp>.<body>", et une tolérance de ±300 secondes protège contre les attaques par rejeu. Voici à quoi ressemble la vérification côté serveur :
import hmac, hashlib, time
def verifier_webhook(payload: bytes, signature: str, timestamp: str, secret: str) -> bool:
# Rejeter si le timestamp est trop ancien (protection anti-rejeu)
if abs(time.time() - int(timestamp)) > 300:
return False
# Recalculer le digest attendu
message = f"{timestamp}.".encode() + payload
attendu = hmac.new(secret.encode(), message, hashlib.sha256).hexdigest()
# Comparaison à temps constant pour éviter les attaques temporelles
return hmac.compare_digest(attendu, signature)
Recherche avec citations vérifiables
Le skill grounded-citations produit des réponses ancrées : les citations sont mises en correspondance avec le texte réel des pages consultées. Un mode fact-checking signale explicitement ce qui est vérifié, ce qui échoue et ce qui ne peut pas être contrôlé. Les notes de version décrivent cette fonctionnalité à haut niveau ; attendez-vous à des détails d’implémentation dans les prochaines versions.
Le desktop devient une plateforme
L’application desktop dépasse le stade de simple terminal graphique.
Artifacts avec aperçu live
Les artifacts sont des cartes versionnées (code, rendu, données). Un aperçu live s’affiche dans un panneau latéral sandboxé, ce qui permet d’itérer sur du HTML, du SVG ou du code exécutable sans quitter la conversation.
Plugin SDK
Un véritable SDK de plugins émerge, avec le Kanban comme plugin fondateur. L’API expose ctx.download pour récupérer des fichiers et des panneaux flottants pour l’interface. Les détails complets du SDK sont encore en cours de documentation.
Multi-fenêtres
Vous pouvez ouvrir des sessions parallèles dans des fenêtres séparées. Une fenêtre quick-entry accessible par raccourci global permet de poser une question rapide sans changer de contexte. Un backend SSH permet de piloter Hermes installé sur une machine distante, ce qui est pratique pour un serveur de développement ou un GPU cluster.
CLI : mode shell et nouvelles commandes
La CLI gagne des commandes qui évitent de gaspiller des tours de modèle pour des opérations triviales :
! ls -la src/ # exécute une commande shell sans consommer de tour de modèle
/init # analyse le projet et génère/met à jour AGENTS.md
/diff # affiche les changements (staged, session)
/context # détaille ce qui remplit la fenêtre de contexte
/focus # vue réduite avec récupération des lignes masquées
Le préfixe ! est particulièrement utile : il exécute une commande système sans dépense de tokens. Notez aussi Ctrl+S pour le prompt stashing (sauvegarder un prompt en cours pour le reprendre plus tard) et hermes import-agent qui migre les configurations depuis Claude Code ou Codex CLI.
Compression de contexte plus intelligente
La gestion du contexte progresse avec une micro-compaction par tour : au lieu d’une pause géante ponctuelle, le coût est amorti à chaque interaction. Le pruning proactif des résultats d’outils libère de l’espace en continu. Une queue garantie de messages utilisateur récents (compression.min_tail_user_messages) préserve le fil de la conversation, et des seuils par modèle (compression.threshold_tokens) adaptent la compression au modèle utilisé. Des marqueurs [SKILL_PRUNED] signalent quand une compétence a été élaguée pour éviter qu’elle ne hante la session silencieusement. Tout cela reste transparent pour l’utilisateur.
Conclusion
Avec la v0.20, Hermes Agent passe du statut d’agent terminal à celui de plateforme complète : voix, desktop, interopérabilité A2A. Si vous cherchez un agent vocal local ou si vous voulez orchestrer des agents hétérogènes, cette version mérite un test. Le protocole A2A, soutenu par la Linux Foundation, pourrait bien devenir le standard de facto pour l’écosystème d’agents IA — et Hermes est positionné dès maintenant comme un nœud bidirectionnel de cet écosystème.
Sources : GitHub release v2026.8.3, docs A2A, docs webhooks, docs voice-mode, a2a-protocol.org (consultés le 2026-08-10).