Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Vous payez déjà pour de la réflexion dont vous n'avez pas besoin : le reasoning effort dans tous les sélecteurs de modèle Hermes

Facturer un renommage d'une ligne en ultra reasoning effort est le gaspillage le plus courant dans un setup d'agent. La PR #110346 ajoute une étape d'effort sur chaque sélecteur de modèle — hermes model, /model, le TUI Ink, le gateway de messagerie. Voici toute la surface de contrôle : /reasoning, la pastille du composer Desktop, l'effort par tâche dans Settings → Model → Auxiliary, agent.reasoning_overrides, et delegation.reasoning_effort.

Lire la suite

Pourquoi vos outils MCP vous déconnectent sans cesse : dans les coulisses du cycle de vie des tokens OAuth

Figma, Linear et Notion redemandent sans arrêt à Hermes de se reconnecter — et ce n'est généralement pas une erreur de configuration. Voici le cycle de vie des tokens qui se cache derrière : comment des rafraîchissements concurrents déclenchent la détection de réutilisation, pourquoi un refresh token doit rester lié au serveur qui l'a émis, et les quatre correctifs livrés par Hermes.

Lire la suite

hermes profile update supprimait vos skills et vos tâches cron

PR #111344 corrige un bug de perte de données P1 : la mise à jour d'une distribution de profile remplaçait tout le contenu des répertoires skills/ et cron/, effaçant tout ce que l'utilisateur y avait ajouté. Ces répertoires sont désormais fusionnés racine par racine : vos ajouts survivent pendant que les racines livrées par l'auteur continuent de se mettre à jour.

Lire la suite

Hermes v0.21.3 : votre session Desktop ne se déconnecte plus après une veille

v0.21.3 (tag v2026.9.14) est le tag correctif qui transporte les corrections de connexion distante vers les utilisateurs de Docker et du Cloud : des rafales de refresh concurrentes ne révoquent plus toute la session, le refresh s'exécute hors de l'event loop, et les processus de longue durée cessent de fuiter des handles writer state.db en double.

Lire la suite

Vos photos iPhone fonctionnent enfin : le décodage HEIC dans vision_analyze, et les outils de vision qui cessent de disparaître

Envoyer une photo iPhone à Hermes renvoyait une seule ligne : source is not a recognized image. La PR #106408 a ajouté la détection ftyp ISO-BMFF ainsi que la normalisation pillow-heif ; la PR #110136 a corrigé l'empoisonnement de cache qui faisait disparaître les outils de vision dans les processus longue durée.

Lire la suite

Comment terminer un OAuth sur un serveur distant : tunnels SSH, callbacks collés et codes d'appareil

Quand Hermes tourne sur une VM cloud ou derrière un jump box, l'OAuth à redirection loopback (Spotify, serveurs MCP distants) casse sur 127.0.0.1. Trois routes praticables : un forward local SSH, le collage de l'URL de redirection, et les flux device-code ou code à coller.

Lire la suite

169.254.169.254 demande maintenant la permission : Hermes place la récupération des credentials de métadonnées d'instance cloud derrière une approbation

Sur une VM cloud, le service de métadonnées d'instance remet des credentials IAM temporaires à n'importe quel processus local, sans authentification. Depuis la PR #106418, les commandes qui visent 169.254.169.254, fd00:ec2::254, metadata.google.internal ou 100.100.100.200 demandent une approbation au lieu d'être approuvées automatiquement.

Lire la suite

Quand vos doigts frappent Esc : les raccourcis vim pour le composer de la CLI Hermes (et le nom de branche dans votre barre de statut)

Vous tapez un long prompt, repérez une faute de frappe et appuyez par réflexe sur Esc pour la corriger — rien ne se passe. Depuis la PR #106412, display.vim_mode transforme le composer de saisie de la CLI en éditeur de style vi, avec un libellé NORMAL/INSERT/REPLACE en direct sur la barre de statut.

Lire la suite

Hermes v0.21.2 : l'isolation des profils et la fin de la tempête de backends

v0.21.2 ferme sept fuites entre profils, empêche le bureau de lancer un backend par profil et corrige une série de comportements cron, kanban et mémoire qui n'avaient aucun sens.

Lire la suite

Plus besoin de redémarrer : Hermes sert à chaud les profils créés pendant que la passerelle tourne

Il est deux heures du matin, vous venez de créer un troisième profil, vous collez le token du bot, vous écrivez bonjour sur Telegram — et personne ne répond. Le bureau affiche toujours la passerelle de ce profil comme arrêtée. La seule solution documentée était de redémarrer la passerelle, ce qui interrompt les deux autres profils en pleine tâche longue. La PR #109239 change la donne : une passerelle multiplex en cours d'exécution réconcilie désormais son répertoire de profils à chaud. Les nouveaux profils sont servis immédiatement, des identifiants ajoutés plus tard reconstruisent leur adaptateur, les profils supprimés sont démontés et retirés du routage, et un rescan toutes les 30 secondes rattrape les échecs. Fusionnée dans main le 2026-09-12, après la version v0.21.2.

Lire la suite

Hermes demande désormais une approbation avant de désinstaller un paquet

Un paquet npm global ralentit vos builds, vous tapez `npm uninstall -g some-package` et vous appuyez sur Entrée. Deux jours plus tard, il manque dans la CI et tous les projets de cette machine sont touchés. Cette commande passait auparavant sans la moindre demande, car le portail des commandes dangereuses ne connaissait que les primitives shell. Le PR #109170 (déjà fusionné dans main) ajoute une règle package manager uninstall pour npm, pnpm, yarn, pip et brew : les désinstallations demandent maintenant confirmation, alors que les installations et les mises à jour passent toujours. Les règles sont ancrées avec _CMDPOS, donc le texte entre guillemets n'est pas signalé à tort, et une option globale suivie d'un argument ne les contourne pas.

Lire la suite

Hermes MCP include : une liste vide bloque désormais tout, partout

Plusieurs surfaces lisaient tools.include: [] comme *clé non définie*. Depuis la PR #109188, hermes mcp list, hermes mcp configure, hermes tools, la réinstallation du catalogue et le panneau MCP du bureau affichent 0 sélectionné.

Lire la suite

Les tâches cron de Hermes dégradent désormais au lieu d’échouer sur les gateways systemd sans session D-Bus utilisateur

Sur les gateways gérés par systemd qui n’ont pas de session D-Bus utilisateur (conteneurs, LXC allégés, comptes de service sans linger), chaque tâche cron échouait au moment même du dispatch. Le PR #109311 fait dégrader ces tâches : toujours un processus worker externe, simplement sans isolation cgroup, avec un seul avertissement par processus de gateway. Réglez cron.require_restart_safe_scope: true pour retrouver le comportement fail-closed. Fusionné dans main le 2026-09-12 ; pas encore dans une version publiée.

Lire la suite

Commencez à travailler avant de coller une clé API : comment fonctionne l'offre gratuite Hermes et quand se connecter

Une installation neuve de Hermes peut désormais tenir une conversation sans rien de configuré : au démarrage, elle met en place une identité anonyme d'offre gratuite Nous, répond sur un modèle appelé nous/welcome, et les connectors fonctionnent sans compte. Se connecter est quelque chose que vous faites plus tard, quand vous voulez le catalogue complet de modèles et les outils payants (recherche web, génération d'images, TTS, navigateur cloud). Voici ce qu'elle vous donne, ce qu'elle ne donne pas, comment se connecter, comment la désactiver et ce que signifient les messages d'erreur.

Lire la suite

D'où vient réellement « database is locked » : Hermes corrige la contention de verrou, les writers en double et une fausse alerte

Aucun second Hermes en cours d'exécution, et pourtant vous obtenez database is locked ; aucune écriture en attente, et pourtant l'ouverture du stockage de sessions bloque pendant 4 secondes. Une série de correctifs fusionnés le 11 septembre explique pourquoi : le verrou venait de Hermes qui prenait l'autorité d'écriture à chaque ouverture, plusieurs processus n'auraient jamais dû toucher ce fichier du tout, et une alerte « le WAL a disparu » était simplement fausse sur OpenZFS. Voici ce qui a changé et comment vérifier votre propre machine.

Lire la suite

Submergé par les avis « Job Finished » ? Hermes fusionne désormais les tâches de fond déjà terminées en un seul tour

Vous lancez quelques jobs en arrière-plan, vous revenez, et vous trouvez un mur de messages « terminé » — chacun déclenchant son propre tour de modèle, brûlant des tokens et cassant votre fil de pensée. Les surfaces interactives de Hermes fusionnent désormais les tâches de fond déjà prêtes en un seul tour de notification : les échecs restent dans le lot, une tâche seule conserve son texte d'origine, les processus explicitement consommés ne notifient pas du tout, et les watch ainsi que les résultats de subagents restent séparés. Voici le nouveau comportement, ses limites, et pourquoi il ne s'agit pas d'un délai.

Lire la suite