🦜 Agente de HuBrowser: detalles técnicos 🛠️
Esta página está pensada para perfiles técnicos. No necesitas leerla para disfrutar de las funciones del agente de HuBrowser. 👍
Aquí resumimos parte de la arquitectura y de la exploración técnica del agente de HuBrowser. El agente de IA está evolucionando muy rápido, así que esta guía puede no reflejar siempre los cambios más recientes.
HuBrowser ofrece automatización robusta e inteligente del navegador mediante un diseño modular y extensible. A continuación resumimos su arquitectura, gestión de estado, inteligencia y varias soluciones técnicas propias.
🚀 Resumen y arquitectura
- Automatización flexible: combina lenguaje natural, acciones grabadas y código para ofrecer un control adaptable.
- Descomposición avanzada de tareas: divide tareas complejas en subtareas manejables con selección inteligente de herramientas.
- Conjunto de herramientas completo: integra navegador, archivos, línea de comandos, API y análisis de datos.
- Feedback en tiempo real: permite seguir y modificar resultados intermedios mientras la tarea está en marcha.
- Diseño modular y extensible: construido para fiabilidad, transparencia y ampliación sencilla.
Flujo principal
HuBrowser funciona en un bucle continuo:
- Inicialización: se crea el agente con una tarea, un LLM y una instancia del navegador; todos los componentes se inicializan con telemetría.
- Bucle de ejecución: recuperación de estado → análisis del LLM → ejecución de acciones → actualización de estado.
- Finalización: al completar la tarea se registran eventos, se devuelve el historial y, si se desea, se genera un GIF.
Componentes del sistema
- Agent: planifica y ejecuta tareas, gestiona estado e historial, y maneja la mensajería con el LLM y los errores.
- Controller: registra acciones del navegador, valida parámetros y enlaza instrucciones del LLM con operaciones reales del navegador.
- Browser: gestiona instancias del navegador, contextos, pestañas, navegación y operaciones DOM.
- DomService: construye árboles DOM, identifica elementos interactivos y rastrea historial e información del viewport.
- Proceso en segundo plano (sandbox virtual): ejecuta tareas de automatización en un entorno aislado para evitar interferencias con la navegación del usuario.
🔍 Gestión de memoria
- El agente opera con memoria persistente de sus acciones anteriores. Gracias a eso puede tomar mejores decisiones en pasos posteriores aprovechando el contexto acumulado. Por ejemplo, si pulsa un botón y navega a una página nueva, sin memoria persistente podría no recordar que esa navegación la inició él mismo cuando luego intenta extraer datos.
- Modelar el historial como "memoria" simplifica mucho el desarrollo y la robustez de los flujos de automatización frente a pasar datos manualmente entre pasos con variables explícitas, algo que se vuelve engorroso y frágil en workflows complejos.
- Estado de la aplicación: pestañas activas, valores introducidos en formularios y cookies de autenticación.
- Preferencias personales: se aprenden a partir de señales implícitas.
- Historial de navegación: se codifica mediante embeddings Sentence-BERT para recuerdo semántico.
Este enfoque nos permite construir automatizaciones más complejas y dinámicas, donde el agente realmente puede "entender" el contexto de sus acciones.
Propiedades básicas
- context_evaluation: análisis del resultado tras cada acción y planificación de ajustes.
- memory: almacenamiento persistente del progreso y de la información clave.
- short_term_goal: siguiente objetivo inmediato.
- long_term_goal: objetivo global que guía toda la secuencia.
Memoria comprimida
- Resume cada paso completado: después de cada acción, por ejemplo pulsar, extraer datos o navegar, el agente genera un resumen breve de lo que acaba de ocurrir. Puede incluir detalles como:
- "Navigate: amazon.com."
- "Input text: 'parrot toy' into field 'Search Query'."
- "Query: 'Product Name' as 'Parrot Toy', 'Price' as '$22'."
- "Tap: on the 'Submit' button."
- Conserva y reutiliza esa memoria en pasos posteriores: el agente puede acceder a esos resúmenes durante toda la ejecución actual para orientar decisiones y acciones futuras.
HuBrowser gestiona el estado en dos niveles:
- Orquestación multitab: maneja instancias del navegador, contextos y páginas para workflows complejos.
- Contexto a nivel de pestaña: analiza y extrae información de elementos de la página con targeting preciso.
- Filtra nodos irrelevantes, como texto vacío, scripts o SVG, y asigna identificadores XPath únicos.
- Detecta elementos interactivos, como roles ARIA, listeners de eventos o contenido editable.
- Gestiona banners de cookies y diálogos de consentimiento.
- Convierte mapas planos de JavaScript en redes de objetos Python.
📄 Procesamiento de página y DOM
HuBrowser traduce estructuras web complejas a descripciones comprensibles para el LLM usando texto estructurado y capturas indexadas. La información de página se trata como datos de un solo uso y se limpia tras cada solicitud para mantener eficiente el contexto del modelo.
Análisis del árbol DOM
- Identifica elementos visibles, interactivos y situados en la capa superior.
- Aplica comprobaciones de interactividad en varias capas, como ARIA, eventos y contenido editable.
- Usa overlays de resaltado de alto rendimiento para marcar elementos.
- Se centra en tipos accionables: botones, nodos de texto, imágenes, formularios y contenedores.
- Filtrado: ignora elementos de menos de 5 px, como tracking pixels, o mayores que el tamaño de la pantalla.
- Extracción: genera una estructura WebElementInfo unificada con IDs, hashes y localizadores.
- Lógica de etiquetas: usa la etiqueta del padre en la mayoría de elementos, con tratamiento especial para formularios.
- Operaciones sobre el árbol: aplica algoritmos para transformarlo en árboles estructurados.
Ejemplo de propiedades de un elemento:
Procesamiento de capturas
- Adaptación DPR (Device Pixel Ratio) a distintas resoluciones: ajusta las capturas en pantallas de alta resolución, DPR > 1, para mantener posicionamiento preciso a nivel de píxel.
- Marcado de elementos: añade marcadores o bordes a los elementos interactivos para que el LLM los identifique mejor y para ofrecer señales visuales accionables.
Reconocimiento de la intención del usuario
- Analiza patrones de movimiento de ratón y toques para estimar el interés del usuario, lo que ayuda a priorizar el procesamiento y ajustar respuestas.
- Resalta la probabilidad de interacción de cada elemento según su intención semántica y, opcionalmente, puede mostrar codificación por colores al usuario. Esto ayuda al agente a centrarse en la información o acciones más relevantes.
🧠 Inteligencia del agente e integración de herramientas
Integración de herramientas y registro de acciones
- Llamadas a funciones estructuradas con validación mediante JSON Schema para lograr ejecuciones precisas.
- Registro flexible para operaciones síncronas y asíncronas.
🧅 Sistema de contexto multicapa
HuBrowser selecciona capas de contexto según la complejidad de la tarea y las necesidades del LLM, equilibrando rendimiento y precisión:
- Contenido de texto: extracción del texto visible.
- Metadatos HTML: títulos y meta tags.
- Captura del viewport: área actualmente visible.
- Miniatura de la página: vista previa de baja resolución.
- Captura de página completa: instantánea visual completa.
- Árbol HTML aplanado: DOM estructurado con propiedades clave.
- Árbol HTML completo: DOM íntegro para inspección profunda.
- Datos de Web API: datos estructurados para tareas detalladas.
🎯 Planificación y ejecución de objetivos
Metodologías de planificación
- Construcción de parámetros: crea parámetros de localización detallados con contexto del elemento.
- Creación del plan: genera planes de operación completos con estrategias de fallback.
- Ejecución de tareas: convierte los planes en tareas accionables.
Respuesta de asistencia de IA:
- Modelos de texto: IDs de elementos acompañados de razonamiento.
- Modelos visuales: coordenadas de bounding box.
Método de acción y gestión del contexto
- Conserva un único mensaje del usuario junto con un historial resumido.
- Pasa descripciones detalladas de página, como árbol DOM y detalles de elementos, a modelos generales.
- Excluye información DOM para modelos visuales y así reduce sobrecarga.
- Genera planes de acción detallados con predicción de resultados.
- Mantiene logs de ejecución e información de errores.
- Predice resultados antes de ejecutar para anticipar errores.
- Conserva el historial de mensajes con hasta cuatro capturas.
- Integra instrucciones del usuario directamente en los prompts del sistema.
- Incluye respuestas previas de la IA para mantener continuidad contextual.
- Avanzado:
- Descomposición de acciones: divide instrucciones complejas en operaciones más simples.
- Optimización de localización de elementos: reutiliza IDs, clases o coordenadas ya localizadas para minimizar llamadas al modelo.
- Eficiencia de contexto: equilibra historial y rendimiento.
🧩 Retos técnicos y soluciones
HuBrowser afronta problemas reales de automatización web con soluciones avanzadas:
- 🖼️ Procesamiento de iframes: recorrido recursivo de iframes anidados y manejo de cross-origin.
- 🛡️ Restricciones CSP: múltiples estrategias para mitigar bloqueos por content security policy.
- 🌑 Shadow DOM: recorrido avanzado de componentes aislados.
- 🧩 Automatización de extensiones: interacción nativa con extensiones del navegador.
- 🔗 Mensajería entre contextos: comunicación fluida entre páginas y extensiones.
- ⏱️ Momento de inyección de scripts: sincronización precisa para automatizaciones fiables.
- 📝 HTML no estándar: extracción robusta incluso con documentos mal estructurados.
- 🎯 Precisión sobre elementos: filtrado y localización avanzados para apuntar con exactitud.
