Cloudflare macht Agenten-Browser Kitesurf zu Open Source

Cloudflare hat Kitesurf, einen Browser für KI-Agenten, als Open Source veröffentlicht, und zwar unter der Apache-2.0-Lizenz. Der Code liegt auf GitHub, die Projektseite ist kitesurf.dev. Der Browser läuft auf Cloudflare Workers und kommt ohne Browser-Container aus, parst dabei aber HTML, verarbeitet CSS und führt JavaScript aus.

Das Ziel, das Cloudflare formuliert, ist unmissverständlich:

"Our main goal is to give AI agents a lightweight, efficient browser — one that can load websites, execute JavaScript, and interact with pages while using less CPU and memory than a full browser like Chromium."

Sinngemäß: Agenten sollen einen schlanken Browser bekommen, der Webseiten öffnet, Skripte ausführt und mit Seiten interagiert – bei geringerer CPU- und Speicherlast als vollwertige Browser wie Chromium.

Vom Portierungsexperiment zu Open Source: drei Stationen

Ausgangspunkt von Kitesurf ist obscura, eine quelloffene Headless-Engine in Rust, die mit „kein Chrome, kein Node.js, keine Abhängigkeiten“ wirbt. Das Cloudflare-Team ließ zunächst einen KI-Agenten versuchen, sie auf Workers zu portieren, was anfangs schlecht funktionierte; erst nachdem man dem Agenten einen detaillierten Plan und klare Erfolgskriterien mitgegeben hatte, lief der Prototyp einigermaßen.

Laut dem Cloudflare-Blog vergingen von der Entscheidung bis zum offiziellen Start 12 Wochen. Beim ersten Auftritt wurde Kitesurf als kostenlose Betaversion in Browser Run integriert, Cloudflares Dienst für die Automatisierung von Headless-Browsern; Entwickler konnten über den Parameter browser=kitesurf in der Schnittstelle umschalten. Damals versprach Cloudflare, den Code „zu öffnen, sobald er bereit ist“, wobei der Ankündigungsbeitrag Berichten zufolge keinen Zeitplan nannte. Die jetzt von Phoronix gemeldete Veröffentlichung löst dieses Versprechen ein.

Bei der Entwicklung diente die Web Platform Tests-Suite (die Konformitätstests des W3C) als Abnahmekriterium für den KI-Agenten, während Menschen Architektur und Reviews übernahmen. Zum Zeitpunkt des Blogbeitrags bestand Kitesurf rund 215.000 Tests, jede Woche kommen einige hundert hinzu. Um die Lücke zwischen Standardtests und echten Webseiten zu schließen, ließ das Team per Puppeteer Chromium und Kitesurf parallel auf realen Seiten laufen und verglich Schritt für Schritt Assertions und gerenderte Screenshots.

Illustration: a heavy truck and light sail carts symbolize the lightweight Cloudflare AI browser

Wie Kitesurf intern aufgebaut ist

Kitesurf besteht aus drei Teilen:

  • Engine: die einzige nach außen sichtbare Komponente; sie verarbeitet das Chrome DevTools Protocol (CDP) und hält den Sitzungszustand. Clients wie Puppeteer oder Playwright lassen sich direkt darauf richten.
  • PageScript: Jede Seite läuft in einer eigenen isolierten Workers-Umgebung; für HTML und CSS kommen ein in Rust geschriebenes Modul der Render-Engine Blitz sowie Firefox' Stylo zum Einsatz. Trifft die Seite auf eval, das Workers nativ nicht unterstützt, wird die Ausführung an die in Rust geschriebene JS-Engine Boa übergeben.
  • PageRenderer: zeichnet das Seitenobjekt in Pixel und gibt JPEG, PNG oder PDF aus; er speichert keinen Seitenzustand und wird bei einem Hänger einfach beendet und neu gestartet.

Sämtliche Anfragen ins externe Netz laufen über eine einzige Komponente, SandboxOutbound, und die Cookies jeder Seite werden getrennt in einem eigenen „Glas“ gehalten. Cloudflare geht beim Design davon aus, dass jede Ladung nicht vertrauenswürdige Eingabe ist und jede Sitzung bei null beginnt; damit zielt man auf agententypische Risiken wie Prompt Injection und die Sicherheit von Tool-Aufrufen.

Grob nach Speicher gerechnet: Wie viele Sitzungen passen auf eine Maschine?

Cloudflare ließ 14 Webadressen je fünf Durchläufe laufen und nahm den Median. Bei der HTML-Extraktion belegt Kitesurf 39,4 MiB Arbeitsspeicher, der vorgewärmte Chromium-Pool 273,7 MiB, ein Unterschied um das 7-Fache; bei der Screenshot-Aufgabe beträgt der Faktor 4,7.

Nach den Zahlen der Screenshot-Aufgabe passen grob gerechnet etwa 17 Kitesurf-Sitzungen in 1 GiB Arbeitsspeicher, bei Chromium sind es nur 3 bis 4. In der Praxis kommen noch Scheduling-Overhead und Lastspitzen hinzu, das Verhältnis ist also eher als Obergrenze zu verstehen. Cloudflare selbst sagt, dass Speicher und CPU die Rechnung bestimmen; bei der Wanduhrzeit sei Chromium 1,7- bis 1,8-mal schneller, der Rückstand entstehe vor allem bei Rasterisierung und Bildkodierung und solle weiter optimiert werden.

Auch die Schwächen werden klar benannt: Kitesurf kann derzeit keine Videos abspielen, kein WebGL rendern und nutzt keinen echten TLS-Fingerprint, um Anti-Bot-Prüfungen zu bestehen. Als korrekt dargestellte Seiten nennt Cloudflare unter anderem Wikipedia, Hacker News und TodoMVC in mehreren Framework-Versionen. Für Entwickler in China heißt das: Nach der Veröffentlichung lässt sich Kitesurf im eigenen Workers-Konto betreiben, ohne die Kontingente von Browser Run, doch die Kompatibilität mit komplexen Seiten muss man selbst testen.

Quellen: Cloudflare-Blog, Phoronix, CocoLoop, H2S Media; die Mediane für CPU, Speicher und Laufzeit im Testset mit 14 Webadressen sowie die Zahl der bestandenen WPT-Tests wurden anhand des Cloudflare-Blogs überprüft.