Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Votre export de profil expédiait vos identifiants cloud

Un tar.gz produit par hermes profile export est censé permettre à un collègue de reproduire votre configuration — mais il transportait aussi les stockages d'identifiants .docker, .azure, .config/gh et .config/gcloud. Deux PR ont comblé la brèche.

Lire la suite

Home Assistant quitte le cœur : ce qui arrive à votre installation

La plateforme de passerelle Home Assistant et ses outils ont quitté le cœur d'Hermes pour un plugin officiel du catalogue — avec une migration automatique qui l'installe par profil, sans toucher aux clés de configuration, variables d'environnement ni noms d'outils.

Lire la suite

Hermes a cessé de croire au dmarc=pass de l'expéditeur lui-même

Un en-tête Authentication-Results est du texte que l'expéditeur peut écrire. Hermes exige désormais un épinglage d'authserv-id et rejette le courrier tant qu'il n'est pas défini — un changement de comportement délibéré avec un correctif d'une ligne.

Lire la suite

La mémoire a un budget : pourquoi elle finit par cesser de se souvenir

La mémoire à long terme d'Hermes a une limite de caractères, et quand elle est pleine les écritures sont ignorées en silence. Le plugin hermes-dreaming ajoute une passe nocturne déterministe qui consigne ce qui compte et met à la retraite ce qui ne compte pas.

Lire la suite

Les plugins tiers sortent du processus principal : dans les coulisses de plugins.isolation: host

Un plugin que vous installiez partageait un seul processus Python avec chaque session, chaque secret et chaque clé en mémoire que vous possédez. Le nouveau plugins.isolation: host donne à chaque profile son propre processus hôte de plugins : aucun changement de code côté plugin, et une courte liste documentée de ce qui ne peut pas déménager.

Lire la suite

Votre agent a écrit dans votre vraie crontab à 2 h du matin : isoler HOME et cron

Un sandbox qui isole HERMES_HOME laisse quand même l'agent écrire dans le vrai répertoire home, la vraie crontab et le vrai bus utilisateur systemd. Trois tâches cron fantômes laissées par un seul run d'eval montrent quelles sorties une histoire d'isolation doit couvrir.

Lire la suite

Faire tourner Hermes dans Codex : une extension MCP communautaire

Éditer du code dans Codex pendant que Hermes exécute vos automatisations implique en général deux fenêtres et une idée perdue en route. Cette extension MCP communautaire intègre les chats, les profiles, le changement de modèle et l'ordonnanceur de Hermes directement dans Codex, les identifiants restant dans le processus bridge local.

Lire la suite

Pourquoi votre export /save perdait des tours — et le plafond derrière cela

La même session pouvait s'exporter entièrement en ligne de commande et se retrouver incomplète dans l'application de bureau, perdant des tours que la compaction sur place avait archivés ; une session très volumineuse pouvait en outre épuiser la mémoire. Le correctif unifie les trois surfaces sur un seul chemin de code et applique le plafond d'export propre à chaque profil.

Lire la suite

Pourquoi les embeds tiers dans l'application Desktop doivent être sandboxés

Comment Hermes isole les embeds X, Instagram et YouTube dans l'application desktop, un problème de sécurité déjà public et son correctif, et l'état des versions aujourd'hui.

Lire la suite

Trois outils dans un seul tool_call : ce n'est plus une erreur, Hermes découpe le lot

Quand un modèle regroupait trois outils MCP dans un seul tool_call, la règle imposant un seul outil local par appel le rejetait et consommait tout un aller-retour. Désormais l'agent découpe le lot en appels individuels avant l'enregistrement du tour.

Lire la suite

Annulé après 11 heures : pourquoi les prompts d'approbation d'Hermes gardent une échéance

Le changement qui faisait attendre indéfiniment vos prompts d'approbation a été annulé la nuit même de sa fusion — non par indécision, mais parce qu'il bloquait une session que personne ne peut venir débloquer. Voici la chronologie et ce qui s'applique réellement aujourd'hui.

Lire la suite

Un seul commit, trois échecs silencieux : la sauvegarde supprimait le mauvais fichier, le JSON était mal écrit, les guillemets aplatis

Un keep négatif supprime votre sauvegarde la plus récente, une écriture laisse passer un NaN, et replace_all aplatit les guillemets typographiques en ASCII — trois bugs qui renvoyaient tous un succès tout en faisant la mauvaise chose. La PR #130619 corrige les trois.

Lire la suite

Le prompt d'approbation qui disparaissait pendant la pause café vous attend désormais

Atteignez approvals.timeout et le prompt expirait, refusant la commande en silence — vous étiez simplement en réunion. PR #130167 garde les prompts du CLI, du TUI et du Desktop ouverts jusqu'à ce que vous répondiez ou interrompiez le tour, tandis que les plateformes de messagerie conservent leur délai de 300 secondes.

Lire la suite

Connecté à un compte Nous — alors pourquoi la recherche rapide gratuite est-elle toujours refusée ?

Trois barrières locales bloquaient la requête avant même qu'elle ne parte : droits payants, un tool pool actif, et une échelle d'autodétection qui ne reconnaissait que Firecrawl. PR #130660 en isole une route de recherche gratuite liée à l'identité — tout compte enregistré y a droit, les invités anonymes conservent le keyless ring, et un échec de recherche de compte échoue en mode fermé.

Lire la suite

Votre quota Codex a rouvert depuis des jours, mais Hermes reste sur le fallback

Une session de longue durée qui reste pin sur son fallback n'appelle jamais la sonde qui détecte une réouverture anticipée du quota : elle y reste donc jusqu'à un redémarrage. La PR #130716 branche cette vérification sur le chemin de restauration — et la freine, pour qu'une sonde qui ment ne fasse pas basculer la session à chaque tour.

Lire la suite

Avant d'ouvrir une PR sur le catalogue de plugins, regardez ce que son gate vérifie réellement

Le gate d'admission du catalogue fait deux choses, mais il est plus pointilleux que vous ne le pensez : une entrée renommée, un subdir qui s'échappe du clone pin, et un sha qui désigne un objet tag sont tous rejetés. La PR #130712 ferme ces contournements — et corrige une règle trop stricte qui aurait fait échouer un tiers des PR du catalogue.

Lire la suite