Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Le scan disait safe — puis le simple fait de regarder la skill l'a exécutée

Le skills guard avait trois angles morts : des suppressions destructrices utilisant un tilde nu, aucune règle pour la syntaxe d'auto-exécution inline-shell, et des installations bloquées par le scan qui rapportaient un succès. La PR #128443 corrige les trois et fait passer le scanner en v7.

Lire la suite

Quitter une session a supprimé du code que vous n'avez jamais commité

Le nettoyage à la sortie du worktree ne vérifie que les commits non poussés et ne lit jamais l'arbre de travail, donc git worktree remove --force emporte vos fichiers non commités et non suivis — alors que la doc promet que les dirty trees sont conservés.

Lire la suite

Une mise à jour a rempli un trou de 434 Go dans le disque

Une vérification de version du desktop a parcouru un historique filtré par chemin sur un clone tree:0, laissé 2 659 promisor packs derrière elle et rempli un SSD de 1 To — tandis que le build d'avant le correctif continuait de boucler.

Lire la suite

La clé API de quelqu'un d'autre a tourné dans votre cron job

Un commit de nettoyage UX a supprimé l'isolation des secrets par profile de cron, laissant un routed fire écrire le .env d'un autre profile dans l'environnement du processus partagé. La PR #126982 la rétablit.

Lire la suite

Vous avez collé un dump hermes pour obtenir de l'aide — et il transportait votre propre clé API

Le bundle de debug affichait chaque api_key des provider de fallback ainsi que tout identifiant caché dans une base_url. Les correctifs fusionnés le 2026-09-29 forcent la redaction du dump lui-même et de la frontière d'upload ; voici ce qui est masqué, ce que --no-redact signifie réellement, et comment partager des logs sans risque.

Lire la suite

/rollback a annoncé un succès — et a avalé en silence le travail non commité de votre dépôt imbriqué

Un checkpoint enregistre un dépôt git imbriqué sous forme de gitlink, une référence de commit, jamais sous forme de fichiers. /rollback écrasait donc le travail du sous-dépôt tout en affichant un succès. Un correctif fusionné le 2026-09-29 fait que le rollback refuse avant de modifier quoi que ce soit, et étiquette les checkpoints qui n'ont pas capturé de dépôt imbriqué.

Lire la suite

Config rot : hermes config check alerte désormais sur les sélections renommées, désinstallées et désactivées

Un toolset renommé, un plugin désinstallé, une plateforme désactivée alors que son token est toujours configuré — les sélections enregistrées qui ne se résolvent plus disparaissaient purement et simplement. Désormais, hermes config check les signale, jugées par le même resolver que celui qu'utilise hermes config migrate.

Lire la suite

Le modèle a envoyé un tableau sous forme de chaîne — alors pourquoi seuls certains outils se plaignent ?

Les outils du registre bénéficient d'une réparation automatique des arguments pour la même erreur qui fait échouer clarify, todo_list, memory et session_search : ces outils inline contournent le seul endroit qui corrige les types d'arguments. Un patch fusionné le 2026-09-29 leur applique la même réparation.

Lire la suite

Mixture of Agents expliqué : payer deux fois, obtenir une meilleure réponse

MoA rassemble les opinions de plusieurs modèles en une seule réponse et dépasse d'environ six points son meilleur composant sur le bench officiel. Ce qu'il exécute réellement, qui est facturé, en quoi les trois cadences de fanout diffèrent, et pourquoi la ligne MoA de votre sélecteur de modèle signifie désormais que vous avez vraiment configuré quelque chose.

Lire la suite

Votre plugin ne se charge plus ? Les anciens chemins d'import sont morts le 2026-09-14

La décomposition des modules de septembre a déplacé les internes de Hermes dans de nouveaux fichiers, et la couche de compatibilité qui maintenait les anciens chemins d'import en vie a disparu. Comment diagnostiquer un ImportError, comment le corriger, et quelles surfaces n'ont jamais fait partie du contrat de plugin.

Lire la suite

Pourquoi redémarrer votre gateway vous fait payer deux fois le même cache

Un gateway multiplexé qui paie une écriture de cache complète par profile, un premier message après chaque redémarrage qui se comporte comme un cold start, et un reliquat de /steer qui fait tomber le channel prompt — trois correctifs fusionnés le 2026-09-28, tous à la poursuite de la même chose : un préfixe qui changeait sans raison.

Lire la suite

hermes update se bloque, prétend être à jour ou refuse votre CA — quatre correctifs ont été fusionnés

Des clones superficiels qui expirent, un checkout détaché qui déplace votre code en affichant « Already up to date! », des racines d'entreprise qui n'atteignent jamais git, et des échecs comptabilisés comme des succès. Quatre correctifs de mise à jour fusionnés le 2026-09-28, expliqués.

Lire la suite

La session que vous avez supprimée est revenue : deux bugs et un nouveau garde-fou

Supprimer une session encore en cours était un no-op de la pire façon : l'objet agent restait vivant, chaque tour suivant échouait sur une contrainte de clé étrangère et était abandonné en silence, et sur le bureau la ligne pouvait être ressuscitée par la prochaine écriture. La PR #125157, fusionnée le 2026-09-27, refuse la suppression à la place — en binôme avec le correctif de reconstruction de la #124117.

Lire la suite

« Chat out of date » : quand le bureau refusait chaque envoi

Dans un long chat bourré d'appels d'outils, l'application de bureau pouvait refuser chaque envoi avec « Chat out of date » — et cela survivait au rechargement comme au redémarrage. Rien n'était réellement périmé : un composant libère l'historique au poids, l'autre jugeait la fraîcheur au nombre de messages. La PR #125523 compare désormais la fin du transcript au lieu des totaux.

Lire la suite

190 appels gaspillés et aucun garde-fou n'a bronché

Pour attendre 10 subagents en arrière-plan, un modèle a gardé le tour ouvert avec des appels execute_code sans effet : 190 appels du modèle principal, 31 millions de tokens d'entrée, 49 minutes — et aucune alerte du détecteur de boucle. Le hachage du verdict transportait deux champs de comptabilité qui changent à chaque appel. La PR #124724 supprime exactement ces deux champs.

Lire la suite

Votre adresse figure dans l'allowlist — cela fait-il de vous l'expéditeur ?

Deux correctifs de sécurité fusionnés le 2026-09-27 ont fermé la même classe de faille dans deux gateways : email et SimpleX traitaient tous deux comme une identité un champ que l'expéditeur peut écrire librement. L'un laissait n'importe quel contact se renommer au-delà de l'allowlist ; l'autre laissait un en-tête From: porter une seconde adresse et se faire passer pour vous.

Lire la suite