Varelux Agent 2.1.0: Automatización Web Inteligente con IA
Share
Varelux Agent 2.1.0: La Nueva Generación de Automatización Web con IA
¿Qué pasaría si pudieras controlar un navegador de forma remota, extraer datos de cualquier sitio web, e incluso interactuar con iframes protegidos por CORS? Eso es exactamente lo que hace Varelux Agent, un sistema de automatización web que combina una extensión de Chrome/Brave con un backend Python inteligente.
En este artículo técnico, exploraremos la arquitectura detrás de esta herramienta y cómo resuelve uno de los problemas más complejos de la automatización web: el acceso a contenido cross-origin.
Arquitectura: Tres Capas, Una Sinfonía
Varelux Agent se construye sobre tres componentes principales que trabajan en armonía:
1. Extension del Navegador (Manifest V3)
La extensión actúa como el "agente de campo", ejecutándose directamente en Chrome o Brave. Utiliza Manifest V3, el nuevo estándar de Chrome que reemplaza las antiguas background pages con Service Workers.
Componentes clave:- background.js: Service Worker que mantiene conexión WebSocket permanente
- content.js: Script inyectado en cada página, exponiendo la API `window.__remoteControl`
- popup.html: Interfaz visual para configuración y estado
{
"permissions": [
"tabs",
"debugger",
"webNavigation",
"cookies",
"storage",
"scripting"
],
"host_permissions": [""]
}
2. Servidor WebSocket (Hub Central)
El archivo `server.py` actúa como orquestador central, recibiendo comandos y distribuyéndolos a las extensiones conectadas. Usa WebSockets para comunicación bidireccional en tiempo real.
Protocolo de ejemplo:{
"action": "navigate",
"url": "https://example.com",
"waitUntil": "domcontentloaded"
}
3. Workers de IA
Cuatro modos de operación según necesidades:
- ai_worker_claude.py: Integración directa con Claude CLI (modo recomendado)
- ai_worker_v4.py: Modo híbrido con fallback
- ai_worker_bridge.py: Bridge entre APIs
- ai_worker.py: OpenRouter para casos multimedia
15 Comandos Que Cambian el Juego
La API de comandos de Varelux es lo que lo diferencia de herramientas tradicionales como Selenium o Puppeteer:
Navegación y Extracción
// Navegar con espera inteligente
await sendCommand({
action: 'navigate',
url: 'https://target.com',
waitUntil: 'networkidle'
});
// Extraer DOM completo
const dom = await sendCommand({ action: 'getDOM' });
// Screenshot con metadata
const screenshot = await sendCommand({
action: 'getScreenshot',
format: 'jpeg',
quality: 85
});
Interacción Inteligente
// Click con selector CSS
await sendCommand({
action: 'click',
selector: 'button.submit'
});
// Smart click (busca por texto)
await sendCommand({
action: 'smart_click',
text: 'Siguiente pregunta'
});
Gestión de Pestañas
// Listar todas las pestañas
const tabs = await sendCommand({ action: 'getTabs' });
// Cerrar pestaña específica
await sendCommand({
action: 'closeTab',
tabId: 12345
});
El Breakthrough: Acceso a Iframes Cross-Origin
Durante el desarrollo, nos enfrentamos a un muro: los iframes con políticas CORS estrictas bloquean todo acceso desde content scripts. Intentamos 6 métodos diferentes:
- ❌ postMessage() - Requiere código en el iframe
- ❌ Proxy inverso - Rompe autenticación
- ❌ CDP Input.dispatchMouseEvent - Coordenadas inestables
- ❌ chrome.debugger.sendCommand directamente - No funciona en Service Workers
- ❌ Modificar headers con webRequest - Deprecado en Manifest V3
- ❌ Inyectar scripts via CDP Runtime.evaluate - Bloqueado por CSP
La Solución: Page.createIsolatedWorld
La solución vino del Chrome DevTools Protocol:
// 1. Attach debugger al tab
await chrome.debugger.attach({ tabId }, '1.3');
// 2. Crear mundo aislado en el iframe
const { executionContextId } = await chrome.debugger.sendCommand(
{ tabId },
'Page.createIsolatedWorld',
{ frameId: targetFrameId }
);
// 3. Ejecutar código en ese contexto
const result = await chrome.debugger.sendCommand(
{ tabId },
'Runtime.evaluate',
{
expression: 'document.querySelector(".next-btn").click()',
contextId: executionContextId
}
);
Este método bypasea CORS porque ejecuta código como si fuera parte del propio iframe, no desde afuera.
Caso de Estudio: Examen PMI-CPMAI con 94% de Precisión
Para validar el sistema, desarrollamos `pmi_autonomous_solver.py`, un módulo que resuelve exámenes de certificación PMI de manera autónoma.
El Proceso (5 Pasos por Pregunta)
- Captura: Screenshot de la pregunta actual
- Análisis: Claude CLI analiza imagen y contexto
- Decisión: Selecciona mejor respuesta basándose en CPMAI framework
- Ejecución: Usa `cdp_click_in_frame` para hacer clic en iframe cross-origin
- Validación: Screenshot post-click para confirmar
Optimización Crítica: Texto > Screenshots
Inicial: Enviar screenshot a Claude por cada pregunta (~500 tokens/imagen)
Optimizado: Extraer texto del DOM y enviar solo texto (~50 tokens)
Resultado: 30x reducción en tokens, 5x más rápidoConceptos CPMAI Dominados
El agente demostró comprensión sólida de:
- Principios de IA Generativa (Transformers, LLMs, embeddings)
- Retrieval-Augmented Generation (RAG)
- Prompt Engineering avanzado
- Evaluación de modelos de IA
- Consideraciones éticas y sesgos
Helpers del Content Script: La API Invisible
El `content.js` expone funciones auxiliares via `window.__remoteControl`:
// Extraer todos los enlaces
const links = window.__remoteControl.getAllLinks();
// Retorna: [{ text: 'Click aquí', href: 'https://...', visible: true }, ...]
// Metadata completa de la página
const meta = window.__remoteControl.getPageMetadata();
// Retorna: { title, description, canonical, ogImage, viewport, ... }
// Esperar elemento con timeout
await window.__remoteControl.waitForElement('.load-more', 5000);
// Texto visible (ignora scripts, styles, hidden)
const text = window.__remoteControl.getVisibleText();
Estas funciones son invocadas remotamente via `executeScript`, permitiendo introspección profunda sin quebrar encapsulación.
Módulos Especializados: Más Allá del Navegador
Varelux incluye agentes especializados para casos de uso específicos:
- Universal Scraper: Multi-plataforma (LinkedIn, Twitter, Google Maps, Skool)
- OSINT Investigator: Recolección de inteligencia open-source
- Skool Deep Monitor: Monitoreo de comunidades en tiempo real
- Hunter.io Integration: Validación de emails a escala
Cada módulo hereda la arquitectura base pero añade lógica de negocio específica.
Conclusión: Tres Lecciones Clave
- Chrome DevTools Protocol es más poderoso que las APIs públicas de Chrome: Cuando content scripts fallen, CDP puede salvarte.
- La optimización de tokens importa: Reducir de screenshots a texto dio 30x mejora en costo y velocidad.
- Los isolated worlds son la clave para cross-origin: `Page.createIsolatedWorld` desbloquea casos de uso antes imposibles.
Varelux Agent 2.1.0 representa la convergencia de automatización web tradicional con IA moderna. No es solo un scraper más rápido—es un agente cognitivo que entiende páginas web como un humano lo haría.
¿El futuro? Agentes autónomos que no solo extraen datos, sino que razonan sobre ellos y toman decisiones en tiempo real. Y ese futuro ya está aquí.