Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Il disait success: true et la pièce jointe n'est jamais partie : Hermes a fermé les deux bouts de la livraison MEDIA

Vous demandez à l'agent d'envoyer son rapport sur Telegram, il annonce un succès, votre collègue ne reçoit rien — le fichier est encore dans le sandbox. L'autre direction est plus subtile : un nom de fichier fabriqué transporté dans un output_path TTS pouvait insérer une directive de livraison supplémentaire dans le résultat. Deux changements fusionnés le 20 septembre (#116842 / #116826) corrigent la moitié manquante et la moitié falsifiée.

Lire la suite

Votre interface de chat auto-hébergée peut enfin regarder l’agent penser

Branchez Open WebUI, LobeChat ou votre propre frontend Vercel AI SDK sur Hermes : vous n’obteniez qu’un spinner vide pendant toute la phase de raisonnement. La PR #115797 relie le flux de raisonnement de l’agent à la surface compatible OpenAI : deltas reasoning_content en direct sur /v1/chat/completions, éléments reasoning natifs de la spec sur /v1/responses, et un drapeau de capacité pour que les clients détectent le support.

Lire la suite

Ce que 40 cycles de compaction font à une session de trois jours

Hermes a mené une évaluation contrôlée sur trois lignées de sessions réelles de 500K tokens, avec 15 questions de rappel chacune : le chemin de production (résumé plus un pointeur de récupération via la recherche de session) atteint 78.9% de rappel tout en ne conservant que 55K tokens, tandis que l’alternative qui garde chaque mot du dialogue obtient un score inférieur en portant 2.1x le contexte — l’espace libéré par cycle passant de 89% à 8% sur 32 à 40 cycles.

Lire la suite

Pourquoi un skill tout neuf renvoie zéro résultat dans une recherche

Une recherche de skills sans filtre est servie par un index central reconstruit périodiquement, si bien qu’un skill publié il y a quelques minutes peut manquer alors même qu’il existe. Les changements du 16 au 18 septembre comblent l’écart : un échec de l’index interroge désormais à nouveau skills.sh, ClawHub, LobeHub et des endpoints bien connus dans un budget de 8 secondes, et la construction de l’index ne laisse plus tomber silencieusement des skills quand un shard expire.

Lire la suite

Piloter son agent depuis un train : guide de terrain du WebUI communautaire

Hermes WebUI est un projet communautaire d’environ 18K étoiles qui transpose les capacités de la CLI dans un navigateur : du Python et du JavaScript vanilla, aucune étape de build, un service lié à localhost par défaut, avec tunnel SSH ou Tailscale pour l’accès depuis un téléphone et, en option, une connexion par mot de passe, passkey ou OIDC. Voici comment l’installer, l’exposer sans risque, et où se situent ses limites.

Lire la suite

Pourquoi l'ouverture d'une liste déroulante vous coûte trois secondes

Un spinner dans le sélecteur de modèle, un `hermes plugins list` qui reste figé, un panneau Profiles qui perd des frames — trois blocages d'apparence indépendants avec une seule cause : le chemin de lecture faisait discrètement des sondages réseau et des parcours du système de fichiers. Les PR #114994, #114811 et #114879 ont sorti le cache, la mémoire des échecs et les refresh de ce chemin.

Lire la suite

Hermes ne récupère plus n'importe quelle URL qu'on lui tend

Des URL d'images renvoyées par un provider de génération, des images de référence fournies par un modèle, les manifests et spritesheets du pet store, des entrées de sitemap skills.sh — aucune de ces URL ne vient de vous. La PR #114887 fait passer sept points de récupération par le garde-fou SSRF déjà présent dans le dépôt : contrôle avant la requête, recontrôle à la connexion TCP (ce qui ferme la fenêtre de DNS rebinding), recontrôle à chaque saut de redirection, et échec en mode fermé sur un 3xx sans en-tête Location.

Lire la suite

La clé API que vous avez affichée une seule fois ne doit pas finir dans un journal de conversation

Deux correctifs ont atterri le même jour pour fermer deux fuites de secrets : la PR #114839 masque intégralement les clés sk- contenant des points et les clés id.secret sans préfixe de Zhipu dans la sortie des outils, et la PR #114789 impose le masquage sur chaque voie de livraison des cron — chat, miroir de session, nom de job, chat de bot — en échouant en mode fermé plutôt qu'en expédiant le texte brut.

Lire la suite

Votre provider de mémoire a quitté le core — la mise à jour le remet en place

Les providers de mémoire intégrés migrent vers les dépôts de leurs mainteneurs et vers le catalogue de plugins. La PR #114569 ajoute deux hooks : hermes update et l'init de l'agent repèrent chacun un provider configuré dont le code a disparu et le réinstallent au pin revu du catalogue. Le nom, la config memory.<name>, le répertoire de données et les noms d'outils ne changent pas.

Lire la suite

1,393 subagents, 19 heures, un seul ordinateur : comment Nous a refactorisé un million de lignes avec Hermes

Un /goal, 19 heures et 1,393 subagents ont retiré 34.4% des lignes de source du propre dépôt de Hermes. Voici les mesures officielles, les neuf choses qui cassent à cette échelle, et la marche à suivre pour reproduire l'opération dans votre propre base de code.

Lire la suite

Un script de 16 KB a gelé un gateway pendant 23 secondes : l'autopsie du scan de commandes

Confiez à Hermes un heredoc de quelques centaines de lignes et votre bot Telegram cesse de répondre — une regex synchrone retient la boucle d'événements. L'issue #113535 et la PR #114208 expliquent le chemin O(n³) et pourquoi la version corrigée aboutit à des verdicts identiques.

Lire la suite

Cessez de laisser les images dévorer votre quota : les deux réglages de vision qui valent la peine

Les images intégrées nativement sont renvoyées à chaque appel API ultérieur, et l'ancienne politique de retrait pouvait réécrire 120 000 tokens d'historique juste pour écarter une image. Les PR #113953 et #113817 ont corrigé les deux et ajouté vision.embed_target_bytes et max_calls_per_image.

Lire la suite

Le second modèle que vous n'avez jamais configuré : la voie d'appel auxiliaire de Hermes

Des titres de session qui deviennent des fragments JSON, des approbations qui cessent d'être intelligentes, une compression interminable avec un modèle local — le coupable n'est souvent pas votre modèle principal, mais l'une des 13 tâches auxiliaires nommées. Voici la forme de la config, les réglages globaux et les correctifs de défaillances silencieuses fusionnés le 17 septembre.

Lire la suite

Votre agent peut réduire en bouillie binaire une base SQLite en service — désormais Hermes refuse l'écriture

write_file et patch lisaient un fichier annexe .db-wal comme du texte ordinaire et réécrivaient la bouillie ainsi obtenue, détruisant en silence une base SQLite en service. La PR #114220 ajoute un garde-fou sur l'écriture des fichiers annexes, au niveau de l'outil. Voici comment les dégâts se sont produits, ce qui a changé, et si votre version dispose du correctif.

Lire la suite

hermes doctor et un gros WAL : un avertissement enfin honnête

hermes doctor vous envoyait vers --fix pour un WAL de plus de 50 MB sans vérifier qui détenait la base. Le PR #113055 rend cet avertissement honnête.

Lire la suite

Pourquoi la mémoire Honcho d'Hermes atterrit ailleurs

Les titres automatiques neutralisaient sessionStrategy et la mémoire se résolvait depuis le dossier de lancement du backend. PR #112602 corrige les deux.

Lire la suite