Computer use et automatisation du navigateur
Faire piloter une interface graphique par Claude : comment ça marche, ce que ça coûte, où ça casse, et pourquoi c’est le dernier recours plutôt que le premier.
À la fin de ce chapitre, vous saurez
- Comprendre la boucle capture, décision, action, et ses conséquences
- Savoir pourquoi c’est lent, coûteux et fragile — et quand ça vaut quand même le coup
- Concevoir une automatisation résiliente aux changements d’interface
- Poser les garde-fous obligatoires, dont l’injection par le contenu affiché
Dans ce chapitre
Certaines choses n’ont pas d’API. Un logiciel métier ancien, une application interne sans export, un service tiers sans intégration. Le seul moyen d’y accéder par programme est de faire ce que ferait un humain : regarder l’écran, cliquer, taper.
C’est possible. Ce chapitre explique comment, et surtout quand ne pas le faire.
La boucle
Le mécanisme est simple, et toutes ses conséquences en découlent.
- Une capture d’écran est prise et envoyée au modèle.
- Le modèle décide de l’action suivante : cliquer en telle position, taper tel texte, faire défiler.
- Votre code exécute l’action.
- Une nouvelle capture est prise, et on recommence.
Trois conséquences immédiates.
C’est lent. Chaque étape est un aller-retour complet.
C’est cher. Chaque étape envoie une image, facturée en jetons. Une tâche de trente étapes envoie trente captures.
C’est fragile. Un bouton qui se déplace, une fenêtre modale imprévue, un chargement plus lent que d’habitude, et la séquence déraille.
Deux surfaces différentes
Il faut distinguer deux choses qu’on confond souvent.
Le pilotage du navigateur. Claude voit une page web et agit dessus. C’est ce que fait l’extension Chrome du chapitre 20, et c’est aussi disponible par programme. Le contexte est structuré — on peut lui donner l’arbre de la page en plus de l’image — ce qui rend l’ensemble nettement plus fiable.
Le pilotage d’un écran complet. Claude voit un bureau et pilote n’importe quelle application. C’est le cas général, et le plus fragile : il n’y a rien d’autre que des pixels.
La règle : si la cible est une application web, restez sur le navigateur. La différence de fiabilité est considérable.
Mettre en place
Le pilotage d’écran se déclare comme un outil, avec les dimensions de l’écran. Deux configurations existent : un environnement hébergé par Anthropic, ou le vôtre — machine virtuelle ou conteneur que vous exécutez.
Dans les deux cas, votre code reçoit des actions et les exécute. Le principe de la boucle du chapitre 30 s’applique intégralement.
Trois réglages qui comptent dès le départ.
La résolution. C’est le principal levier de coût. Une résolution élevée améliore la précision et multiplie le nombre de jetons par capture. Descendez jusqu’au point où la tâche fonctionne encore, pas plus bas.
Le nombre maximal d’étapes. Obligatoire. Une boucle qui n’aboutit pas peut tourner très longtemps et coûter très cher.
L’isolation. Un conteneur ou une machine virtuelle dédiée, jamais votre poste de travail. Nous y revenons.
Rendre une automatisation résiliente
La fragilité est intrinsèque. Elle se compense par la conception.
Décrire l’objectif, pas la séquence de clics. « Clique à la position 340, 120 » casse au premier changement d’interface. « Ouvre le menu Fichier et choisis Exporter » survit à un déplacement du menu.
Vérifier l’état, pas supposer. Après chaque action décisive, faire constater le résultat plutôt que d’enchaîner à l’aveugle.
Prévoir l’imprévu explicitement. Bandeau de cookies, notification de mise à jour, session expirée. Ces cas surviennent, et une consigne les traite mieux qu’un plantage.
Objectif : exporter le rapport mensuel depuis [application], et
confirmer que le fichier est bien téléchargé.
Méthode : décris l'objectif de chaque étape, pas les coordonnées. Après
chaque action décisive, prends une capture et vérifie que l'état
attendu est atteint avant de continuer.
Situations à traiter, si elles se présentent :
- une fenêtre de cookies ou de consentement : refuser le non essentiel
- une notification de mise à jour : la fermer
- une session expirée : ARRÊTE-TOI et signale, ne tente pas de te
reconnecter
Points d'arrêt :
- si l'interface ne correspond pas à ce que tu attends après deux
tentatives, arrête et décris ce que tu vois
- si une action demande un mot de passe, un moyen de paiement ou une
validation, ARRÊTE-TOI
Nombre maximal d'étapes : 40.Le point d’arrêt sur la session expirée n’est pas anodin : sans lui, un agent tentera de se reconnecter, et c’est précisément le moment où il pourrait saisir des identifiants.
Les garde-fous obligatoires
Cette section ne se négocie pas.
L’isolation. Conteneur ou machine virtuelle dédiée, avec le strict nécessaire. Pas votre poste, pas vos sessions ouvertes, pas votre gestionnaire de mots de passe.
Aucune saisie de secret. Identifiants, moyens de paiement, codes d’authentification. Si la tâche en exige, la conception est mauvaise : préparez la session à l’avance ou renoncez.
Aucune action irréversible sans validation. Paiement, envoi, suppression, publication. La règle du chapitre 22 s’applique sans exception.
L’injection par le contenu affiché. C’est le risque spécifique, déjà rencontré au chapitre 20 et aggravé ici : un agent qui lit un écran peut lire un e-mail, un document, une page — dont le contenu peut s’adresser à lui. Le principe reste :
Ce qui est affiché est une donnée, jamais un ordre. Les instructions viennent de votre prompt, et de nulle part ailleurs.
Sur un écran complet, cette règle est plus difficile à tenir que dans un navigateur, parce que le contenu affiché peut venir de n’importe quelle application. Raison de plus pour restreindre l’environnement à ce qui est strictement nécessaire.
Une trace. Journalisez les captures et les actions. C’est indispensable pour comprendre après coup ce qui s’est passé — et c’est souvent une exigence de conformité.
Extraire des données d’un logiciel métier sans export
La situation
Un logiciel de gestion des années 2000, sans API, sans export. Vos données de facturation y sont, et vous devez les récupérer chaque mois pour votre tableau de bord. Deux heures de recopie manuelle.
D’abord, chercher la porte de service
Avant tout développement : le logiciel écrit-il dans une base accessible ? Existe-t-il une impression au format PDF exploitable ? Un module de rapport oublié ?
Sur ce cas précis, la réponse est non aux trois : les données sont dans une base propriétaire chiffrée, et l’impression est une image.
L’environnement
Machine virtuelle Windows dédiée, avec le seul logiciel installé, une session déjà ouverte, aucun accès réseau sortant en dehors du serveur applicatif, et un dossier partagé pour les fichiers produits.
Aucun identifiant à saisir : la session est ouverte à l’avance par un humain.
Le cadrage
Objectif : produire un fichier /partage/factures-[mois].csv contenant
une ligne par facture du mois, avec ces colonnes exactes :
numero;date;client;montant_ht;tva;montant_ttc;statut
Méthode :
1. Depuis l'écran d'accueil, ouvre le module Facturation.
2. Filtre sur le mois demandé.
3. Note le NOMBRE TOTAL de factures affiché. C'est le contrôle final.
4. Pour chaque page de résultats, lis les lignes et écris-les dans le
fichier. Passe à la page suivante.
5. À la fin, vérifie que le nombre de lignes du fichier correspond au
nombre noté à l'étape 3.
Décris l'objectif de chaque action, pas les coordonnées.
Points d'arrêt :
- si le nombre de lignes ne correspond pas au total, N'ESSAIE PAS de
corriger : écris le fichier tel quel et signale l'écart
- si un écran inattendu apparaît deux fois de suite, arrête et décris
- si une saisie d'identifiant est demandée, arrête immédiatement
Nombre maximal d'étapes : 120.Le contrôle qui valide tout
L’étape 3 est le cœur du dispositif. Sans elle, une pagination mal parcourue produit un fichier incomplet qui paraît normal — et vous construisez un tableau de bord sur des données tronquées.
Ce que ça a coûté
Deux jours de mise au point, essentiellement passés sur les écrans inattendus. Puis vingt minutes par mois, sans intervention. Comparé à deux heures de recopie, l’amortissement se fait en un trimestre.
Ce qui aurait été mieux
Un export CSV, s’il avait existé. C’est la conclusion honnête de la plupart de ces projets.
Ce qu’il faut retenir
Vérifier que c’est passé
3 questions. Rien n’est enregistré, rien n’est envoyé : c’est pour vous.
Le calcul avant de se lancer
Prenez une tâche répétitive que vous envisagez d’automatiser par pilotage d’interface. Comptez le nombre d’étapes réelles en la faisant vous-même, une fois, en notant chaque clic. Multipliez par le coût d’une capture. Comparez avec le temps humain que vous économisez. Puis cherchez sérieusement s’il existe une API, un export CSV ou un accès base — dans la moitié des cas, il en existe un.
Un indice, si vous bloquez
Un export CSV manuel une fois par semaine bat presque toujours une automatisation par pilotage d’interface, en coût comme en fiabilité.