
Kitesurf: navegador para agentes rodando em Cloudflare Workers
O que é o Kitesurf
A Cloudflare anunciou o Kitesurf, um navegador construído do zero para agentes de IA, que roda inteiramente sobre V8 isolates em Cloudflare Workers. A motivação central: engines como Chromium foram projetadas para humanos e carregam overhead (memória, CPU, tabs, extensões, sincronização) que agentes simplesmente não precisam. O Kitesurf foca no que importa para modelos de IA - eficiência, escalabilidade, custo e conteúdo estruturado - mesmo que a renderização não seja pixel-perfect.
Arquitetura
O Kitesurf é composto por três componentes principais:
- Engine: componente público que expõe APIs CDP (Chrome DevTools Protocol) via WebSocket e REST. É compatível com Puppeteer, Playwright, chrome-remote-interface e DevTools. Gerencia o estado da sessão.
- PageScript: roda em Dynamic Workers. Cada página ou iframe recebe um isolate dedicado com
globalThise DOM limpos. Usa partes do Blitz (engine modular de renderização) e Stylo (parser CSS do Firefox), ambos em Rust compilados para WebAssembly. Paraeval(), usa o Boa JS (engine ECMAScript em Rust) como runtime sobre o runtime. - PageRenderer: recebe o objeto de página (scene), rasteriza tudo em um buffer de imagem e devolve PNG/JPEG ou PDF ao Engine via RPC. É stateless e descartável - pode ser morto e reiniciado a qualquer momento.
A comunicação entre isolates usa o sistema de RPC nativo de Workers. Todo acesso à rede passa por um único worker (SandboxOutbound), que aplica CORS, injeta headers e filtra respostas.
Decisões de design
- Testes extensivos: usa o suíte Web Platform Tests (WPT) como critério de sucesso para agentes de IA que ajudam no desenvolvimento, além de testes de regressão visual comparando Kitesurf com Chromium em sites reais.
- Rust + Wasm nativo: compilado diretamente com
wasm-bindgen, evitando camadas de emulação (como Emscripten). - Isolamento total: cada página é tratada como input não confiável; cada sessão começa do zero.
- Stateless sempre que possível: componentes descartáveis e paralelizáveis, ideais para cargas bursty.
Resultados
- Passa em 215.000+ testes WPT, com crescimento de centenas por semana.
- Em benchmarks (medianas de 5 execuções num corpus de 14 URLs):
- CPU em screenshot: 380 ms vs 1.173 ms do Chromium (3,1× menos)
- Memória em extração de HTML: 39,4 MiB vs 273,7 MiB do Chromium (7× menos)
- Wall time: ainda ~1,7× mais lento que Chromium (por causa de rasterização e encoding), mas a equipe está otimizando.
Como usar
O Kitesurf está disponível gratuitamente em beta via Browser Run. Basta adicionar browser=kitesurf aos endpoints de CDP ou Quick Actions. Há também um playground público com DevTools integrados. Ainda não suporta vídeo, WebGL, desafios de bot com TLS fingerprints ou sessões autenticadas longas.
Próximos passos
A equipe trabalha em melhor cobertura CDP, fidelidade de renderização, mais testes WPT e eficiência. O plano é abrir o código-fonte em breve, permitindo que clientes deployem sua própria versão.