Automatisation IA

Comment utiliser la commande « Hermes /Goal » pour optimiser vos projets

Photo de Steve A Johnson (@steve_j) sur Unsplash

La plupart des assistants IA sont efficaces pour répondre à une seule demande. Ils s'avèrent toutefois moins fiables lorsqu'une tâche nécessite plusieurs étapes de recherche, d'exécution, de test et de correction.

Agents Hermès /but La commande est conçue pour combler cette lacune. Au lieu de considérer chaque réponse comme la fin de l'interaction, elle maintient un objectif actif tout au long de plusieurs tours. Après chaque tour, un modèle d’évaluation léger vérifie si le dernier résultat satisfait à l’objectif. Si ce n’est pas le cas, Hermès se demande de continuer jusqu’à ce que l’objectif soit atteint, que l’utilisateur mette en pause ou annule l’interaction, ou que le nombre de tours autorisés soit épuisé.

Cela fait que /but Utile pour les tâches qui, sans cela, nécessiteraient des instructions répétées telles que “ continuez ”, “ refaites le test ” ou “ terminez les éléments restants ”. Il peut être utilisé pour le codage, la recherche, le traitement des données, les audits et d’autres tâches en plusieurs étapes, à condition que le résultat attendu puisse être défini et vérifié.

Cette commande est moins adaptée aux ambitions vagues, aux décisions délicates ou aux projets qui nécessitent un jugement humain fréquent. Hermès peut continuer à travailler à la réalisation d'un objectif, mais il a tout de même besoin d'une description précise de ce que signifie « achèvement ».

Quoi ? /but modifications réelles

Une invite Hermes standard correspond à un tour d'agent. Le modèle peut faire appel à plusieurs outils au cours de ce tour, mais dès qu'il renvoie une réponse finale, il s'arrête et attend la réaction de l'utilisateur.

Un objectif reste actif après cette réponse.

Lorsque vous saisissez :

/objectif : Corriger tous les tests qui échouent dans le répertoire « tests/hermes_cli/ » et s'assurer que le script « scripts/run_tests.sh » s'exécute correctement pour ce répertoire

Hermès se met immédiatement au travail. À la fin du premier tour, le juge vérifie si l’objectif fixé a été atteint. Si les tests échouent toujours, Hermès entame automatiquement un nouveau tour. Ce processus se poursuit jusqu’à ce que les tests soient réussis, que l’objectif atteigne sa limite de tours ou que le processus soit interrompu.

Le budget par défaut est de 20 tours, mais il peut être modifié dans la configuration. Cette limite est importante car, sans elle, un agent pris dans une boucle improductive pourrait continuer à consommer des jetons, du temps d'outil et des crédits de services externes.

Le système apporte donc une persistance, et non une autonomie illimitée.

Utilisez-le pour les travaux où la ligne de finition doit rester visible

Le plus fort /but Les tâches présentent trois caractéristiques : elles nécessitent plusieurs étapes, Hermès dispose des outils nécessaires pour les mener à bien et le résultat peut être vérifié.

Le développement de logiciels en est un exemple évident :

/objectif : Mettre le projet à niveau vers Python 3.13, mettre à jour les dépendances incompatibles, exécuter l'ensemble des tests et ne s'arrêter que lorsque tous les tests ont réussi.

La condition d'achèvement est précise. Hermes peut inspecter le projet, modifier des fichiers, installer ou mettre à jour des dépendances et exécuter des tests. Une suite de tests réussie atteste que le résultat principal a été atteint.

Cette même logique peut s'appliquer en dehors du domaine de la programmation :

/objectif : Examiner chaque fichier CSV du dossier « reports », identifier les valeurs manquantes et les enregistrements en double, produire une version nettoyée de chaque fichier et créer un rapport récapitulatif répertoriant toutes les modifications.

Ou bien :

/objectif : Effectuer des recherches sur les cinq plus grands fabricants européens de batteries, vérifier leurs derniers chiffres de capacité de production à partir de sources primaires et établir un tableau comparatif accompagné de références.

Ces tâches comportent plusieurs opérations, mais définissent néanmoins un résultat observable.

Un mauvais objectif serait :

/objectif : Améliorer mon activité.

Hermès ne dispose d'aucun critère fiable pour déterminer à quel moment l'activité a été améliorée. L'entreprise peut proposer des idées, continuer à les développer, puis finir par s'arrêter parce que le juge considère qu'une réponse générale est suffisante.

Le problème ne réside pas dans l'intelligence du modèle. C'est l'absence de critère de fin de traitement.

Rédiger un contrat d'achèvement

Hermes prend en charge les contrats d'exécution structurés pour les objectifs nécessitant davantage de précision. La documentation officielle recommande de définir cinq éléments : le résultat souhaité, la méthode de vérification, les contraintes, les limites et la condition dans laquelle l'agent doit s'arrêter et demander des informations.

Vous pouvez demander à Hermes de rédiger cette structure en utilisant :

/goal draft

Conceptuellement, un contrat utile pourrait se présenter comme suit :

Résultat :
Le site web a été compilé avec succès et le formulaire de paiement défectueux fonctionne à nouveau.

Vérification :
Lancez la compilation de production, exécutez les tests de paiement et vérifiez qu’ils sont tous réussis.

Contraintes :
Ne modifiez pas le design visuel et ne supprimez pas les outils d’analyse existants.

Limites :
Ne modifiez que les fichiers situés dans les répertoires src/checkout, tests/checkout et la configuration du package.

S’arrêter lorsque :
Des identifiants de prestataire de paiement, une décision métier ou une modification destructive de la base de données sont nécessaires.

C'est nettement plus sûr que de demander simplement à l'agent de “ régler le paiement ”.

Le résultat indique à Hermès ce qui doit être vrai. La vérification lui indique comment prouver ce résultat. Les contraintes protègent les parties du système qui doivent rester inchangées. Les limites restreignent le champ d'application du système. La condition d'arrêt empêche l'agent d'improviser lorsqu'il parvient à une décision qui devrait revenir à une personne.

Le juge ne peut évaluer que les critères qui lui ont été fournis. Un objectif vague conduit à une surveillance vague.

Utilisez les commandes de contrôle

Une fois qu'un processus est en cours d'exécution, plusieurs commandes vous permettent de l'examiner ou de le contrôler.

/statut du but

affiche l'objectif actif, son état et le nombre de tours utilisés.

/afficher le but

affiche le contrat de réalisation en cours.

/pause de but

interrompt la poursuite automatique sans supprimer l'objectif.

/objectif : CV

relance la boucle et remet à zéro son compteur de tours.

/but marqué

supprime complètement l'objectif.

La mise en pause est utile lorsque l'agent se dirige dans la mauvaise direction ou lorsque vous souhaitez examiner des fichiers avant d'effectuer d'autres modifications. L'annulation est plus appropriée lorsque l'objectif lui-même n'est plus valable.

Hermès prend également en charge /sous-objectif, ce qui ajoute un critère supplémentaire à un objectif en cours. Le juge tiendra alors compte à la fois de l'objectif initial et de cette exigence supplémentaire avant de déclarer le travail achevé.

Par exemple :

/sous-objectif : Ajouter des notes de migration au fichier README et vérifier que la configuration précédente reste compatible avec les versions antérieures.

Cela permet d'ajouter une exigence sans pour autant remplacer l'objectif principal du projet.

Préférer la réorientation au redémarrage

Les projets de longue durée se déroulent rarement exactement comme prévu. Hermès propose un /steer commande permettant d'ajouter des instructions pendant que l'agent travaille.

/steer Ne remplacez pas la bibliothèque d'authentification. Vérifiez d'abord la configuration existante.

L'instruction est exécutée après le prochain appel d'outil de l'agent, sans mettre fin à l'exécution en cours ni lancer un nouveau tour d'utilisateur. Cela s'avère utile lorsque vous constatez qu'Hermes adopte une approche indésirable, mais que vous ne souhaitez pas perdre le travail déjà effectué.

Un nouveau message envoyé par un utilisateur lambda peut interrompre la boucle d'objectif automatique. Cela permet à l'utilisateur de reprendre le contrôle, mais cela signifie également qu'une conversation sans rapport avec le projet peut interrompre un projet en cours. Pour les travaux importants, il est généralement préférable de conserver l'objectif dans une session dédiée.

Distinguer les objectifs à long terme du travail planifié

/but vise à atteindre un objectif à long terme. Elle ne convient pas à toutes les formes d'automatisation.

Un objectif tel que “ réparer l'application et faire en sorte que tous les tests soient réussis ” comporte un point d'achèvement. Une demande telle que “ vérifier le site web tous les matins et signaler les pannes ” n'en comporte pas. Cela relève d'une tâche planifiée.

Hermes intègre un planificateur cron pour l'automatisation des tâches récurrentes, ainsi que des sessions en arrière-plan et la délégation à des sous-agents pour les tâches devant s'exécuter séparément ou en parallèle. Son architecture plus large prend en charge l'accès aux terminaux, les plateformes de messagerie, les outils externes et plusieurs fournisseurs de modèles.

La distinction est d'ordre pratique :

  • Utilisation /but pour un objectif s'étalant sur plusieurs tours et qui devrait, à terme, prendre fin.
  • Utilisez l'automatisation programmée pour les tâches récurrentes.
  • Utilisez une session en arrière-plan lorsque vous souhaitez continuer à utiliser la conversation en cours.
  • Utilisez des sous-agents lorsque différents axes de travail peuvent être menés en parallèle.

Essayer de faire en sorte qu'un seul objectif couvre les quatre modèles conduit généralement à un flux de travail moins facile à maîtriser.

Il ne faut pas confondre la persévérance et le jugement

Le modèle « juge » n'examine pas la réalité de manière indépendante, comme le ferait un chef de projet humain. Il évalue le travail de l'agent par rapport à l'objectif et aux éléments disponibles.

Si l'agent signale qu'une tâche a abouti sans avoir effectué de test pertinent, le juge peut accepter un résultat incomplet. C'est pourquoi la vérification doit, dans la mesure du possible, préciser un test exécutable.

Faible :

Vérifiez que l'application fonctionne correctement.

Plus fort :

Exécutez « pytest », « npm run build » et les tests du checkout Playwright. L'objectif n'est atteint que si toutes les commandes se terminent avec succès.

Dans le cadre de la recherche, la vérification peut nécessiter un étalon de référence :

Appuyez-vous sur les documents déposés par les entreprises, les informations fournies par les autorités de régulation et les statistiques officielles. Ne considérez pas les communiqués de presse ni les résumés de seconde main comme une confirmation des chiffres financiers.

Pour la production de contenu, il peut être nécessaire d'établir une liste de contrôle de sortie :

Fournir six articles de 800 à 1 000 mots, chacun présentant un angle d'approche distinct, des sources vérifiées, sans sections en double, et ayant fait l'objet d'une révision finale visant à garantir la cohérence rédactionnelle.

Plus le résultat est subjectif, plus l'intervention humaine prend de l'importance. Un modèle peut confirmer l'existence de six articles. Il est toutefois moins fiable lorsqu'il s'agit de déterminer si ces six articles sont véritablement pertinents ou s'ils se prêtent à une publication.

Limiter l'accès avant d'accorder davantage d'autonomie

Hermes peut interagir avec des fichiers locaux, des terminaux, des services externes et des plateformes de messagerie. Ce framework est conçu pour fonctionner sur des machines locales, des serveurs distants et divers environnements d'exploitation, et il peut utiliser différents fournisseurs de modèles et ensembles d'outils.

Cette flexibilité permet /but C'est utile, mais cela augmente le coût d'une instruction mal spécifiée.

Un utilisateur disposant d'un accès en écriture à un référentiel peut modifier de nombreux fichiers dans le cadre de la réalisation d'un objectif général. Un utilisateur disposant d'un accès au shell peut installer des paquets ou exécuter des scripts. Un utilisateur connecté à des systèmes d'entreprise pourrait agir sur des données réelles plutôt que sur un environnement de test.

Avant de se fixer un objectif à long terme :

  • n'accorder que les autorisations nécessaires à la tâche ;
  • utilisez une branche, un arborescence de travail, un conteneur ou un environnement de test lorsque cela est possible ;
  • créer un instantané ou un point de contrôle avant d'effectuer des modifications importantes ;
  • exclure les identifiants et les données de production, sauf s'ils sont réellement nécessaires ;
  • définir les actions qui nécessitent une validation humaine ;
  • et examiner les différences, les journaux et les résultats des tests avant le déploiement.

Hermes propose des commandes permettant de créer des points de contrôle et des instantanés du système de fichiers, mais les outils de récupération ne remplacent en aucun cas la mise en place de restrictions d'accès dès le départ.

Le --yolo Cette option, qui permet de contourner la validation des commandes dangereuses, ne doit pas être considérée comme une simple facilité au quotidien. Elle élargit l’éventail des actions que l’agent peut effectuer sans intervention et augmente donc les conséquences d’une hypothèse erronée.

Un processus de travail pratique

Une solution fiable /but Le projet peut être organisé en cinq étapes.

Commencez par définir un seul résultat. Évitez de regrouper des objectifs sans rapport les uns avec les autres, tels que la correction d'un logiciel, la rédaction d'une documentation et la conception d'une nouvelle stratégie produit, à moins qu'ils ne fassent véritablement partie du même livrable.

Deuxièmement, précisez les justificatifs. Indiquez les tests, fichiers, rapports ou vérifications qui attestent que la tâche a été menée à bien.

Troisièmement, définissez des limites. Précisez quels répertoires, systèmes, comptes ou sources de données Hermes est autorisé à utiliser.

Quatrièmement, identifiez les points d’escalade. Demandez à l’agent de s’arrêter lorsqu’il rencontre des informations d’identification manquantes, des exigences métier ambiguës, des opérations destructrices ou des décisions ayant des conséquences juridiques, financières ou en matière de sécurité.

Enfin, examinez les éléments fournis plutôt que de vous contenter du message indiquant que la tâche est terminée. Ouvrez le rapport, vérifiez les modifications apportées au code, reproduisez le test et assurez-vous que le résultat répond bien à l'objectif réel du projet.

Une commande correctement formée pourrait être :

/objectif : Mettre à jour les dépendances du portail client et résoudre toutes les erreurs de compatibilité qui en découlent.

Résultat :
Le portail se compile et ses fonctionnalités existantes restent opérationnelles.

Vérification :
Exécuter les tests unitaires, la compilation de production et les tests de validation Playwright. Tous doivent réussir.

Contraintes :
Ne pas modifier l’interface utilisateur, le schéma de la base de données ni le fournisseur d’authentification.

Limites :
Travailler uniquement dans le dépôt du portail client.

S’arrêter lorsque :
Des identifiants de production, une migration de schéma ou une modification du comportement vis-à-vis du client sont nécessaires.

Cela ne garantit pas une exécution sans faille. Cela fournit à Hermès un objectif suffisamment précis vers lequel tendre, sans que l'utilisateur ait à lui donner des instructions après chaque étape intermédiaire.

La valeur de /but Ce n'est pas le fait qu'il gère un projet pour le compte d'une organisation. Il supprime une forme spécifique de supervision : demander sans cesse à un agent de continuer.

Associé à une vérification rigoureuse, à des autorisations restreintes et à des conditions d'arrêt bien définies, il peut transformer Hermès d'un assistant à réponse unique en un collaborateur de projet assidu. En revanche, si on lui confie un objectif ambigu et un accès étendu au système, il risque simplement de répéter ses erreurs pendant plus longtemps.

  Comment utiliser la commande « Hermes /Goal » pour optimiser vos projets