agent-browser: CLI rápida en Rust para la automatización de navegadores con IA

agent-browser: CLI rápida en Rust para la automatización de navegadores con IA

¿Por qué una nueva herramienta para la automatización de navegadores?

Los agentes de IA cada vez más necesitan interactuar con páginas web del mundo real: probar flujos de UI, extraer contenido dinámico o rastrear sitios de comercio electrónico. Herramientas como Selenium o Playwright son bibliotecas fantásticas, pero exigen una curva de aprendizaje, una configuración pesada y, a menudo, un tiempo de ejecución pesado. Si un sistema de IA (Claude, GPT‑4, Gemini, etc.) tuviera que controlar un navegador, sería conveniente exponer esa capacidad a través de una interfaz de línea de comandos ligera que pueda ser llamada desde cualquier lenguaje.

Entra agent-browser – un único ejecutable que distribuye un binario rápido en Rust para macOS, Linux y Windows, con caída automática a Node.js cuando el binario nativo no está disponible. Se comunica con un demonio Node.js que gestiona una instancia de Playwright, dándote todo el poder de Playwright (Chromium, Firefox, WebKit) mientras mantiene la CLI rápida y determinística.

Primeros pasos

# Instalar globalmente vía npm
npm install -g agent-browser
# Obtener Chromium empaquetado
agent-browser install
# Abrir un sitio
agent-browser open https://example.com
# Tomar una instantánea basada en referencia
agent-browser snapshot --json
# Hacer clic en un botón por ref
agent-browser click @e2
# Tomar una captura de pantalla
agent-browser screenshot page.png
# Cerrar
agent-browser close

Opciones de instalación

  • Rust Nativepnpm build:native requiere Rust 1.75+. Ofrece el mejor tiempo de inicio.
  • Descenso a Node.js – Funciona en todas partes pero es ligeramente más lento.
  • Dependencias de Linuxagent-browser install --with-deps instalará automáticamente las dependencias de nivel de sistema de Playwright.

Funciones y comandos

Categoría Comando Descripción
Core open <url> Navegar a una URL (alias: goto, navigate).
click <sel> Hacer clic en un elemento.
fill <sel> <text> Limpiar y escribir en un campo de entrada.
screenshot [path] Captura de pantalla de página completa o de la vista.
snapshot Genera un árbol de accesibilidad con referencias determinísticas (@e1, @e2).
wait <selector> Esperar hasta que sea visible o se cumpla una condición personalizada.
eval <js> Ejecutar JavaScript arbitrario.
close Terminar la instancia del navegador.
Semantic Locators find role button click --name "Submit" Hacer clic por rol ARIA y nombre.
find text "Sign In" click Hacer clic por texto mostrado.
Session Isolation agent-browser --session chat1 open https://foo.com Crear sesiones aisladas para agentes paralelos.
Headless / Headed --headed Mostrar la GUI para depuración.
Streaming AGENT_BROWSER_STREAM_PORT=9223 agent-browser open https://example.com Abre un WebSocket que transmite los frames de la vista (útil para “navegar en pareja”).
Auth & Headers --headers '{"Authorization": "Bearer <token>"}' Establecer encabezados HTTP por origen para acceso API, omitiendo interfaces de inicio de sesión.
Debug & Logging trace start, trace stop Registrar trazas CDP para depuración.

Instantánea de la arquitectura

  • CLI en Rust – Analiza los comandos, construye un DSL en JSON y los envía al demonio.
  • Demonio en Node.js – Inicia y gestiona el navegador Playwright; mantiene el proceso vivo entre invocaciones.
  • Diseño Cliente‑Demonio – Un demonio por sistema, por lo que los comandos repetidos no incurren en el costo de lanzar una nueva instancia de Chromium.

¿Cómo usan los agentes de IA?

  1. Abrir una página.
  2. Capturar con --json. El resultado contiene un árbol estructurado (role, name, ref).
  3. El motor de razonamiento de la IA analiza el árbol para encontrar la referencia objetivo (por ejemplo, @e3 para un cuadro de correo).
  4. Actuar usando comandos CLI (click @e3, fill @e4 "[email protected]").
  5. Capturar de nuevo si la página cambió, luego repetir.

La salida JSON de la CLI es mínima (~2‑3 KB) e ideal para LLMs con un número limitado de tokens de prompt.

Casos de uso

Escenario Cómo ayuda agent-browser
Pruebas CI/CD Automatizar pruebas de UI en trabajos CI con scripts de configuración cero.
Funciones sin servidor Desplegar una Lambda mínima que ejecute un navegador basado en CLI para tareas de scraping o integración.
Agente con el usuario Combinar una IA con un humano transmitiendo la vista a través de WebSocket.
Análisis sin cabeza Reunir datos de formularios o precios de productos sin sobrecarga de GUI.
Flujo de bypass de API Pasar encabezados de autenticación directamente para saltar páginas de inicio de sesión y acceder a APIs protegidas.

Ejemplo: Construir un mini‑scraper en 10 líneas

#!/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');

Ejecuta con node scrape.js y obtendrás una rápida contabilización de los enlaces de libros, todo hecho vía la CLI.

Rendimiento y fiabilidad

  • Binario nativo en Rust arranca en < 50 ms en macOS – en comparación con los equivalentes solo Node que tardan 200–300 ms.
  • El demonio permanece residente después de la primera ejecución, por lo que los comandos subsiguientes son prácticamente instantáneos.
  • Funciona en todas las plataformas principales; el binario se distribuye a través de lanzamientos de GitHub.

Cómo participar

  • Contribuciones bienvenidas en GitHub: crea un fork, envía una PR, o abre issues para errores.
  • ¿Quieres más semántica? Añade nuevas acciones find o soporta más motores de navegador.
  • La documentación está viva – revisa la carpeta docs/ y la salida de ayuda de la CLI (--help) para los comandos más recientes.

Pensamientos finales

agent‑browser lleva la automatización web a la palma de la mano de cualquier sistema de IA o desarrollador con un solo comando. Su combinación de la velocidad de Rust, la versatilidad de Playwright y las instantáneas de referencia amigables con la IA lo convierte en una herramienta atractiva para pruebas, scraping y la construcción de flujos de trabajo centrados en agentes. Ya sea que estés automatizando un pipeline CI o combinando un modelo de lenguaje grande con navegación en vivo, agent‑browser te brinda una interfaz ligera, determinística y fácil de programar que se siente en casa tanto en una terminal como en una función sin servidor.

¡Feliz automatización!

Artículo original: Ver original

Compartir este artículo