v0.17.0

Hermes Agent v0.17.0 — La version Reach


Aperçu

v0.17.0 — La version Reach. Publiée le 19 juin 2026. ~1 475 commits · ~800 PRs fusionnées · 1 693 fichiers modifiés · 235 390 insertions · 50 730 suppressions · plus de 300 issues fermées · 245 contributeurs de la communauté.

La v0.16.0 a installé Hermes sur votre bureau. La v0.17.0 concerne l’étendue de cette portée — à travers de nouveaux endroits pour lui parler, plus profondément dans les outils que vous utilisez déjà, et vers les personnes qui font tourner Hermes pour une équipe. Deux nouveaux canaux de messagerie sont arrivés (iMessage via Photon, réseau d’agents Raft). L’application de bureau s’est considérablement approfondie. Les sous-agents peuvent désormais s’exécuter en arrière-plan. La génération d’images a appris à éditer. Le modèle Composer de Cursor est accessible via un abonnement xAI Grok. Le tableau de bord a reçu un constructeur de profil complet et une connexion sécurisée. Le Skills Hub a été entièrement repensé. L’outil memory a gagné des opérations batch atomiques. Et le curator ne dépense plus de budget de modèles auxiliaires sur les exécutions de routine. Sans oublier une revue de sécurité et plus de 300 issues fermées.


Fonctionnalités majeures

1. iMessage via Photon Spectrum — Sans relais Mac

Hermes parle désormais iMessage via le pool de lignes géré de Photon. Plus besoin d’un Mac dans un placard faisant tourner un relais, plus de pont BlueBubbles à surveiller.

# Authenticate with device-code OAuth
hermes photon login

# Hermes is now on iMessage — gRPC-native channel (no webhook)
# Markdown rendering, emoji reactions, outbound media via spectrum-ts

Construit sur un canal gRPC natif sans dépendance webhook, prenant en charge le rendu Markdown, les réactions emoji et les médias sortants. Il se positionne comme le successeur de BlueBubbles : gratuit pour démarrer, rien à auto-héberger. Si vos amis et votre famille vivent dans les bulles bleues, Hermes y vit désormais aussi. (#32348, #42582, #44713)

2. Raft — Hermes rejoint le réseau d’agents

Un nouvel adaptateur de plateforme Raft inclus permet à Hermes de se connecter à Raft en tant qu’agent externe via un pont wake-channel. Définissez RAFT_PROFILE, lancez le pont, et Raft peut réveiller Hermes pour traiter les messages — avec une conception privacy-by-contract où les charges utiles de réveil ne contiennent que des métadonnées (IDs d’événements, horodatages), jamais le contenu des messages. (#48210)

export RAFT_PROFILE=my-hermes-agent
hermes raft bridge

3. Une application de bureau considérablement plus puissante

La v0.16.0 a livré l’application de bureau ; la v0.17.0 l’a approfondie à travers des dizaines de PRs. Le bureau est désormais un outil quotidien sérieux.

Raccourcis clavier reconfigurables et notifications natives du système d’exploitation avec bascules par type.

Fenêtres de surveillance des sous-agents en direct :

When you delegate a task, a dedicated pane streams the subagent's
activity in real-time — tool calls, outputs, progress. You can
watch what it's doing without switching context.

Sélecteur de modèle Composer avec préréglages par modèle — exposez chaque fournisseur/modèle de hermes model dans l’interface graphique. Direction automatique du texte RTL/bidi. Un panneau de terminal redimensionnable avec thème VS Code. Brouillons Composer par fil de discussion.

Installez n’importe quel thème du VS Code Marketplace directement dans l’application — assignable par profil. Curseur de translucidité de fenêtre. Système de design unifié pour les superpositions.

Fonctionnalités de bureau supplémentaires :

  • Sélecteur de session style Mac (^Tab / ^1-9)
  • Historique par touches fléchées + édition de file d’attente dans le composeur
  • Développer la commande complète en ligne depuis la barre d’approbation
  • Suivi du défilement en bas + bouton pour revenir en bas
  • Tâches cron de première classe dans la barre latérale
  • Regroupement de la barre latérale sensible aux worktrees
  • Barres latérales repliées révélées au survol
  • Dossiers de sources de messagerie dans la barre latérale
  • Animaux de bureau — superposition pop-out + notifications
  • Changement de langue japonais + chinois traditionnel
  • Action « Redémarrer la passerelle » dans la barre d’état

Améliorations de la passerelle distante :

  • Relais média distant — joignez des images/PDFs et affichez les images générées par l’agent sur le réseau pour la première fois
  • Pièces jointes distantes via file.attach
  • Boutons de version client + backend avec flux de mise à jour distante
  • Parcourir les fichiers du backend distant
  • Récupérer la conversation après veille/réveil en revalidant le backend distant obsolète

4. Sous-agents en arrière-plan / asynchrones — Déléguez et continuez

delegate_task(background=true) lance un sous-agent qui s’exécute en arrière-plan et retourne immédiatement un handle. Vous et le modèle continuez à travailler pendant qu’il turbine, et le résultat complet réintègre la conversation comme un nouveau tour dès qu’il se termine.

# Background delegation — non-blocking
/delegate_task "Research the entire competitor landscape" --background

# You keep working. When the subagent finishes, results arrive as a new turn.

Fini d’attendre bloqué sur une longue recherche ou une construction en plusieurs étapes. Lancez-la et passez à autre chose. (#40946, #46968)

5. Édition image-à-image — Pas seulement de la génération

image_generate peut désormais éditer et transformer une image source, pas seulement en créer une à partir de zéro. Passez une image existante et un prompt — l’outil route vers le endpoint d’édition du backend pour chaque fournisseur d’images pris en charge.

# Edit an existing image
image_generate --source logo.png --prompt "Make this logo blue and add a gradient background"

# "Remove the background," "turn this sketch into a render" — all from one tool

Même outil, même modèle que video_generate. (#48705)

6. Blueprints d’automatisation — Planifiez sans apprendre le cron

Choisissez une automatisation par son nom et Hermes vous demande ce dont il a besoin — pas de syntaxe cron, pas de saisie slot=value. Une seule définition de blueprint s’affiche nativement sur chaque surface : un formulaire dans le tableau de bord, une commande slash dans le CLI/TUI/messenger, une conversation avec l’agent, une entrée dans le catalogue de documentation.

# Cron-free scheduling
/hermes automation create "Daily news briefing at 8am"
# Hermes asks: which sources? what format? any filters?
# Done. No "0 8 * * *" anywhere.

« Briefing quotidien à 8h » devient quelque chose que vous configurez en répondant à des questions, pas en mémorisant la syntaxe cron. (#41309)

7. Le modèle Composer de Cursor — Via votre abonnement xAI Grok

grok-composer-2.5-fast est désormais dans le sélecteur de modèle OAuth xAI, avec sa fenêtre de contexte réconciliée aux 200k complets. Composer est le modèle de codage rapide derrière Cursor — et si vous avez un abonnement xAI Grok, vous pouvez désormais pointer Hermes directement dessus via OAuth, sans clé API séparée.

/hermes model:xai/grok-composer-2.5-fast

Votre forfait Grok, la boucle d’agent d’Hermes, la vitesse de codage de Composer. (#47908)

8. Constructeur de profil complet dans le tableau de bord

Construisez un profil Hermes complet depuis le navigateur — choisissez son modèle, sélectionnez ses skills, attachez ses serveurs MCP — sans éditer manuellement config.yaml. Le tableau de bord a unifié la gestion multi-profils en une vue globale par machine avec un sélecteur de profil global. (#39084, #44007)

9. Refonte du navigateur Skills Hub

Le Skills Hub du tableau de bord a subi une refonte complète : hubs connectés, une section En vedette, des aperçus complets des skills avant installation, et un scan de sécurité sur chaque skill. Parcourir et installer des skills depuis des taps de confiance (OpenAI, Anthropic, HuggingFace, NVIDIA) est maintenant une véritable expérience de navigation, pas une simple liste plate. Avec en plus un éditeur SKILL.md sur la page Skills et un sélecteur de skills à attacher dans les fenêtres modales cron. (#40384, #43398)

10. Outil Memory — Opérations batch atomiques

L’outil memory a gagné un tableau operations qui applique un lot d’éditions add/replace/remove de manière atomique par rapport au budget final de caractères. Le modèle peut libérer de l’espace et ajouter de nouvelles entrées en un seul appel — même quand un ajout seul dépasserait le budget.

{
  "operations": [
    { "action": "remove", "key": "old-deprecated-fact" },
    { "action": "add", "key": "new-important-fact", "value": "..." },
    { "action": "replace", "key": "updated-fact", "value": "..." }
  ]
}

Ce qui était une danse fragile sur plusieurs tours est maintenant une opération fiable en une seule fois. (#48507)

11. API officielle WhatsApp Business Cloud

En plus du pont Baileys existant, Hermes communique désormais via l’API officielle WhatsApp Business Cloud — le chemin de première partie, hébergé, sans processus de pont de Meta. Pointez-la vers vos identifiants Business API et Hermes parle WhatsApp via le canal pris en charge, sans processus de pont par scan QR à maintenir en vie. (#44331, #43921)

12. Texte enrichi pour Telegram — Bot API 10.1

Les réponses Telegram s’affichent désormais comme de véritables messages enrichis via Bot API 10.1 : meilleur formatage, gestion plus propre des longs messages, balisage natif au lieu de texte aplati. Toujours actif avec une option de désactivation. Plus un indicateur de statut En ligne/Hors ligne du bot activable. (#44829, #45584)

13. Optimisation des coûts du Curator — Zéro token sur les exécutions de routine

Le curator de skills élague désormais les skills obsolètes par défaut mais n’exécute plus son passe de consolidation alimentée par LLM sauf si vous l’activez (curator.consolidate: true ou hermes curator run --consolidate). Le balayage déterministe d’inactivité continue de fonctionner gratuitement ; la branche « construire des skills parapluie » qui dépensait du modèle auxiliaire est maintenant désactivée par défaut. La curation de routine en arrière-plan vous coûte zéro token. (#47840)


Refactorisation des god-files — Effort massif de qualité de code

Cette version a livré l’une des plus grandes refactorisations de l’histoire d’Hermes, décomposant trois god-files monolithiques en modules ciblés :

Fichier Avant Après Ce qui a été extrait
cli.py main() 3 297 lignes 954 lignes 28 analyseurs de sous-commandes → hermes_cli/subcommands/ ; 32 gestionnaires de commandes slash → CLICommandsMixin ; 18 fonctions d’assistant de flux de modèles → model_setup_flows ; cluster de construction d’agent → CLIAgentSetupMixin
gateway/run.py 19 157 lignes 15 870 lignes 42 gestionnaires de commandes slash → GatewaySlashCommandsMixin ; cluster d’autorisation → GatewayAuthorizationMixin ; boucles du watcher kanban → GatewayKanbanWatchersMixin
Boucle de tour run_agent.py Prologue extrait dans TurnContext ; queue post-boucle dans finalize_turn ; drapeaux de récupération de boucle de reprise consolidés dans TurnRetryState

Nouveaux outils intégrés et commandes

Outil / Commande Description Utilisation
/version Affiche la version actuelle d’Hermes /version
/billing Vue interactive de facturation dans le terminal (TUI + CLI) /billing
image_generate (édition) Édition image-à-image sur tous les backends image_generate --source img.png --prompt "make it blue"
memory (ops batch) Tableau atomique add/replace/remove contre budget de caractères Voir l’exemple JSON dans la Fonctionnalité majeure 10
search_files (densifié) Densification sans perte — moins de tokens par résultat, mêmes correspondances search_files --pattern "*.py"
read_file (notebooks) Extrait .ipynb/.docx/.xlsx en texte read_file notebook.ipynb
file.attach Pièces jointes pour passerelle distante file.attach ./report.pdf
Blueprints d’automatisation Planification sans cron via modèles nommés hermes automation create "Daily briefing"
write_approval Porte booléenne remplaçant write_mode à trois états pour les écritures mémoire/skill Config : write_approval: true
session:compress Événement de cycle de vie du plugin lors de la compression de session Hook de plugin
Plugins Hub (TUI) Superposition interactive activer/désactiver Superposition TUI

Support des fournisseurs et modèles

  • Nouveaux modèles : z-ai/glm-5.2 (contexte 1M vérifié), anthropic/claude-fable-5, laguna-m.1 + nemotron-3-ultra, xAI Composer 2.5 dans le sélecteur OAuth
  • Sélecteur de modèles : contrôle Rafraîchir-les-modèles pour invalider le cache obsolète ; persister les modèles recommandés Nous sur disque ; amorcer le cache disque du catalogue depuis le checkout lors de la mise à jour ; MiniMax-M3 rapporte un vrai contexte 1M
  • Modèles adaptatifs Anthropic : contrat de thinking moderne par défaut ; ne jamais envoyer le champ reasoning ; router reasoning_effort vers la verbosité ; exiger une confirmation pour les sélections très coûteuses
  • Améliorations d’authentification : auto-détection des identifiants OpenRouter depuis le pool ; maintenir les comptes du pool Codex OAuth distincts ; résoudre xAI OAuth à travers les profils ; honorer model.default_headers pour les fournisseurs personnalisés
  • Bedrock : bascule vers InvokeModel non-streaming quand IAM refuse la variante streaming
  • Ollama : max_tokens=65536 par défaut ; expose les refus de modèle comme content_filter

Améliorations de l’architecture centrale

Boucle d’agent et outils :

  • search_files densification sans perte — moins de tokens par résultat, mêmes correspondances
  • Suppression de l’outil send_message appelable par l’agent (consolidation)
  • Posture de contexte de codage à travers CLI/TUI/bureau/ACP
  • Gestion des fichiers de contexte : limite de troncature configurable + avertissements ; adaptation à la fenêtre du modèle
  • Compression : ancrage temporel dans les résumés de compactage ; élévation du déclencheur à 85% pour gpt-5.5 sur Codex OAuth
  • Middleware adaptatif (consommé par la télémétrie de l’observateur NeMo-Relay) ; pilotage utilisable en cours de tour

Sessions, état et multi-agent :

  • Plafond de session maximum optionnel ; suppression des sessions vides à la sortie du CLI
  • Métadonnées de provenance de session ACP pour la rotation de compression
  • Délégation : résoudre les pools de sous-agents à endpoint personnalisé par identité d’endpoint ; suppression du délai d’expiration par défaut
  • Kanban : auto-abonnement configurable sur kanban_create ; verrou singleton global par machine pour le dispatcher embarqué ; épingler les outils du profil assigné pour les workers
  • Mémoire : portées de conservation d’observation Hindsight configurables ; UX de configuration OpenViking ; arbre d’identité Honcho contrôlé par passerelle ; ingestion au niveau session Supermemory

Plateformes de messagerie

Nouveaux canaux :

  • iMessage via Photon Spectrum — OAuth device-code, gRPC natif, sans webhook
  • API WhatsApp Business Cloud — officielle, sans processus de pont
  • SimpleX — groupes, pièces jointes natives, groupage de texte, acceptation automatique
  • Raft — plugin de plateforme inclus avec hooks d’activité

Cœur de la passerelle et rendu :

  • Appels d’outils du terminal rendus comme blocs de code bash natifs sur les plateformes markdown
  • Horodatages de messages optionnels pour le contexte LLM
  • tool_progress_grouping configurable

Améliorations par plateforme :

Plateforme Amélioration
Telegram Messages enrichis Bot API 10.1 (toujours actifs) ; indicateur de statut En ligne/Hors ligne ; les longues réponses streamées ne sont plus coupées ; MarkdownV2 sur les éditions de progression
Discord Propagation role_authorized pour DISCORD_ALLOWED_ROLES ; récupération après sortie de tâche de passerelle d’exécution ; arrêt de la saisie après les réponses
Slack Portée des messages de canal de premier niveau quand reply_in_thread=false ; UX d’approbation dans les fils ; pièces jointes vidéo disponibles pour les agents ; API plugin register_slack_action_handler
Signal/Email/Teams Pièces jointes de documents correctement classifiées ; médias en réponse inclus
WhatsApp Redémarrage des processus de pont obsolètes
Matrix Isolation du contexte de salon
QQbot Correction de la boucle CPU
Weixin Disjoncteur de limite de débit

CLI, TUI et configuration

  • Commande slash /version ; /billing facturation interactive dans le terminal
  • Affichage du temps depuis la dernière réponse finale de l’agent dans la barre d’état
  • Persistance des invites d’approbation/clarification résolues dans le défilement
  • Verrouillage des worktrees Hermes pour que les processus concurrents ne puissent pas interférer
  • Clonage de profils depuis n’importe quelle source
  • Parcours de construction de profil structuré activable au premier contact
  • Indices de prompt système configurables par plateforme
  • Notifications de mémoire/skill en arrière-plan configurables
  • TUI : superposition interactive Plugins Hub activer/désactiver ; nom de session dans la barre de titre du terminal ; retour à la ligne des longues commandes d’approbation au lieu de les tronquer
  • TTS : prompts de persona Gemini + balises audio ; xAI balises audio automatiques + vitesse/streaming ; Piper speaker_id ; OGG pour l’auto-TTS Telegram

Système d’outils, Skills et MCP

  • édition image-à-image dans image_generate sur tous les backends ; réduction automatique aux limites de dimension du fournisseur
  • MCP : serveur MCP officiel Unreal Engine 5.8 dans le catalogue ; gestionnaire d’élicitation pour que les serveurs MCP puissent demander une confirmation en cours d’appel d’outil (paiement/OAuth) sur la surface qui possède la session ; exposition des outils MCP connectés tardivement entre les tours ; ping keepalive pour les sessions HTTP à TTL court ; blocage des configurations stdio suspectes/exfiltration ; contrôle par capacité de tools/list
  • Skills : skill simplify-code (revue de code et nettoyage parallèle à 3 agents) avec application par niveau de risque ; trouver et diff les skills groupés modifiés par l’utilisateur ; skills de paiement optionnels (Stripe Link, MPP, Projects) ; progression de parcours en direct par source
  • Plugins : installation depuis un sous-répertoire dans un dépôt ; acceptation des URLs GitHub collées depuis le navigateur dans hermes plugins install ; événement de cycle de vie session:compress + thread_id/chat_type dans le contexte de l’agent
  • Porte d’approbation d’écriture mémoire/skill (désactivée par défaut) — booléen write_approval remplace write_mode à trois états

Flotte, Relais et Automatisation

  • Portée gérée — configuration et secrets épinglés par l’administrateur, immuables par l’utilisateur depuis /etc/hermes appartenant à root
  • Multiplexage de tous les profils sur un seul processus de passerelle (activable)
  • CronScheduler enfichable + fournisseur de cron géré Chronos (scale-to-zero)
  • Relais passerelle-à-passerelle (phases 0-3) : adaptateur de relais + descripteur de capacité, authentification de canal connecteur⇄passerelle + entrée HTTP signée, entrée WS uniquement, client d’auto-provisionnement managed-boot

Docker, Nix et Installateur

Docker :

  • s6 : détection directe du superviseur pour le redémarrage de la passerelle ; enregistrement des passerelles de profil sans démarrage automatique ; nettoyage des verrous de log obsolètes
  • Optimisation de la taille de l’image (.dockerignore, suppression des dépendances de dev, séparation des couches) ; pré-installation des dépendances matrix ; passerelle supervisée utilise --replace ; durcissement de l’arborescence d’installation hébergée

Nix :

  • Corrections de build npm à froid + workflow auto-fix-lockfiles
  • Dépendances npm sans hash via importNpmLock
  • Actualisation de npmDepsHash après l’épinglage d’Electron 40.10.2

Installateur :

  • Nettoyage de l’index git non fusionné avant l’autostash
  • Portée du marqueur de méthode d’installation limitée à l’arborescence de code

Windows

  • Onglet /chat du tableau de bord via ConPTY (win_pty_bridge)
  • Résolution de l’hôte PowerShell au lieu de powershell brut pour l’installation uv
  • Résolution de powershell.exe par chemin absolu pour que l’installation Desktop ne bloque pas
  • Réparation de l’enregistrement winget obsolète + actualisation/fusion du PATH
  • Arrêt d’Hermes avant de recréer le venv pour libérer le verrou _bcrypt.pyd
  • Lecture de HERMES_HOME depuis le registre quand l’environnement est obsolète
  • Fiabilité du watcher JOB-breakaway + sondes de statut --deep
  • Décodage de la sortie des sous-processus en UTF-8

Sécurité et Fiabilité

  • Échec fermé sur les adaptateurs de passerelle à politique propre
  • Échec fermé pour l’authentification par bouton d’approbation sur Slack/Feishu/Discord quand aucune liste d’autorisation n’est définie
  • Masquage des secrets dans les dumps de débogage des requêtes ; rétention des métadonnées d’hôte dans le statut public
  • Blocage des configurations stdio MCP suspectes/exfiltration avant la sonde
  • Fermeture du contournement de liste noire d’échappement shell + échec fermé sur module d’approbation manquant
  • Nettoyage de l’environnement de l’opérateur avant le lancement du MCP cua-driver
  • Assainissement de l’environnement pour les sous-processus de scripts de tâches cron
  • Limitation de la longueur/contenu du TodoStore
  • Analyse des prompts cron REST pour parité avec l’outil agent
  • Mise à jour de urllib3 et PyJWT pour corriger les CVE
  • Langfuse masque les URIs de données base64

Corrections de bugs notables

  • Encodage en pourcentage des composants d’URL non-ASCII
  • Assainissement de : dans les requêtes FTS5 pour que les recherches avec deux-points ne retournent pas silencieusement vide
  • Préservation du contenu multimodal de l’utilisateur à travers la persistance de résilience aux crashes
  • Aplatissement du contenu multimodal avant la synchronisation du fournisseur
  • Ré-entrée dans la boucle de reprise sur un vrai 429 de Nous pour que le garde de repli s’exécute
  • Portée des tags Nous limitée aux appels auxiliaires Nous
  • Cron : ne pas analyser strictement la sortie injectée par script dans les tâches sans skills
  • Cron : résoudre le fournisseur par tâche « custom » vers providers.custom
  • Cron : réparer la propriété cron au redémarrage du conteneur

(Plus de 300 issues fermées dans cette fenêtre — la liste complète des correctifs par domaine est exhaustive.)


Réversions dans cette fenêtre

  • Skill html-artifact + pli sketch/architecture-diagram/concept-diagrams (#48899) — révoqué (#49053)
  • Support de profil par tâche cron révoqué (#43956)
  • Contournement Nix patchPhase révoqué (#42151)

Mise à niveau

hermes update

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


Journal des modifications complet sur GitHub

← Notes de version