v0.19.0

Hermes Agent v0.19.0 — The Quicksilver Release (Version Vif-Argent)


Aperçu

v0.19.0 — La Version Vif-Argent. Publiée le 20 juillet 2026. ~2 245 commits · ~1 065 PR fusionnées · ~2 465 fichiers modifiés · ~300 000 insertions · ~36 000 suppressions · ~3 300 issues fermées · plus de 450 contributeurs de la communauté.

Hermès est le dieu messager, et pour cette release, nous l’avons fait se déplacer comme tel. La Version Vif-Argent repose sur une conviction unique : un agent autonome qui semble lent est un agent que vous n’utiliserez pas. Le time-to-first-token du premier tour a chuté d’environ 80 % sur toutes les plateformes — le cold start passe de ~4,3 s à ~0,9 s. Les modèles de raisonnement diffusent leur pensée en direct par défaut. L’application desktop a bénéficié de plus de 20 PR de performance ciblées (markdown en streaming 14× plus rapide, diffs virtualisés, changement de session instantané). L’interface TUI affiche le markdown de manière incrémentale.

Autour de cette colonne vertébrale de vitesse se déploie une release riche en fonctionnalités : facturation depuis le terminal (/subscription et /topup), intégration de gestionnaires de mots de passe (Bitwarden et 1Password), approbations intelligentes (commandes révisées par LLM par défaut), fenêtres de surveillance de sous-agents en direct, un registre de livraison durable qui survit aux pannes de la gateway, et un routage des messages par profil pour les déploiements multi-tenant. De nouveaux fournisseurs (Fireworks AI, DeepInfra) et les modèles frontier les plus récents (GPT-5.6, grok-4.5, kimi-k3, Claude Sonnet 5) complètent le catalogue.

Cette release intègre également tout le contenu des tags de correctifs d’infrastructure v0.18.1 et v0.18.2 — ces fenêtres sont entièrement documentées ici.


Points Forts

1. Hermes est radicalement plus rapide — Premier token en une fraction du temps

La phase cold start « Initializing agent… » prenait auparavant environ 4,3 secondes avant que votre premier tour n’atteigne même le modèle. Elle est désormais d’environ 0,9 s — une réduction de ~80 % qui s’applique au CLI, à la gateway, au TUI, au desktop et au cron.

Ce qui a changé sous le capot :

  • La détection des capacités Discord a été retirée du chemin critique avec un cache disque de 24 heures indexé par token et un rafraîchissement en arrière-plan
  • La sonde Ollama est ignorée pour les fournisseurs connus non-Ollama
  • Le travail bloquant d’initialisation de l’agent a été retiré du chemin critique
  • Mise en cache de la construction des prompts et résolution du fuseau horaire basée sur mtime

Le deuxième tour sur la latence perçue s’est attaqué à ce que vous voyez pendant l’attente :

  • display.show_reasoning est désormais activé par défaut — les modèles de raisonnement diffusent leur pensée en direct au lieu d’afficher un spinner pendant plus de 30 secondes
  • La boîte de réponse s’affiche par token au lieu de par ligne, avec un force-flush adaptatif à la largeur
  • Les lots d’outils mixtes sont désormais segmentés pour récupérer la concurrence perdue
  • La re-sérialisation base64 par appel a été supprimée des estimations de taille de requête

Si Hermes vous a déjà donné l’impression de prendre une profonde inspiration avant de répondre, cette inspiration a disparu.

2. Vague de vitesse Desktop — Plus de 20 PR de performance ciblées

@OutThisLife a mené une refonte de performance ciblée qui rend l’application desktop native en termes de réactivité, même avec des transcripts volumineux et des agents très actifs.

Domaine Amélioration
Markdown en streaming 14× moins de CPU grâce au lexing incrémental par blocs
Rendu des diffs Diffs virtualisés dans le volet de revue — plus de gel complet de Shiki sur les gros fichiers
Changement de session Changement instantané même avec d’énormes conversations, cascade de layout-thrash éliminée
Démarrage Sérialisation réduite + amplification REST par tour supprimée ; préchauffage des backends de profil au survol
Panneaux masqués au boot Montés en idle plutôt que sur le chemin critique du cold start
Re-rendus par token La sidebar et les lignes d’outils ne se re-rendent plus pendant le streaming ; élimination du JSON.stringify immédiat des arguments/résultats d’outils
Profilage Harnais de benchmark de performance systématisé remplaçant 12 scripts ponctuels

L’effet net : l’expérience desktop Hermes la plus rapide et la plus fluide jamais conçue.

3. Gérez votre abonnement Nous depuis le terminal — /subscription et /topup

Modifier votre abonnement impliquait auparavant de passer par le site de facturation. C’est désormais accessible directement dans le terminal :

# Ouvrir le flux complet d'abonnement en TUI ou CLI classique
/subscription

# Ce que vous voyez :
# - Plan actuel et crédit restant
# - Aperçu de mise à niveau : "Pay $46.30 & upgrade now"
# - Date d'effet du downgrade : "Downgrade takes effect on Aug 1"
# - Bannières de changement programmé avec option d'annulation

# Recharger votre compte
/topup

L’application desktop dispose désormais d’un onglet de paramètres de facturation correspondant. Votre portefeuille n’a plus jamais besoin de quitter le clavier.

4. Approbations intelligentes — Commandes révisées par LLM par défaut

Lorsque Hermes souhaite exécuter une commande signalée, un examinateur LLM l’évalue désormais de manière indépendante au lieu de vous demander d’approuver chaque commande une par une. Chaque verdict ne couvre que la commande exacte concernée — une commande ultérieure correspondant au même schéma recevra sa propre nouvelle évaluation.

Le flux de décision :

  • Sûr → auto-approuvé, sans interruption
  • Dangereux → auto-refusé, avec raison journalisée
  • Incertain → escaladé à l’utilisateur pour décision manuelle

Combiné avec les règles de refus définies par l’utilisateur (qui bloquent les commandes même en mode yolo) et /deny <raison> (qui informe l’agent du pourquoi de votre refus pour qu’il corrige sa trajectoire), la fatigue liée aux approbations diminue nettement sans perdre le contrôle.

# Refuser avec une raison — l'agent apprend de votre rejet
/deny that would delete the production database

# Définir des règles de refus dans la config qui bloquent même en mode yolo
deny_rules:
  - pattern: "rm -rf /"
    reason: "Never delete root"
  - pattern: "DROP (DATABASE|TABLE)"
    reason: "Database operations require manual review"

5. Intégration de gestionnaires de mots de passe — Sources de secrets Bitwarden & 1Password

Les clés API n’ont plus besoin de résider dans un fichier .env en texte brut. Une nouvelle interface pluggable SecretSource permet à Hermes de récupérer les secrets depuis Bitwarden et 1Password (références op://) au moment du chargement.

# hermes.config.yaml
secret_sources:
  - provider: bitwarden
    vault: "dev-creds"
    priority: 1

  - provider: onepassword
    vault: "Production"
    priority: 2
    # op:// references resolved at load time:
    # op://Production/OpenAI/credential → OPENAI_API_KEY

Décisions de conception clés :

  • Plusieurs coffres activés simultanément avec précédence déterministe
  • Avertissements de conflit lorsque deux sources fournissent la même variable
  • Traçabilité par variable — vous savez toujours d’où provient un secret
  • Consolidation de onze PR communautaires concurrentes en une seule interface orchestrée
  • Les futurs fournisseurs de coffre (HashiCorp Vault, AWS Secrets Manager, etc.) s’intègrent comme plugins

6. Surveillez vos sous-agents au travail — Transcripts en direct + Délégation durable en arrière-plan

Les sous-agents délégués ne sont plus des travailleurs invisibles disparaissant derrière un spinner.

# delegate_task retourne désormais des fichiers de transcript en direct
/delegate_task "Research competitors A, B, C in parallel"

# Surveillez n'importe quel sous-agent en direct depuis un autre terminal
tail -f /tmp/hermes-delegate-abc123.log
# Chaque appel d'outil, résultat et réponse streamée — un journal lisible par enfant

La délégation durable en arrière-plan signifie que si le processus redémarre en cours d’exécution, les résultats sont restaurés et livrés via un registre vérifié par propriétaire au lieu de disparaître. Lancez une flotte, surveillez n’importe quel worker en direct et ne perdez jamais les résultats.

7. Registre d’obligation de livraison — Réponses résistantes aux pannes

Si la gateway mourrait entre la génération de votre réponse et la confirmation que la plateforme l’a effectivement délivrée, cette réponse était auparavant silencieusement perdue — et vous aviez payé pour le tour. C’est terminé.

Les réponses finales sont désormais enregistrées dans un registre durable dans state.db au moment de l’envoi à la plateforme et re-délivrées au prochain démarrage. Cela comble une fenêtre de perte silencieuse P1 pour Telegram, Discord, Slack et tous les autres canaux de messagerie. Une réponse terminée ne peut plus être perdue.

8. Une Gateway, plusieurs profils — Routage des messages par profil

Une gateway unique multiplexée partageant un seul token de bot peut désormais router des guildes, canaux ou fils de discussion spécifiques vers différents profils — chacun avec une configuration, des skills, une mémoire et des secrets totalement isolés.

# Dirigez votre serveur Discord professionnel vers le profil 'work'
# et votre serveur personnel vers 'personal' — depuis un seul bot
gateway:
  multiplex_profiles:
    - profile: work
      discord:
        guilds: ["123456789"]
        channels: ["987654321"]
    - profile: personal
      discord:
        guilds: ["111111111"]

Une deuxième vague de renforcement du multiplexage garantit qu’un profil mal configuré ne peut plus faire tomber toute la gateway.

9. Nouveaux fournisseurs et modèles frontier

Ajout Détails
Fireworks AI Fournisseur de premier plan avec estimation des coûts, promu n°2 dans les sélecteurs de fournisseurs
DeepInfra Intégration renforcée avec câblage complet du catalogue
Upstage Solar Nouveau fournisseur via récupération communautaire
GPT-5.6 Variantes Sol/Terra/Luna + Pro, câblées de bout en bout sur toutes les routes
grok-4.5 Entrée catalogue GA avec allowlist de reasoning
kimi-k3 Déploiement complet sur Nous Portal, OpenRouter et les endpoints Kimi Coding ; kimi-k2.x retiré
Claude Sonnet 5 Catalogue curé, tarification de lancement, métadonnées sur toutes les routes
Claude Fable 5 Curé aux côtés de Sonnet 5
LM Studio Chargement JIT des modèles pour les configurations locales
Vague catalogue Bedrock Sondage réel des fenêtres de contexte depuis les endpoints actifs ; entrées 1M de contexte pour Claude + Fable génération actuelle

Vous pouvez désormais masquer les fournisseurs que vous n’utilisez pas avec enabled: false par fournisseur ou excluded_providers pour supprimer les entrées indésirables des sélecteurs /model.

10. Effort de raisonnement — Niveaux max et ultra

Le reasoning est désormais un curseur, pas un interrupteur global :

# CLI : contrôle du reasoning limité à la session
/reasoning  # sélecteur interactif : off → low → medium → high → max → ultra

# Remplacements par modèle dans la config
reasoning:
  models:
    "gpt-5.6-sol": ultra
    "claude-sonnet-5": max

# Effort par slot dans les presets MoA — les conseillers réfléchissent intensément, le synthétiseur reste rapide
moa:
  presets:
    deep-council:
      references:
        - model: gpt-5.6-sol
          reasoning_effort: max
        - model: claude-sonnet-5
          reasoning_effort: max
      aggregator:
        model: gpt-5.6-luna
        reasoning_effort: medium

Les niveaux supérieurs de GPT-5.6 et Codex sont entièrement pris en charge avec un plafonnement raisonnable sur les fournisseurs aux échelles plus réduites. Contrôle de l’effort par modèle, par tâche et par slot MoA.


Performance — La colonne vertébrale de vitesse

Latence au premier tour (toutes plateformes)

  • Réduction de ~80 % du TTFT : soumission à froid → dispatch ~4,3 s → ~0,9 s pour CLI, gateway, TUI, desktop et cron
  • Streaming du reasoning activé par défaut : regardez le modèle réfléchir au lieu de fixer un spinner
  • Affichage des réponses par token avec force-flush adaptatif à la largeur
  • Mise en cache de la construction des prompts et résolution du fuseau horaire basée sur mtime
  • Lots d’outils mixtes segmentés pour récupérer la concurrence perdue

Vague de vitesse Desktop

  • 14× moins de CPU sur le splitter via le lexing incrémental par blocs pour le markdown en streaming
  • Diffs virtualisés dans le volet de revue — plus de gel complet de Shiki
  • Changement de session instantané sur les grands transcripts, cascade de layout-thrash éliminée
  • Optimisation du démarrage : réduction de la sérialisation, amplification REST par tour supprimée
  • Préchauffage des backends de profil au survol ; montage en idle des panneaux masqués au boot
  • Élimination des re-rendus par token : sidebar et lignes d’outils ne se re-rendent plus pendant le streaming
  • Harnais de benchmark de performance systématisé

Partout ailleurs

  • TUI : rendu du markdown streamé de manière incrémentale par bloc
  • Découverte des skills mise en cache par signature d’analyse ; construction du manifeste instantané environ 5× plus rapide
  • Préparation des messages en copy-on-write au lieu d’une deepcopy complète
  • Cache de sondage des métadonnées de modèle en cluster pour un changement de modèle plus rapide
  • Gateway : prompts système stables en bytes pour maintenir le cache de prompts actif entre les tours
  • hermes update ignore npm install lorsque les manifestes Node sont inchangés

Fonctionnalités Majeures

Gateway, Flotte et Relais

Registre d’obligation de livraison durable — les réponses finales sont enregistrées dans state.db et re-délivrées au prochain démarrage si la gateway plante avant la confirmation de la plateforme.

Routage par profil — un token de bot, plusieurs profils. Routez des guildes/canaux Discord, des chats Telegram ou des espaces Slack spécifiques vers différents profils avec une configuration, des skills, une mémoire et des secrets isolés.

Contrat de tour par session — empêche le traitement en double du même message. Entonnoir limité à la conversation et limites de réinitialisation de session unifiées.

Maturité du relais — provisionnement générique de credentials client OIDC (sans NAS), profils routés transportés depuis la source du connecteur, contexte de canal consommé depuis le connecteur, forensique d’authentification Nous avec nous_session_valid sur /api/status pour l’auto-réparation hébergée.

Plateformes de messagerie

Plateforme Mises à jour clés
Telegram, Discord, Matrix Sélecteurs de choix intégrés pour /reasoning et /fast — boutons natifs en un clic
WhatsApp Sondages Baileys natifs (la clarification s’affiche comme un sondage), localisations, métadonnées entrantes riches, flux d’appairage dashboard
Discord Récupération des messages manqués lors de la reconnexion ; fils créés automatiquement renommés avec les titres de session ; délai d’expiration configurable de la vue interactive ; mentions optionnelles du propriétaire sur les demandes d’approbation d’exécution
Slack Ligne de statut en direct par outil pendant l’exécution de l’agent
Telegram Allowlist de réponse libre par sujet
Google Chat Invites de clarification affichées sous forme de cartes
Voix Option stt.echo_transcripts ; légendes MEDIA sur les envois autonomes

Application Desktop

  • Architecture shell pilotée par les contributions sur un modèle d’arbre de layout — panneaux, zones et layouts comme données
  • Page Capacités : Skills/Tools/MCP + Hub au même endroit avec navigation overlay responsive
  • Mode de connexion Hermes Cloud avec basculement souple de gateway et amélioration des paramètres de gateway
  • Infobulles de raccourcis clavier + onglet de paramètres de raccourcis + dialogue unifié d’arbre de travail
  • Système de couleurs session + projet — héritage du projet, remplacement par session, partagé entre la sidebar et les onglets
  • Panneau déclaratif du fournisseur de mémoire + modale de configuration complète
  • Fournisseurs TTS/STT définis par la configuration avec paramètres xAI TTS
  • Paramètre d’échelle UI, zoom Ctrl/Cmd+molette, bascule du fond de chat
  • Conversion complète en TypeScript de l’arborescence desktop

CLI et TUI

  • /model --once — remplacement de modèle pour un seul tour avec retour automatique
  • Invocations de slash-skills empilées/skill-a /skill-b do XYZ charge les deux skills dans l’ordre
  • --safe-mode : indicateur de dépannage ; simulation de désinstallation ; échecs TLS avec arrêt rapide et suggestions de correction
  • Alias /compact + indicateurs d’aperçu
  • Hermes Console REPL avec améliorations de performance
  • TUI : support de rafraîchissement du sélecteur de modèle ; bundles de skills personnalisés distribués comme des tours d’agent

Système d’outils, Skills et MCP

  • MCP : convention de nommage mcp__server__tool ; notifications de logs serveur dans agent.log ; OAuth hébergé complété sur Dashboard + Desktop ; redirect_uri/redirect_host configurables pour les configurations proxy/WAF
  • Skills : security/unbroker (suppression autonome des courtiers de données) ; blender-mcp remanié autour de l’entrée catalogue ; skill compagnon unreal-mcp ; expansion du pattern humanizer
  • Navigateur : snapshots complets stockés lors de la troncature ; liste de blocage d’eval optionnelle
  • Kanban : dialogue modal de création de tâche + répertoire de projet éditable ; défilement du tableau par glisser-déposer ; ensemble d’outils de pièces jointes + CLI avec récupération d’URL protégée contre les SSRF
  • Cron : historique d’audit d’exécution durable ; correction de la condition de concurrence de suppression des tâches obsolètes ; TTL de revendication d’exécution dérivé de HERMES_CRON_TIMEOUT

Sessions et export de données

# Exporter les sessions dans plusieurs formats
hermes sessions export --format markdown
hermes sessions export --format html
hermes sessions export --format quarto
hermes sessions export --format prompt-only
hermes sessions export --format hf-trace  # Prêt pour Hugging Face

# Avec masquage des secrets
hermes sessions export --redact

# Filtrer par âge, espace de travail, plateforme
hermes sessions export --older-than 30d --workspace my-project

Votre historique de conversations est désormais un véritable jeu de données, pas une boîte noire.

Secrets et configuration

  • Interface pluggable SecretSource avec fournisseurs Bitwarden et 1Password
  • Commandes hermes config get / unset pour la gestion de la configuration
  • Avertissements de clés de configuration racine inconnues + rapport doctor des clés dépréciées
  • Utilisation des modèles auxiliaires enregistrée par tâche dans la comptabilité de session
  • Tags d’utilisation Nous Portal limités à la conversation pour les appels aux/MoA/délégation

Améliorations MoA

  • reference_max_tokens pour plafonner la sortie des conseillers et réduire la latence
  • Cadence de fanout par preset — user_turn exécute les conseillers une fois par tour utilisateur
  • Presets obsolètes signalés sans nouvelles tentatives ; sauvegardes de presets incomplètes rejetées à la frontière de l’API
  • L’agrégateur résout le reasoning comme un modèle actif

Sécurité et fiabilité

Renforcement de la surface des credentials

  • Credentials Vertex isolés de l’environnement des sous-processus et passant par les portées de secrets de profil
  • Six PR de renforcement P1 récupérées en une seule passe — gardes navigateur, ancrage MEDIA, verrouillage .env, transport ACP de délégation
  • Lectures de fichiers locaux media/vision/image-gen routées via un garde de lecture de credentials partagé
  • Balayage de la limite de corps des webhooks sur tous les serveurs aiohttp
  • Masquage des tokens de bot dans les erreurs de transport Telegram
  • Préfixes de tokens Fireworks ajoutés au rédacteur
  • CI renforcée contre l’interpolation de références non fiables

Masquage et valeurs par défaut sécurisées

  • Faux positifs de recherche de variables d’environnement corrigés pour les champs KEY=value et les champs de configuration JSON/YAML
  • Tokens de bot masqués dans les erreurs de connexion/envoi Telegram
  • Environnement des sous-processus computer_use assaini sur les cinq sites de spawn du pilote CUA

Fiabilité de la Gateway et de l’agent

  • tool_call_id dédupliqué dans les sanitizers pré-API
  • La revue en arrière-plan hérite du reasoning_config parent pour la parité du cache Anthropic
  • Clients Anthropic locaux à la requête pour que le watchdog obsolète/interruption ne corrompe jamais SQLite
  • Erreur 429 de connexion OAuth corrigée — le User-Agent ne doit pas être claude-code/

Sécurité du Dashboard

  • Garde de credentials des fichiers gérés élargie au-delà de .env + écart dans l’arborescence de répertoires comblé
  • TOCTOU des tokens OAuth corrigé avec des écritures atomiques 0o600
  • Les dashboards obsolètes ne peuvent pas recréer des profils supprimés

Réversions dans cette fenêtre

  • Pare-feu de sortie d’injection de credentials iron-proxy — réversé, non livré
  • Skill d’orchestration de workflow dynamique — livré, puis réversé
  • Point d’extension des actions du fournisseur de mémoire — livré, puis réversé
  • Note : l’escalade d’approbation pre_tool_call du plugin a été réversée en milieu de fenêtre mais re-livrée et fait partie de cette release

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)

Journal des modifications complet sur GitHub

← Hermes Agent Changelog