Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Votre bot a répondu deux fois — le modèle a-t-il tourné deux fois ?

Le delivery ledger marque les renvois ambigus par un préfixe de récupération visible, et deux correctifs mettent fin aux doublons non marqués : un crash en pleine redélivrance n'envoie plus une seconde copie, et un adapter reconnecté ne perd plus son cache de déduplication entrante.

Lire la suite

Votre cron job s'est déclenché une heure trop tôt : le bug DST que Hermes vient de corriger

La nuit où l'on recule les horloges, un cron job avec un fuseau configuré pouvait se déclencher jusqu'à une heure trop tôt — ou une heure trop tard — parce que Python compare à l'heure murale deux datetimes aware d'un même fuseau et ignore fold. Voici ce qui a changé, et comment vérifier vos propres jobs.

Lire la suite

Tout le monde parle de Jev — voici ce que cela change vraiment dans Hermes

Jev est un decision model : du texte en entrée, des réponses probabilistes typées en sortie. Onze plugins Jev figurent déjà au catalogue de plugins Hermes, du gate de jugement avant outil jusqu'à un routeur de modèle et d'effort de raisonnement par tour — voici ce que chacun décide, et ce qui quitte votre machine quand vous l'installez.

Lire la suite

Pourquoi Hermes annonçait que votre run avait coûté 0,00 $

Les runs directs vers OpenAI, xAI, Anthropic, Google et DeepSeek retombent désormais sur le tarif catalogue du fournisseur au lieu d'afficher un coût inconnu ou nul — tandis que les relais, les proxies et les routes par abonnement restent volontairement non tarifés.

Lire la suite

Serveurs MCP adossés à une application : pourquoi Hermes vérifie d'abord que cette application est installée

Un plugin Hermes portable peut désormais déclarer de quelle application locale il dépend : l'installation refuse quand l'app est absente, le runtime ne se fie qu'au fichier d'endpoint vivant que l'app écrit elle-même, et un tool indisponible explique quoi faire.

Lire la suite

Un seul interrupteur, deux bureaux : le mode d'interface Simple / Advanced de Hermes

L'app de bureau a désormais deux modes d'interface. Simple garde la conversation et range la barre d'état, le terminal, les payloads de tool call et l'état des sous-agents ; Advanced est l'app que vous connaissez déjà. Un mode change ce qui est affiché, jamais ce que Hermes sait faire.

Lire la suite

Installer un plugin sans redémarrer le gateway : Hermes le câble à la volée

Un gateway en cours d'exécution câble désormais sur place un plugin fraîchement installé : les commandes slash, les callbacks de boutons et les transforms entrants fonctionnent immédiatement, tandis que les tools et les sections de system-prompt attendent la session suivante et que les serveurs MCP portables attendent un mcp.reload.

Lire la suite

Chaque message lit votre config : Hermes vient de retirer le verrou de ce chemin chaud

Les lectures de config prenaient un verrou global et reparsaient le YAML à chaque fois. Les hits de cache sont désormais sans verrou, et la même lecture qui attendait 2 secondes se termine en moins de 2 millisecondes. Voici pourquoi c'est sûr.

Lire la suite

Épingler des skills dans chaque session : skills.auto_load, pour que l'agent n'oublie jamais votre process

Les skills sont à la demande par défaut : l'agent lit gratuitement les descriptions courtes et ne charge un skill que lorsqu'une tâche l'exige. skills.auto_load change cette étape — les skills listés dans config.yaml sont entièrement chargés au début de chaque nouvelle session, sur la CLI, la TUI, le gateway, le cron et les agents API (PR #92048). La configuration, ce qui la distingue de --skills et des skills locaux au projet, et pourquoi elle ne casse pas votre cache de prompt.

Lire la suite

Apprendre à la CI à lire Hermes : le flux d'événements stream-json plutôt que le scraping d'écran

hermes chat -q "..." --format stream-json émet du JSONL exploitable par une machine — un enregistrement init, du texte en flux, les appels d'outils et leurs résultats, puis une enveloppe result finale qui porte les statistiques de tokens et un code de sortie (PR #90411). Le tableau complet des champs d'événements, la sémantique des codes de sortie (0/1/130/75), les consommateurs jq et Python, et le plafond de 5000 caractères sur lequel il faut compter.

Lire la suite

Vous payez déjà Claude Pro/Max : Hermes peut désormais s'en servir

Le plugin officiel claude-subscription-directsdk fait piloter par Hermes la CLI claude officielle non modifiée, comme client de modèle à portée de requête : la boucle d'agent complète tourne sur votre abonnement Claude Pro/Max, tandis que Hermes garde les outils, les approbations et la compaction. Il exige Hermes 0.21.4+, Python 3.10+, une CLI claude connectée, et embarque un relais d'admission qui transmet exactement une requête amont par appel Hermes.

Lire la suite

Un seul gateway par hôte : la migration multiplex-only, trois incidents réels et une checklist d'après mise à niveau

Depuis la v0.21.4, Hermes ne fait plus tourner un gateway par profile : un gateway hôte par utilisateur OS sert tous les profiles (PR #118273 / #118097 / #118433). L'ancien interrupteur multiplex_profiles: false est retiré et --standalone a disparu. Voici le chemin de migration, ce qu'il refuse, et les trois incidents réels que la convergence a corrigés — dont un P1 capable de supprimer la mémoire du mauvais profile.

Lire la suite

v0.21.4 sort sans notes de version : voici dix changements déjà à l'œuvre sur votre machine

v0.21.4 (tag v2026.9.21, publié le 21 septembre 2026) est un tag correctif destiné aux consommateurs en aval, et les notes précisent que le récapitulatif complet arrivera avec la v0.22.0. La fenêtre contient 5 071 commits non fusionnés et 1 812 PR fusionnées depuis la v0.21.3. Dix changements de comportement vérifiés, chacun avec la commande ou la configuration qui le déclenche.

Lire la suite

Un disque lent, un assistant figé : Hermes a déplacé à l'arrière-plan trois tâches qui bouchaient l'entrée

Votre sauvegarde nocturne démarre et le gateway cesse de répondre. Ou vous refermez le capot du portable et l'application desktop continue de mâcher un cœur CPU entier. Dans les deux cas, ce n'est pas le modèle qui est lent : la boucle d'événements avait une écriture disque, un sondage de processus et un préchauffage au démarrage en file d'attente devant chaque message entrant. Six changements fusionnés les 18 et 20 septembre (#117206 / #117063 / #117066 / #117201 / #117041 / #116967) les ont sortis du chemin critique.

Lire la suite

Vous avez écrit un plugin provider pour votre propre gateway. Pourquoi Hermes le traite-t-il encore en citoyen de seconde zone ?

Le modèle apparaît et répond correctement, mais le sélecteur n'affiche aucun badge de raisonnement, une image que vous collez passe en texte brut, /usage reste vide et un collègue doit encore copier un token à la main. Rien de tout cela n'est la faute du plugin : le core ne savait que ce que connaissait le catalogue models.dev. Trois hooks fusionnés le 20 septembre (#116570 / #116555 / #116576) rendent au plugin la déclaration des capacités, la remontée d'usage et le login.

Lire la suite

Cinq secondes pour répondre en un mot : trois attentes silencieuses cachées dans la livraison de messages Hermes

Une courte réponse WhatsApp a pris 5 s (Weixin 3 s), un portable éteint a silencieusement jeté chaque commande Telegram envoyée pendant son arrêt, et un canal Discord sans mention ne pouvait jamais créer de fil. Leur point commun : aucune erreur, aucune ligne de log. Trois changements fusionnés les 19 et 20 septembre (#117104 / #116134 / #116168) les corrigent.

Lire la suite