Retour au blog

Hermes Agent 0.20 : voix, A2A et desktop

10 août 2026Dedimarco
IA agents voix A2A Nous-Research
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).