agent-browser : CLI Rust rapide pour l'automatisation de navigateurs AI

agent-browser : CLI Rust rapide pour l'automatisation de navigateurs AI

Pourquoi un nouvel outil pour l'automatisation de navigateurs ?

Les agents AI sont de plus en plus amenés à interagir avec des pages web réelles : tester les flux UI, récupérer du contenu dynamique ou crawler des sites e‑commerce. Les outils existants comme Selenium ou Playwright sont des bibliothèques fantastiques, mais ils sollicitent une courbe d'apprentissage, un surcroît d'installation et souvent un runtime lourd. Si un système AI (Claude, GPT‑4, Gemini, etc.) devait contrôler un navigateur, il serait pratique de rendre cette capacité accessible via une interface en ligne de commande légère, pouvant être invoquée depuis n'importe quel langage.

Voici agent-browser – un exécutable unique qui inclut un binaire Rust rapide sur macOS, Linux et Windows, avec un retour arrière automatique vers Node.js lorsque le binaire natif est indisponible. Il communique avec un démon Node.js possédant une instance Playwright, vous offrant toute la puissance de Playwright (Chromium, Firefox, WebKit) tout en gardant le CLI rapide et déterministe.

Démarrage rapide

# Installer globalement via npm
npm install -g agent-browser
# Télécharger le Chromium inclus
agent-browser install
# Ouvrir un site
agent-browser open https://example.com
# Prendre un instantané basé sur référence
agent-browser snapshot --json
# Cliquer sur un bouton par référence
agent-browser click @e2
# Prendre une capture d'écran
agent-browser screenshot page.png
# Fermer
agent-browser close

Options d'installation

  • Rust natif – pnpm build:native nécessite Rust 1.75+. Offre le meilleur temps de démarrage.
  • Fallback Node.js – Fonctionne partout mais légèrement plus lent.
  • Dépendances Linuxagent-browser install --with-deps installera automatiquement les dépendances niveau système de Playwright.

Fonctionnalités & Commandes

Catégorie Commande Description
Core open <url> Naviguer vers une URL (alias : goto, navigate).
click <sel> Cliquer un élément.
fill <sel> <text> Effacer et saisir dans une entrée.
screenshot [path] Capture d'écran pleine page ou du viewport.
snapshot Produire un arbre d'accessibilité avec références déterministes (@e1, @e2).
wait <selector> Attendre la visibilité ou une condition personnalisée.
eval <js> Exécuter du JavaScript arbitraire.
close Terminer l'instance du navigateur.
Localisateurs sémantiques find role button click --name "Submit" Clique par rôle ARIA et nom.
find text "Sign In" click Clique par texte affiché.
Isolation de session agent-browser --session chat1 open https://foo.com Créer des sessions isolées pour des agents parallèles.
Sans tête / Avec interface --headed Afficher l'interface graphique pour le débogage.
Diffusion AGENT_BROWSER_STREAM_PORT=9223 agent-browser open https://example.com Ouvre un WebSocket diffusant les frames du viewport (utile pour le « pair browsing »).
Auth & En-têtes --headers '{"Authorization": "Bearer <token>"}' Définir des en-têtes HTTP par origine pour l'accès API, en sautant les interfaces de connexion.
Débogage & Journalisation trace start, trace stop Enregistrer les traces CDP pour le débogage.

Aperçu de l'architecture

  • Rust CLI – Analyse les commandes, construit un DSL JSON, et les envoie au démon.
  • Démon Node.js – Lance et gère le navigateur Playwright ; maintient le processus actif entre les appels.
  • Conception Client‑Démon – Un démon par système, de sorte que les commandes répétées ne paient pas le coût de lancement d'une nouvelle instance Chromium.

Comment les agents AI l'utilisent

  1. Ouvrir une page.
  2. Instantané avec --json. Le résultat contient un arbre structuré (role, name, ref).
  3. Le raisonneur AI analyse l'arbre pour trouver la référence cible (par ex., @e3 pour une boîte mail).
  4. Agir en utilisant les commandes CLI (click @e3, fill @e4 "[email protected]").
  5. Re‑instantané si la page change, puis répéter.

La sortie JSON du CLI est minuscule (~2‑3 KB) et idéale pour les LLM avec un nombre limité de tokens de prompt.

Cas d'utilisation

Scénario Comment agent-browser aide
Tests CI/CD Automatiser les tests UI dans les jobs CI sans configuration.
Fonctions Serverless Déployer une Lambda minimale qui exécute un navigateur basé sur CLI pour le scraping ou des tâches d'intégration.
Agent‑In‑The‑Loop Associer un AI à un humain en diffusant le viewport via WebSocket.
Analytique sans tête Collecter les données de formulaire ou les prix produits sans surcharge GUI.
Contournement API Envoyer directement les en-têtes d'authentification pour bypasser les pages de login et accéder aux API protégées.

Exemple : Créer un mini‑scraper en 10 lignes

#!/usr/bin/env node
const { execSync } = require('child_process');

execSync('agent-browser install');
execSync('agent-browser open https://books.toscrape.com');
const data = execSync('agent-browser snapshot -i --json').toString();
const snapshot = JSON.parse(data).data.snapshot;
console.log('Page has books:', snapshot.children.filter(c=>c.role==='link').length);
execSync('agent-browser close');

Exécutez-le avec node scrape.js et vous obtiendrez un compte rapide des liens de livres, le tout via le CLI.

Performance & Fiabilité

  • Le binaire Rust natif démarre en < 50 ms sur macOS – contre les homologues Node‑only qui prennent 200–300 ms.
  • Le démon reste résidant après le premier lancement, de sorte que les commandes suivantes sont quasiment instantanées.
  • Fonctionne sur toutes les plateformes majeures ; le binaire est distribué via les releases GitHub.

S'impliquer

  • Contributions bienvenues sur GitHub : créez une fork, soumettez une PR, ou ouvrez des tickets de bugs.
  • Vous voulez plus de sémantique ? Ajoutez de nouvelles actions find ou soutenez plus de moteurs de navigateur.
  • La documentation évolue – consultez le dossier docs/ et la sortie --help du CLI pour les commandes les plus récentes.

Dernières réflexions

agent‑browser apporte l'automatisation web à portée de main pour tout système AI ou développeur grâce à une seule commande. Sa combinaison de rapidité Rust, de polyvalence Playwright et d'instantanés de références conviviaux AI le rend un outil incontournable pour les tests, le scraping et la construction de workflows centrés sur l'agent. Que vous automatisiez un pipeline CI ou associez un grand modèle linguistique à une navigation en direct, agent‑browser vous offre une interface légère, déterministe et facile à programmer, adaptée à un shell ou à une fonction serverless.

Bonne automatisation !

Original Article: Voir l’original

Partager cet article