Cloudflare ha anunciado Kitesurf, un nuevo navegador web que funciona íntegramente sobre la plataforma Workers y está diseñado específicamente para agentes de inteligencia artificial y aplicaciones de automatización. Kitesurf está disponible actualmente de forma gratuita durante la fase experimental a través del producto Browser Run, con límites de uso por cuenta.
Cloudflare afirma que los navegadores tradicionales, como Chromium, se crearon principalmente para las necesidades humanas y, por ello, incluyen capacidades y consumen recursos que los modelos y agentes no necesitan necesariamente. Kitesurf se centra, en cambio, en el contenido legible por máquinas, el tamaño de los tokens, la capacidad de contexto, la escalabilidad, el rendimiento y el coste, aceptando algunas concesiones en la precisión de la representación visual.
Un navegador centrado en las necesidades de los agentes
Por lo general, un agente de inteligencia artificial no necesita pestañas, atributos visuales, extensiones ni sincronización entre dispositivos, pero sí necesita extraer HTML, capturar capturas de pantalla y gestionar páginas web a gran escala y bajo coste. Los requisitos de seguridad también cambian cuando el agente interactúa con páginas y fuentes no fiables, lo que convierte en prioridades riesgos como la inyección de instrucciones y la seguridad de las herramientas.
El desarrollo de Kitesurf comenzó 12 semanas antes del anuncio, aprovechando avances en la plataforma para desarrolladores de Cloudflare, entre ellos la madurez de la ejecución de WebAssembly dentro de Workers, los aislamientos dinámicos, los Durable Objects basados en SQLite, el mecanismo RPC entre Workers, los Service Bindings, la mejora de la compatibilidad con Node.js y el aumento de los límites operativos.
Una arquitectura aislada y sin estado
Kitesurf consta de tres componentes principales: Engine, PageScript y PageRenderer. Engine es el único componente expuesto al público, ya que gestiona las interfaces HTTP REST y WebSocket del Chrome DevTools Protocol y conserva el estado de la sesión. El resto de los componentes carece de estado en la medida de lo posible, lo que permite reiniciarlos o eliminarlos en caso de fallo y escalarlos bajo demanda.
El worker SandboxOutbound gestiona todas las conexiones con Internet, mientras que se impide que los demás componentes accedan directamente a la red mediante Dynamic Workers. Este componente aplica políticas CORS, añade cabeceras similares a las de los navegadores, filtra las respuestas, aísla las cookies de cada página y rechaza las solicitudes que infringen la política con el código 403.
PageScript utiliza aislamientos separados para cada página o marco interno fuera del proceso, y emplea partes de Blitz y del analizador CSS Stylo, escritos en Rust. PageRenderer convierte los objetos calculados de la página en fotogramas que el cliente puede mostrar en formatos como JPEG y PNG, o en PDF. Para gestionar los fallos, el sistema está diseñado de modo que un error produzca un fotograma vacío o un elemento ausente, en lugar de cerrar toda la sesión.
Resultados de las pruebas y rendimiento
Kitesurf supera actualmente más de 215.000 pruebas de Web Platform Tests, con cientos de pruebas satisfactorias adicionales cada semana. La cobertura es sólida en aspectos importantes para los agentes, como CSS, DOM, HTML, selección, SVG y XHR.
En una comparación que incluyó cinco ejecuciones intermedias de acciones rápidas mediante Browser Run, sobre un conjunto de 14 URL, Kitesurf consumió aproximadamente 380 milisegundos de CPU para capturar una captura de pantalla, frente a los 1173 milisegundos de Chromium; también consumió 229 milisegundos para extraer HTML, frente a 877 milisegundos. El consumo de memoria fue de 57,8 MiB para la captura de pantalla y de 39,4 MiB para la extracción de HTML, frente a 271 y 273,7 MiB, respectivamente, en Chromium.
En cambio, Chromium fue más rápido en el tiempo total: 637 milisegundos para capturar la pantalla, frente a los 1148 milisegundos de Kitesurf, y 472 milisegundos para extraer HTML, frente a 820 milisegundos. Cloudflare atribuye esta diferencia a la ventaja de JIT de Chromium y al coste de la renderización y la codificación por software, mientras considera que la reducción del consumo de memoria y CPU, de entre tres y siete veces en las pruebas mencionadas, está más relacionada con el coste operativo y la escalabilidad.
Disponibilidad y limitaciones
Kitesurf puede utilizarse a través del endpoint CDP de Browser Run añadiendo el parámetro browser=kitesurf. También funciona con Puppeteer, Playwright, chrome-remote-interface y herramientas de agentes que utilizan MCP y CDP. Asimismo, está disponible mediante Quick Actions, además de un Playground público que permite probar URL e inspeccionar el DOM, los mensajes de la consola, la actividad de red y el consumo de WebAssembly.
Kitesurf es adecuado para agentes que necesitan renderizar páginas, extraer su contenido o generar archivos PDF o capturas de pantalla, aceptando que no es totalmente compatible con el navegador Chromium. Sin embargo, actualmente no admite la reproducción de vídeo ni WebGL, ni la gestión de desafíos antirrobots mediante huellas TLS reales, y tampoco es adecuado para sesiones autenticadas de larga duración que requieran un estado persistente. Cloudflare recomienda probar el sitio deseado mediante las interfaces de Kitesurf o Playground, con la posibilidad de utilizar Browser Run predeterminado basado en Chromium cuando sea necesario.
Cloudflare está trabajando en ampliar la cobertura de CDP, mejorar la precisión de la renderización de capturas y archivos PDF, aumentar la compatibilidad con las pruebas WPT y reducir el consumo de CPU, memoria y tiempo total. La empresa afirmó que tiene la intención de abrir el código de Kitesurf cuando esté listo, lo que permitirá a los clientes desplegar sus propias versiones en sus cuentas.