Hermes Agent Lab

Blog Hermes Agent — Guides Pratiques et Analyses

Derniers articles et perspectives.

Pourquoi écrire un gros fichier dans un sandbox échoue toujours

La même écriture de 200 KB passe en local et échoue dans un sandbox Modal, Daytona ou Vercel avec une erreur embedded null byte — ou produit un fichier vide tout en annonçant un succès. Le payload était fourré dans la ligne de commande elle-même : Linux plafonne un argument à environ 128 KiB, et n'importe quel processus de la machine peut le lire. Un correctif fusionné le 2026-09-26 (PR #124206) fait enfin passer stdin par stdin.

Lire la suite

Regardez votre bot travailler — et reprenez la souris quand il tombe sur une connexion

Quand le bot se bloque sur une connexion, une invite 2FA ou un CAPTCHA, vous n'avez plus à deviner ce qu'il voit. Sur un hôte Linux headless, chaque profil dispose désormais de son propre bureau Xfce, diffusé en direct dans Hermes Desktop : regardez-le travailler, prenez la main sur la souris et le clavier, puis rendez le contrôle. Depuis le 2026-09-23, les images officielles embarquent une variante -desktop avec les paquets intégrés.

Lire la suite

Une seule ligne parasite dans jobs.json a stoppé tous vos cron jobs

Les jobs sont tous listés, les plannings semblent corrects, et rien ne s'exécute. Un seul null dans jobs.json faisait lever load_jobs() à chaque tick, entraînant tout le planificateur dans sa chute. Un correctif fusionné le 2026-09-26 (PR #124034) écarte les entrées invalides, répare le fichier sur place et empêche un compteur de répétition null de faire planter une exécution.

Lire la suite

La compaction a avalé le résultat d'outil que votre modèle attendait

Il a exécuté votre suite de tests, produit des milliers de lignes — puis il vous a annoncé qu'il n'avait vu qu'un placeholder tronqué d'une seule ligne, captures d'écran disparues en prime. Trois correctifs fusionnés le 2026-09-26 (PR #124208 / #124207 / #124231) bouchent les trous par lesquels la compaction en cours de tour pouvait détruire exactement la sortie que le modèle s'apprêtait à lire.

Lire la suite

Votre clé API est partie sur le mauvais hôte — Hermes corrige le routage de base_url

Vous avez pointé Hermes vers un relais, un endpoint régional ou votre propre gateway. Sur quatre chemins de code, l'adresse configurée était silencieusement ignorée, et la requête — credential inclus — partait vers l'hôte du fournisseur à la place. Voici ce qui a cassé, comment contrôler votre configuration, et où le correctif arrive.

Lire la suite

L'agent peut désormais entrer dans votre scène Blender — l'intégration officielle avec Blender Lab

Hermes livre un plugin Blender officiel : le serveur MCP de Blender Lab via stdio, relié à votre session en cours sur la loopback. Voici ce qu'il sait faire, les étapes d'installation exactes, le prérequis dont personne ne parle avant qu'il échoue, et la mise en garde de sécurité à lire avant de le pointer sur du vrai travail.

Lire la suite

Le patch qui a réécrit des octets qu'on ne lui avait jamais demandé de toucher

Demandez à l'agent une modification d'une seule ligne dans un fichier qui n'est pas en UTF-8, et l'outil pouvait réécrire toutes les autres lignes aussi — silencieusement, le diff et la relecture de contrôle passant tous les deux par le même chemin avec perte. Deux correctifs fusionnés le 2026-09-25 rendent les écritures de fichiers exactes au niveau de l'octet ; voici comment savoir si votre dépôt a été touché.

Lire la suite

L'agent s'est tu à la quatrième minute — les couches de timeout d'Hermes, expliquées

Un modèle de raisonnement réfléchit quatre minutes et se fait tuer à trois. Un appel provider bloqué survit au run budget qu'il était censé respecter. Un job cron ne se termine jamais. Trois correctifs sont arrivés le 2026-09-25, et voici toute la pile de timeout — valeurs par défaut, planchers, et quel réglage l'emporte.

Lire la suite

Vous avez vu la réponse arriver en streaming — puis elle a disparu : 10 bugs de livraison corrigés par Hermes en une journée

L'échec de streaming le plus grave n'est pas la lenteur, c'est du texte que vous avez déjà lu traité comme s'il n'avait jamais existé : une réponse partielle jetée quand les retries s'épuisent, une réponse interrompue réaffichée en deuxième copie, des réponses dupliquées après un changement de session en plein stream, une jauge de contexte figée pendant tout le tour. Ces correctifs ont tous été fusionnés le 24 septembre 2026 ; voici le mécanisme derrière chacun, avec les numéros de PR et une mise au point honnête sur l'état de release.

Lire la suite

Deux secondes de silence à chaque fois que vous prononcez le mot de réveil — les voix locales ne se rechargent plus

Parlez à Hermes avec un mot de réveil et vous attendez les mêmes deux secondes de silence à chaque fois, parce que la voix était évincée quelques millisecondes après son chargement et le réveil suivant payait le rechargement complet. v0.21.5 ajoute tts.keep_warm_seconds (défaut 60) pour ça, et fait enfin lire votre config par la boucle vocale du desktop pour l'arrêt vocal et la barge-in. La lecture phrase par phrase reste sur main uniquement.

Lire la suite

v0.21.5 sort à nouveau sans release notes — comment auditer ce que votre installation a réellement reçu

v0.21.5 (tag v2026.9.24, publié le 24 septembre 2026) rassemble les 460 PR fusionnées depuis v0.21.4 dans un tag stable, et le corps de la release renvoie la synthèse éditorialisée à v0.22.0. Ce guide s'occupe de la moitié pratique : les commandes qui montrent ce que votre installation contient vraiment, plus les huit groupes de changements de la fenêtre, déjà actifs aujourd'hui et encore documentés nulle part ailleurs.

Lire la suite

Votre alerte est partie dans le chat de groupe — et maintenant une question de suivi y fonctionne vraiment

Les livraisons webhook étaient auparavant fire-and-forget : chaque événement tournait dans sa propre session, donc répondre « est-ce la même panne qu'hier ? » dans ce chat vous valait « à qui faites-vous référence ? ». Depuis v0.21.5, une route peut définir mirror_to_session et le texte livré est écrit dans la session du chat cible comme un tour user étiqueté. Voici comment l'activer, ce qui est exactement reflété, et les trois limites à connaître.

Lire la suite

Quatre crashes sous Windows que seuls les utilisateurs en langue localisée rencontraient

Sur une installation Windows allemande, chaque nouvelle conversation pouvait mourir sur une UnicodeEncodeError ; sous Windows chinois, le log du gateway se remplissait d'échecs de décodage gbk ; les chemins commençant par C:\ pouvaient être ni étiquetés ni prévisualisés ; et un démarrage à froid était déclaré en échec par une sonde de 10 secondes. Quatre bugs indépendants avec un point commun — ils n'apparaissent que sous un Windows localisé. Les quatre sont corrigés dans v0.21.5.

Lire la suite

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