v0.15.0

Hermes Agent v0.15.0 — La Release Véloce


Aperçu

v0.15.0 — La Release Véloce. Publiée le 28 mai 2026. 1 302 commits · 747 PR fusionnées · 1 746 fichiers modifiés · 282 712 insertions · 36 699 suppressions · plus de 560 tickets fermés (15 P0, 65 P1, 19 tagués sécurité) · 321 contributeurs de la communauté.

C’est la release où Hermes est devenu radicalement plus rapide — au démarrage, à l’exécution, pour livrer du travail et pour grandir. Le fichier run_agent.py de 16 083 lignes s’est réduit à 3 821 (-76 %), redistribué en 14 modules cohérents dans le répertoire agent/*. Kanban a évolué d’un simple tableau de tâches vers une véritable plateforme multi-agents : décomposition automatique par l’orchestrateur, topologie en essaim, tâches planifiées, worktree par tâche, surcharge de modèle par tâche — 104 PR de bout en bout. session_search a été entièrement reconstruit pour être instantané et gratuit. La défense Promptware est arrivée pour contrer les attaques de type Brainworm. Bitwarden Secrets Manager a remplacé chaque clé API par fournisseur par un seul jeton d’amorçage. Deux nouveaux fournisseurs image_gen, les packs de compétences, ntfy comme 23ᵉ plateforme de messagerie et une intégration approfondie de xAI viennent parachever l’une des releases les plus ambitieuses à ce jour.


Fonctionnalités Majeures

1. Le Grand Remaniement — run_agent.py passe de 16k à 3,8k lignes

C’est le fait d’armes d’ingénierie de cette release. Le fichier au cœur d’Hermes — la boucle de conversation de l’agent — est passé de 16 083 lignes à 3 821 (-76 %). Le code extrait a été redistribué en 14 modules cohérents dans le répertoire agent/. Rien que la fonction run_conversation faisait 3 877 lignes avant le remaniement.

Ce qui importe, c’est l’impact : chaque extraction conserve un forwarder minimal sur AIAgent, chaque chemin de correctif de test est préservé et chaque appelant externe reste compatible. Le fichier qui prenait 90 secondes à charger dans votre éditeur s’ouvre désormais en un clin d’œil. Les auteurs de plugins peuvent enfin parcourir le code avec grep. Le développement futur d’Hermes avance plus vite.

# Le code source est désormais navigable — explorez les entrailles de l'agent :
ls agent/
# agent/loop.py        agent/conversation.py  agent/tools.py
# agent/memory.py      agent/review.py        agent/compression.py
# ... et 8 autres modules cohérents

2. Kanban Devient une Véritable Plateforme Multi-Agents

104 PR ont transformé Kanban d’un tableau de tâches en une couche d’orchestration multi-agents de qualité production. Voici tout ce qui a changé :

Orchestration et Répartition :

  • Décomposition automatique au triage — déposez une tâche, l’orchestrateur la décompose en un arbre de sous-tâches. Plus besoin de planifier manuellement votre décomposition.
  • Topologie en essaim en une commandehermes kanban swarm crée un graphe Swarm v1 complet : racine → workers parallèles → vérificateur gardien → synthétiseur gardien, tous connectés via un tableau noir partagé.
  • Agents de revue sont dépêchés depuis la colonne de revue — le travail terminé reçoit une revue automatique avant d’atterrir.
# Créez une topologie en essaim complète pour un travail complexe
hermes kanban swarm --title "Construire l'API"

# Surveillez vos workers en temps réel
hermes kanban inspect

Configuration et Planification des Tâches :

  • Surcharge de modèle par tâche — utilisez des modèles économiques pour les tâches standard, des modèles puissants pour les sous-tâches difficiles. Une configuration par carte de tâche.
  • Heures de début planifiées — programmez une tâche pour qu’elle démarre à 3 h du matin le mardi. Utile pour les traitements par lots et les fenêtres de maintenance.
  • Répertoire de travail par défaut au niveau du tableau — chaque tâche du tableau hérite d’un répertoire de travail, sauf indication contraire.
  • Chemins worktree et branches configurables — chaque worker s’exécute dans un worktree git isolé.
  • Limite de concurrence max_in_progress — limitez le nombre de tâches exécutées simultanément par tableau.
  • TTL de revendication, empreinte de nouvelle tentative, détection de tâches périmées et gardes anti-renaissance empêchent les tempêtes de workers.
# Exemple de configuration par tâche
tasks:
  - title: "Refactoriser le module auth"
    model_override: "claude-sonnet-4-20250514"  # modèle puissant pour le travail difficile
  - title: "Mettre à jour la doc"
    model_override: "gpt-4.1-mini"              # modèle économique pour le standard
  - title: "Sauvegarde nocturne"
    scheduled_at: "2026-06-01T03:00:00Z"

Tableau de Bord et Fiabilité :

  • Zone de suppression par glisser-déposer + suppression groupée.
  • Points de terminaison de visibilité worker : /workers/active, /runs/{id}, /inspect.
  • Les tâches cron inter-profils apparaissent dans le tableau de bord.
  • Empreinte des erreurs de crash pour éviter l’épuisement des nouvelles tentatives à l’échelle de la flotte.
  • Finition UX du tableau de bord mobile pour la gestion nomade.

3. session_search Reconstruit — 4 500× Plus Rapide, Gratuit

L’ancien session_search était un outil à LLM auxiliaire qui coûtait environ 0,30 $ par appel, prenait environ 90 secondes pour résumer trois sessions et confabulait parfois des résultats quand la bonne session n’était même pas dans les résultats de recherche.

Le nouveau session_search est un seul outil avec trois modes (discovery, scroll, browse) inférés à partir des arguments fournis — pas de paramètre mode, pas de LLM auxiliaire, pas de bouton de configuration, pas de compétence compagnon.

Discovery : ~20 ms (était ~90 s)  →  4 500× plus rapide
Scroll :    ~1 ms                  →  instantané
Coût :      0,00 $                 →  entièrement gratuit
# Mode Discovery — trouvez des sessions passées pertinentes
session_search(query="refactorisation auth utilisateur")

# Mode Scroll — parcourez le contenu des sessions
session_search(session_id="abc123", scroll_offset=0)

# Mode Browse — plongez dans une session spécifique
session_search(session_id="abc123", browse=True)

4. Défense Promptware — Attaques de Type Brainworm Bloquées

Inspirée par les recherches récentes sur la chaîne d’attaque Brainworm / Promptware Kill Chain, Hermes défend désormais la fenêtre de contexte contre les attaques par injection de prompt qui tentent de détourner l’agent via la sortie d’outil, la mémoire rappelée ou les compétences stockées.

Trois couches de défense :

  1. Source unique de véritétools/threat_patterns.py avec environ 15 nouveaux motifs Brainworm/C2 partagés dans tout le code d’analyse.
  2. Analyse de la mémoire au chargement — la mémoire rappelée est analysée avant d’entrer dans la fenêtre de contexte.
  3. Délimiteurs de résultats d’outils — les fichiers malveillants ou les services distants ne peuvent plus usurper les instructions système d’Hermes.

Associé à un nouveau plugin security-guidance qui détecte par motif les écritures de code dangereuses avant leur exécution.

5. Bitwarden Secrets Manager — Un Seul Jeton Remplace Toutes les Clés API

Arrêtez de stocker des clés API en clair dans ~/.hermes/.env. Bitwarden Secrets Manager s’intègre nativement — bws s’auto-installe paresseusement à la première utilisation et vous configurez Hermes avec un seul jeton d’amorçage :

# Définissez votre jeton d'accès Bitwarden
export BWS_ACCESS_TOKEN="votre-jeton-d-amorcage"

# Hermes récupère toutes les credentials depuis Bitwarden au démarrage
hermes chat

Fonctionnalités clés :

  • Faites tourner une clé dans l’application web Bitwarden → la rotation prend réellement effet. Bitwarden est la source de vérité par défaut, écrasant les variables d’environnement correspondantes au démarrage.
  • Les credentials sont étiquetées avec leur source pour que vous puissiez voir quelles clés proviennent de Bitwarden plutôt que de l’environnement local.
  • URLs des serveurs Bitwarden EU Cloud et auto-hébergés prises en charge.
  • Passez secrets.bitwarden.override_existing: false pour laisser les variables d’environnement locales prendre la priorité.

6. Packs de Compétences — Une Commande Slash, Plusieurs Compétences

Un pack de compétences est un groupe nommé de compétences qui les charge toutes ensemble avec une seule commande slash. Configurez votre pack « journée d’écriture » et /writing-day active tout pour la session.

# Définissez un pack dans votre configuration
# Puis activez-le avec une seule commande :
/writing-day
# Charge : humanizer + ideation + obsidian + youtube-content

Améliorations du Skills Hub :

  • Contrôles de santé et badges de fraîcheur sur chaque compétence.
  • Une tâche cron de surveillance maintient vos compétences installées à jour.
  • Trois nouvelles compétences optionnelles : code-wiki (LLM-Wiki de Karpathy, wiki de développement indexé et persistant), openhands (déléguez à OpenHands pour des agents de codage parallèles) et web-pentest (recettes de pentest web OWASP).

7. Intégration Approfondie de xAI

Six améliorations xAI imbriquées :

Fonctionnalité Description
Recherche Web xAI Nouveau fournisseur plugins/web/xai/ — réutilise votre OAuth Grok existant ou XAI_API_KEY, pas de nouvelle variable d’environnement
hermes proxy amont xAI Point de terminaison local compatible OpenAI adossé à xai-oauth — pas de code PKCE à écrire dans votre client
Détection de retrait de modèles grok-4, grok-3 et autres modèles retirés détectés au démarrage avec hermes migrate xai pour une migration de configuration en une fois
Pauses TTS naturelles auto_speech_tags optionnel insère des balises [pause] entre les paragraphes pour une voix plus naturelle
Sécurité base_url base_url de xai-oauth épinglée à l’origine x.ai — ferme un vecteur de fuite de credentials
Guidage d’exécution Les modèles Grok reçoivent la même discipline d’exécution spécifique à la famille que GPT/Codex — empêche de déclarer une tâche terminée sans appel d’outil
# Migrez depuis les modèles xAI retirés
hermes migrate xai

# Vérifiez quels modèles sont encore actifs
hermes doctor

8. Génération d’Images Krea + Architecture de Plugin FAL

Deux nouveaux fournisseurs image_gen débarquent et l’architecture devient plus propre :

  • Krea 2 Medium (0,03 $) et Krea 2 Large (0,06 $) — auto-découverts, sélectionnables via hermes tools → Image Generation → Krea.
  • Backend FAL.ai porté d’un outil monolithique vers plugins/image_gen/fal/ — désormais un seul fichier, pas un fork. Les nouveaux fournisseurs d’images sont à un plugin près.

9. ntfy — 23ᵉ Plateforme de Messagerie

ntfy rejoint la famille en tant que 23ᵉ plateforme de messagerie — un service de notifications push auto-hébergeable sans inscription, sans clé API, juste une URL de topic. Votre agent peut vous envoyer des notifications push depuis n’importe quelle tâche cron, achèvement de tâche kanban ou appel send_message — sur votre téléphone, montre, bureau ou homelab.

# Votre agent vous envoie une notification quand une tâche kanban se termine :
# "Tâche 'Refactoriser auth' terminée — 3 fichiers modifiés, 45 tests réussis"

# Le tout via une seule URL de topic ntfy, sans compte requis

10. Orchestrateur de Session TUI

L’interface TUI Ink gagne une superposition de changement de session active. Listez, basculez entre, rafraîchissez et fermez plusieurs sessions en direct au niveau du processus sans quitter l’interface. Lancez une nouvelle session avec un sélecteur de modèle limité à la session. Plus des préréglages de mode DEC de suivi de souris, la préservation du scrollback, des améliorations de rendu de saisie IME et plus encore.


Performance

La vague d’optimisation du démarrage à froid s’est poursuivie avec quatre séries d’améliorations majeures :

Optimisation Impact
Import différé de openai._base_client -240 ms, -17 Mo à chaque invocation CLI
Optimisations du chemin critique de la boucle d’agent 47 % d’appels de fonction en moins par tour (399k → 213k pour une conversation de 31 tours)
Vérification de faisabilité de compression différée -170 à -290 ms par construction d’agent
Scrutation adaptative des sous-processus ~195 ms par appel d’outil, plus d’1 seconde par tour

Résultats de benchmark :

  • Démarrage à froid Termux : 2,9 s → 0,8 s (sur appareils mobiles)
  • hermes --version à froid : 701 ms → 258 ms (-63 %)
  • Comparaison directe contre Codex CLI : passe de 5/11 à 6/11 victoires

Sécurité et Fiabilité

Promptware et Durcissement de la Mémoire

  • Défense Promptware avec motifs de menace partagés, analyse de la mémoire au chargement et délimiteurs de résultats d’outils.
  • Fichiers du plan de contrôle Hermes protégés contre l’injection de prompt (auth.json, config.yaml, webhook_subscriptions.json, mcp-tokens/).
  • Interdiction d’écriture sur <root>/.env lors de l’exécution sous un profil.
  • Défense en profondeur : interdiction de lecture sur les magasins de credentials.

Sécurité des Credentials

  • Les clés API provenant des variables d’environnement d’exécution ne fuient plus dans auth.json.
  • base_url de xai-oauth épinglée à l’origine x.ai — vecteur de fuite de credentials fermé.
  • Jetons OAuth périmés mis en quarantaine en cas d’échec de rafraîchissement (xAI, Codex, MiniMax).
  • inference_base_url du Portail Nous validée par rapport à une liste blanche d’hôtes.

Chaîne d’Approvisionnement

  • Audit de la chaîne d’approvisionnement à la demandehermes audit vérifie les dépendances par rapport à OSV.dev.
  • hermes update valide la syntaxe des fichiers critiques après la récupération, retour arrière automatique en cas d’échec.

Nouveaux Outils et Commandes Intégrés

Outil / Commande Description
session_search Reconstruit — trois modes (discovery/scroll/browse), gratuit, 4 500× plus rapide
hermes kanban swarm Crée une topologie multi-agents Swarm v1 complète en une commande
hermes migrate xai Migration en une fois depuis les modèles xAI retirés
hermes audit Audit de la chaîne d’approvisionnement à la demande via OSV.dev
hermes proxy Nouvel amont xAI — point de terminaison local compatible OpenAI adossé à xai-oauth
/exit --delete Supprime la session en quittant
/update Commande slash pour mettre à jour Hermes depuis le CLI/TUI

Agent Cœur et Architecture

Boucle d’Agent et Conversation

  • Repli en couches pour les tâches auxiliaires (primaire → chaîne → agent principal → échec gracieux) sur les erreurs de capacité (402/429/connexion).
  • État de nouvelle tentative/repli en mémoire tampon — affiché uniquement en cas d’échec terminal (pas de bruit « nouvelle tentative… » en cours d’exécution).
  • Contrat hôte pour les moteurs de contexte externes.
  • Repli immédiat sur les blocages de politique de contenu du fournisseur.
  • Vérificateur de résultat d’outil par tour pour l’outil patch — préservation de l’indentation, préservation CRLF, escalation d’échec par fichier.
  • Vision native à bouton unique pour les modèles de fournisseurs personnalisés.
  • Récupération face aux fournisseurs renvoyant du contenu d’outil de type liste.
  • ContextVars propagés aux threads workers d’outils concurrents.

Sessions et Mémoire

  • Persistance de platform_message_id pour le rappel entre les redémarrages de passerelle.
  • Les mentions de contexte mémoire en ligne restent visibles dans la conversation.
  • La mémoire rappelée est étiquetée comme informative et non autoritaire.
  • L’injection d’outils mémoire + moteur de contexte est conditionnée par enabled_toolsets.
  • Protection contre la dérive externe dans MEMORY.md / USER.md.
  • Cartographie des pairs d’exécution Honcho avec assistant de configuration et documentation.

Maturation Codex / Responses-API

  • Chien de garde TTFB pour les flux Codex Responses bloqués.
  • Indication exploitable lorsque le détecteur d’appel périmé se déclenche sur un motif connu de rejet silencieux.
  • Abandon de l’assistant SDK responses.stream() — consommation directe des événements.
  • Le quota Codex 429 est désormais classé comme limite de débit et non comme credentials manquantes.

Plateformes de Messagerie (Passerelle)

  • Mode livrable — les agents livrent des artefacts sous forme de téléchargements natifs depuis n’importe quelle plateforme (Slack/Discord/Telegram/Teams/Email).
  • hermes send — redirigez la sortie de n’importe quel script vers n’importe quelle plateforme de messagerie.
  • Adaptateur Discord migré en plugin groupé.
  • Adaptateur Mattermost migré en plugin groupé.
  • Telegram : modification des messages de statut sur place, chemin audio sans STT, acheminement des documents image via le pipeline de vision, authentification limitée au chat, disable_topic_auto_rename configurable.
  • Signal : filtre require_mention pour les discussions de groupe.
  • Matrix : avertissement sur les pertes silencieuses de messages dues au décalage d’horloge + ensemble complet de dépendances E2EE.
  • Feishu : exiger un secret d’authentification webhook + imposer l’authentification pour les boutons d’approbation.
  • DingTalk : transcription des notes vocales natives.
  • WeCom : analyse sécurisée du XML non fiable.

Système d’Outils

  • Tous les fournisseurs de navigateur cloud (Browserbase, Anchor, Camofox, Hyperbrowser) migrés en plugins de style image_gen.
  • Lancement automatique du navigateur de la famille Chromium pour CDP.
  • Mise en cache sur disque des réponses d’URL éphémères xAI.

MCP

  • Catalogue MCP approuvé par Nous avec sélecteur interactif — hermes mcp présente un catalogue organisé de serveurs validés par Nous, installation en une frappe.
  • Support des certificats clients TLS (mTLS) pour les serveurs MCP HTTP et SSE.
  • Repli de collage stdin pour le flux OAuth headless.

CLI et TUI

  • Commande slash /update dans le CLI et le TUI avec retour arrière automatique en cas d’échec de vérification syntaxique.
  • Flag --branch pour hermes update.
  • Indicateur ▶ N dans la barre de statut pour les tâches /background en cours.
  • Seuils de réduction de collage configurables (TUI + CLI).
  • /resume accepte les numéros de position.
  • Orchestrateur de session TUI — plusieurs sessions en direct dans une seule fenêtre TUI.
  • Préréglages de mode DEC mouse_tracking + préservation du scrollback entre les branches et Termux.
  • Profil actif affiché dans l’invite TUI.
  • Copie dans le presse-papiers sur linux/wayland.
  • Texte complet de l’assistant dans le scrollback (pas de troncature d’historique).

Docker

  • Supervision de conteneur s6-overlay — protocole ServiceManager (backends systemd/launchd/Windows/s6), supervision de passerelle par profil, réconciliation au redémarrage du conteneur.
  • Mise à niveau de Node vers 22 LTS via construction multi-étapes depuis node:22-bookworm-slim.
  • Intégration du SHA git au moment de la construction dans l’image pour le rapport hermes dump.
  • hermes update affiche des instructions docker pull à l’intérieur du conteneur.
  • Découverte du binaire Chromium du navigateur agent au démarrage.

Mise à Niveau

hermes update

Si vous utilisez des modèles xAI retirés le 15 mai, exécutez d’abord la migration :

hermes migrate xai
hermes update

Pour les nouvelles installations, consultez le guide d’installation.


Journal complet des modifications sur GitHub

← Hermes Agent Changelog