Donner des outils web à mes agents
J’utilise Hermès pour des tâches qui nécessitent de trouver, lire et manipuler des pages web. Certains sites compliquent l’accès automatisé ; une fois la page accessible, l’agent doit encore repérer les bonnes commandes dans une interface parfois dense. J’ai choisi d’étendre camofox-mcp de redf0x1, l’adaptateur qui relie un agent au navigateur Camoufox.
Le moteur de navigation et son empreinte viennent de Camoufox et de camofox-browser. Ma contribution se situe dans l’adaptateur : interprétation des intentions, réponses structurées, contexte de tâche et outils de diagnostic.
Séparer observation, décision et action
Une consigne comme « relève le nom et le prix » passe par une capture de l’état de page, un prompt spécialisé et un modèle de langage. L’outil d’extraction renvoie des données structurées et signale les informations absentes. L’observation propose des éléments pertinents sans agir ; l’action résout une cible puis effectue une interaction.
J’ai conservé une voie déterministe pour les plans dont les références sont déjà connues. Cela permet à l’agent de choisir entre interprétation d’une intention et exécution explicite. Les prompts demandent une seule action, des références issues de la page et aucune saisie inventée. Ils sont stockés séparément du code TypeScript pour pouvoir être ajustés sans modifier les gestionnaires d’outils.
Comprendre ce qui se passe après un clic
Un appel terminé ne dit pas forcément qu’une case a été cochée ou qu’un formulaire a avancé. J’ai organisé le contexte et les consignes de reprise autour du résultat observé : changement d’état, dialogue apparu, alerte ou absence de progression.
Les captures peuvent être recentrées sur une zone et réduites aux éléments utiles. Le contexte d’onglet garde le but de la tâche et les actions récentes. Les consignes de récupération limitent les nouvelles tentatives et demandent de changer un paramètre ou une stratégie. L’objectif est de donner à l’agent de quoi choisir sa prochaine action lorsque le parcours ne suit plus son plan.
Maintenir le service et ses contrats
J’ai ajouté un routeur de modèles avec repli, validation et réparation des réponses JSON. Les profils d’exposition permettent de proposer un ensemble réduit ou complet d’outils au client MCP, le protocole qui relie l’agent au service.
Le contrôle de santé vérifie séparément l’adaptateur et le serveur navigateur : un processus actif peut répondre sans permettre de navigation. J’ai aussi corrigé la restauration des cookies afin qu’une entrée rejetée ne fasse pas échouer toute la session. Les modifications restent intégrées à un fork maintenu avec l’amont. Le dépôt et son architecture détaillent les outils, les prompts et les frontières entre ces composants.