Cloudflare가 Kitesurf를 발표했다. Kitesurf는 Workers 플랫폼에서 완전히 작동하며 AI 에이전트와 자동화 애플리케이션을 위해 특별히 설계된 새로운 웹 브라우저다. Kitesurf는 현재 Browser Run 제품을 통해 시험 단계 동안 무료로 제공되며, 계정 수준의 사용량 제한이 적용된다.
Cloudflare는 Chromium과 같은 기존 브라우저가 기본적으로 인간의 요구에 맞춰 구축됐기 때문에 모델과 에이전트에는 반드시 필요하지 않은 기능과 리소스 소비를 포함한다고 설명한다. 반면 Kitesurf는 시각적 렌더링의 정확성에서 일부 절충을 허용하는 대신 기계가 읽을 수 있는 콘텐츠, 토큰 크기, 컨텍스트 용량, 확장성, 성능 및 비용에 집중한다.
에이전트의 요구에 초점을 맞춘 브라우저
AI 에이전트는 일반적으로 탭, 시각적 속성, 확장 프로그램 또는 기기 간 동기화가 필요하지 않지만 HTML 추출, 스크린샷 캡처, 대규모 웹 페이지 처리 및 저비용 운영은 필요로 한다. 또한 에이전트가 신뢰할 수 없는 페이지와 소스를 다룰 때 보안 요구 사항도 달라지므로 프롬프트 인젝션 및 도구 무결성과 같은 위험이 우선 과제가 된다.
Kitesurf의 개발은 발표 12주 전 시작됐다. Cloudflare 개발자 플랫폼의 발전, 즉 Workers에서 WebAssembly 실행의 성숙, 동적 격리 환경, SQLite 기반 Durable Objects, Workers 간 RPC, Service Bindings, 향상된 Node.js 호환성 및 운영 한도 상향을 활용했다.
격리되고 상태가 없는 아키텍처
Kitesurf는 Engine, PageScript, PageRenderer라는 세 가지 주요 구성 요소로 이루어진다. Engine은 외부에 노출되는 유일한 구성 요소로, Chrome DevTools Protocol의 HTTP REST 및 WebSocket 인터페이스를 처리하고 세션 상태를 저장한다. 나머지 구성 요소는 가능한 한 상태가 없도록 설계돼 장애 발생 시 재시작하거나 제거할 수 있으며 요청에 따라 확장할 수 있다.
SandboxOutbound 워커는 인터넷과의 모든 통신을 담당하며, Dynamic Workers를 통해 다른 구성 요소의 직접적인 네트워크 접근을 차단한다. 이 구성 요소는 CORS 정책을 적용하고 브라우저와 유사한 헤더를 추가하며 응답을 필터링하고 페이지별 쿠키를 분리한다. 또한 정책을 위반하는 요청을 403 코드로 거부한다.
PageScript는 각 페이지 또는 프레임마다 프로세스 외부의 별도 격리 환경을 사용하며, Rust로 작성된 Blitz와 Stylo CSS 파서의 일부를 활용한다. PageRenderer는 계산된 페이지 객체를 JPEG, PNG 또는 PDF와 같은 형식으로 클라이언트가 표시할 수 있는 프레임으로 변환한다. 실패 상황에 대응하기 위해 시스템은 오류가 전체 세션을 중단하는 대신 빈 프레임이나 누락된 요소로 나타나도록 설계됐다.
테스트 및 성능 결과
Kitesurf는 현재 21만 5천 개가 넘는 Web Platform Tests를 통과했으며 매주 수백 개의 성공적인 테스트가 추가되고 있다. 높은 테스트 범위에는 CSS, DOM, HTML, 선택, SVG 및 XHR 등 에이전트에 중요한 영역이 포함된다.
Browser Run을 통한 빠른 작업에서 5회의 중간 실행을 대상으로 14개의 URL 집합을 비교한 결과, Kitesurf는 스크린샷 캡처에 약 380밀리초의 CPU 시간을 사용한 반면 Chromium은 1173밀리초를 사용했다. HTML 추출에는 Kitesurf가 229밀리초, Chromium이 877밀리초를 사용했다. 메모리 사용량은 스크린샷 캡처에서 57.8MiB, HTML 추출에서 39.4MiB였으며, Chromium은 각각 271MiB와 273.7MiB를 사용했다.
반면 전체 시간에서는 Chromium이 더 빨랐다. 화면 캡처에는 Chromium이 637밀리초, Kitesurf가 1148밀리초를 기록했으며, HTML 추출에는 Chromium이 472밀리초, Kitesurf가 820밀리초를 기록했다. Cloudflare는 이러한 차이를 Chromium의 JIT 기능과 소프트웨어 렌더링 및 인코딩 비용에 따른 것으로 설명한다. 그러나 앞서 언급한 테스트에서 메모리와 CPU 사용량이 3~7배 낮아지는 점이 운영 비용 및 확장성과 더 밀접하게 관련된다고 본다.
제공 방식 및 제한 사항
Browser Run의 CDP 엔드포인트에서 browser=kitesurf 매개변수를 추가해 Kitesurf를 사용할 수 있다. Puppeteer, Playwright, chrome-remote-interface는 물론 MCP와 CDP를 사용하는 에이전트 도구와도 작동한다. Quick Actions를 통해서도 제공되며, URL 테스트, DOM 검사, 콘솔 메시지, 네트워크 활동 및 WebAssembly 사용량을 확인할 수 있는 공개 Playground도 제공된다.
Kitesurf는 페이지를 렌더링하거나 콘텐츠를 추출하고 PDF 또는 스크린샷을 생성해야 하는 에이전트에 적합하지만 Chromium 브라우저와 완전히 호환되지는 않는다. 현재 동영상 재생, WebGL 또는 실제 TLS 지문을 통한 로봇 방지 챌린지 핸드셰이크 처리를 지원하지 않으며, 지속적인 상태가 필요한 장기 인증 세션에도 적합하지 않다. Cloudflare는 필요한 사이트를 Kitesurf API 또는 Playground에서 테스트할 것을 권장하며, 필요할 경우 Chromium 기반의 기본 Browser Run을 사용할 수 있다고 설명한다.
Cloudflare는 CDP 지원 범위를 확대하고, 스크린샷과 PDF의 렌더링 정확도를 개선하며, WPT 테스트 호환성을 높이고, CPU·메모리 사용량과 전체 시간을 줄이는 작업을 진행하고 있다. 회사는 Kitesurf가 준비되면 소스 코드를 공개해 고객이 자신의 계정에 자체 버전을 배포할 수 있도록 할 계획이라고 밝혔다.