A Cloudflare anunciou o Kitesurf, um novo navegador web que funciona inteiramente sobre a plataforma Workers e foi projetado especificamente para agentes de IA e aplicações de automação. O Kitesurf está atualmente disponível gratuitamente durante a fase experimental por meio do produto Browser Run, com limites de uso impostos no nível da conta.
A Cloudflare afirma que navegadores tradicionais como o Chromium foram desenvolvidos principalmente para as necessidades humanas e, por isso, incluem capacidades e consumo de recursos dos quais modelos e agentes não necessariamente precisam. O Kitesurf, por outro lado, concentra-se em conteúdo legível por máquina, tamanho do código, capacidade de contexto, escalabilidade, desempenho e custo, aceitando algumas concessões na precisão da renderização visual.
Um navegador focado nas necessidades dos agentes
Um agente de IA normalmente não precisa de abas, atributos visuais, extensões ou sincronização entre dispositivos, mas precisa extrair HTML, capturar screenshots e lidar com páginas web em grande escala e a baixo custo. Os requisitos de segurança também são diferentes quando o agente lida com páginas e fontes não confiáveis, tornando riscos como injeção de instruções e segurança das ferramentas prioridades.
O desenvolvimento do Kitesurf começou 12 semanas antes do anúncio, aproveitando avanços na plataforma de desenvolvedores da Cloudflare, incluindo a maturidade da execução de WebAssembly dentro do Workers, isolamentos dinâmicos, Durable Objects baseados em SQLite, um mecanismo de RPC entre Workers, Service Bindings, melhorias na compatibilidade com Node.js e o aumento dos limites operacionais.
Arquitetura isolada e sem estado
O Kitesurf é composto por três componentes principais: Engine, PageScript e PageRenderer. O Engine é o único componente exposto ao público; ele lida com as interfaces HTTP REST e WebSocket do Chrome DevTools Protocol e mantém o estado da sessão. Os demais componentes são, na medida do possível, sem estado, o que permite reiniciá-los ou descartá-los em caso de falha e escalá-los conforme a demanda.
O worker SandboxOutbound gerencia todas as conexões com a internet, enquanto os outros componentes são impedidos de acessar diretamente a rede por meio de Dynamic Workers. Esse componente aplica políticas de CORS, adiciona cabeçalhos semelhantes aos dos navegadores, filtra respostas, isola cookies por página e rejeita solicitações que violam a política com o código 403.
O PageScript usa isolamentos separados para cada página ou frame, fora do processo, e utiliza partes do Blitz e o analisador de CSS Stylo, escritos em Rust. Já o PageRenderer converte os objetos de página calculados em frames que o cliente pode exibir em formatos como JPEG e PNG ou PDF. Para lidar com falhas, o sistema foi projetado de modo que um erro produza um frame vazio ou um elemento ausente, em vez de derrubar toda a sessão.
Resultados dos testes e desempenho
Atualmente, o Kitesurf passa em mais de 215 mil testes do Web Platform Tests, com centenas de testes aprovados adicionados a cada semana. A boa cobertura inclui aspectos importantes para agentes, como CSS, DOM, HTML, seleção, SVG e XHR.
Em uma comparação que incluiu cinco execuções intermediárias de ações rápidas por meio do Browser Run, em um conjunto de 14 URLs, o Kitesurf consumiu cerca de 380 milissegundos de CPU para capturar uma screenshot, contra 1173 milissegundos do Chromium, e consumiu 229 milissegundos para extrair HTML, contra 877 milissegundos. O consumo de memória foi de 57,8 MiB para a screenshot e 39,4 MiB para a extração de HTML, contra 271 e 273,7 MiB, respectivamente, no Chromium.
Por outro lado, o Chromium foi mais rápido no tempo total: 637 milissegundos para capturar a tela, contra 1148 milissegundos do Kitesurf, e 472 milissegundos para extrair HTML, contra 820 milissegundos. A Cloudflare atribui essa diferença à vantagem de JIT do Chromium e ao custo da renderização e codificação por software, mas considera que a redução no consumo de memória e CPU, de três a sete vezes nos testes mencionados, está mais relacionada ao custo operacional e à escalabilidade.
Disponibilidade e limitações
O Kitesurf pode ser usado por meio de um endpoint CDP no Browser Run, adicionando o parâmetro browser=kitesurf. Ele também funciona com Puppeteer, Playwright, chrome-remote-interface e ferramentas de agentes que usam MCP e CDP. Também está disponível por meio do Quick Actions, além de um Playground público que permite testar URLs e inspecionar o DOM, mensagens do console, atividade de rede e consumo de WebAssembly.
O Kitesurf é adequado para agentes que precisam renderizar páginas, extrair seu conteúdo ou criar arquivos PDF ou screenshots, aceitando a falta de compatibilidade total com o navegador Chromium. No entanto, atualmente não oferece suporte à reprodução de vídeo, WebGL ou ao tratamento de handshakes de desafios de robôs por meio de impressões digitais TLS reais, e não é adequado para sessões autenticadas de longa duração que exigem estado persistente. A Cloudflare recomenda testar o site desejado pelas interfaces do Kitesurf ou pelo Playground, com a possibilidade de usar o Browser Run padrão baseado em Chromium quando necessário.
A Cloudflare está trabalhando para ampliar a cobertura do CDP, melhorar a precisão da renderização de screenshots e arquivos PDF, aumentar a compatibilidade dos testes WPT e reduzir o consumo de CPU, memória e tempo total. A empresa afirmou que pretende abrir o código do Kitesurf quando ele estiver pronto, permitindo que os clientes implantem suas próprias versões em suas contas.