Cloudflare mở mã nguồn trình duyệt cho AI agent Kitesurf

Cloudflare vừa mở mã nguồn Kitesurf, trình duyệt dành riêng cho các AI agent, theo giấy phép Apache 2.0. Mã nguồn nằm trên GitHub, trang chủ dự án là kitesurf.dev. Trình duyệt này chạy trên Cloudflare Workers, không cần container trình duyệt mà vẫn phân tích được HTML, xử lý CSS và thực thi JavaScript.

Mục tiêu Cloudflare đặt ra khá thẳng thắn:

"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."

Nói gọn lại: trao cho agent một trình duyệt nhẹ, biết mở trang web, chạy script và tương tác với trang, với mức tiêu thụ CPU và bộ nhớ thấp hơn các trình duyệt đầy đủ như Chromium.

Từ thử nghiệm chuyển đổi đến mã nguồn mở: ba cột mốc

Điểm xuất phát của Kitesurf là obscura, một engine headless mã nguồn mở viết bằng Rust, với khẩu hiệu “không Chrome, không Node.js, không phụ thuộc”. Nhóm Cloudflare trước hết giao cho một AI agent chuyển nó sang Workers, nhưng kết quả ban đầu rất tệ; chỉ sau khi viết cho agent một kế hoạch chi tiết cùng tiêu chí thành công, bản mẫu mới chạy được một cách chật vật.

Theo blog của Cloudflare, từ lúc quyết định bắt tay làm đến khi phát hành chính thức mất 12 tuần. Lần ra mắt đầu tiên, Kitesurf được đưa vào Browser Run, dịch vụ tự động hóa trình duyệt headless của Cloudflare, dưới dạng bản beta miễn phí; nhà phát triển chỉ cần thêm tham số browser=kitesurf vào API là chuyển đổi được. Khi đó Cloudflare hứa sẽ “mở mã nguồn khi sẵn sàng”, và theo một số báo cáo, bài đăng không nêu lịch trình cụ thể. Việc mở mã nguồn lần này, do Phoronix đưa tin, coi như thực hiện lời hứa đó.

Về cách phát triển, nhóm dùng Web Platform Tests (bộ kiểm thử tuân thủ chuẩn của W3C) làm tiêu chí nghiệm thu cho AI agent, còn con người phụ trách kiến trúc và rà soát. Khi blog được đăng, Kitesurf đã vượt qua khoảng 215.000 bài kiểm thử, và mỗi tuần vẫn thêm vài trăm bài. Để thu hẹp khoảng cách giữa bộ kiểm thử chuẩn và các website thực tế, họ còn dùng Puppeteer chạy song song Chromium và Kitesurf trên trang thật, so sánh từng khẳng định (assertion) và ảnh chụp kết xuất.

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

Cấu trúc bên trong

Kitesurf được chia thành ba khối:

  • Engine: thành phần duy nhất giao tiếp với bên ngoài, xử lý giao thức Chrome DevTools (CDP) và lưu trạng thái phiên. Các client như Puppeteer, Playwright chỉ cần trỏ vào là dùng được.
  • PageScript: mỗi trang chạy trong một môi trường cô lập Workers riêng; phần phân tích HTML và CSS dùng mô-đun của engine kết xuất Blitz viết bằng Rust và Stylo của Firefox; khi gặp eval, vì Workers không hỗ trợ sẵn, lệnh được chuyển sang engine JS Boa viết bằng Rust để thực thi.
  • PageRenderer: vẽ đối tượng trang thành điểm ảnh, xuất ra JPEG, PNG hoặc PDF, không lưu trạng thái trang; nếu bị treo thì kết thúc luôn rồi khởi động lại.

Mọi yêu cầu ra mạng ngoài đều đi qua một thành phần duy nhất là SandboxOutbound, và cookie của mỗi trang được tách riêng như từng “lọ” độc lập. Giả định thiết kế của Cloudflare là mỗi lần tải đều là đầu vào không đáng tin, mỗi phiên bắt đầu từ trạng thái trống, nhằm đối phó với các rủi ro đặc thù của agent như prompt injection và an toàn khi gọi công cụ.

Ước tính theo bộ nhớ: một máy mở được bao nhiêu phiên

Cloudflare chạy thử trên 14 địa chỉ web, mỗi địa chỉ 5 lượt rồi lấy trung vị. Ở tác vụ trích xuất HTML, Kitesurf chiếm 39,4 MiB bộ nhớ, còn nhóm Chromium chạy sẵn chiếm 273,7 MiB, chênh nhau 7 lần; ở tác vụ chụp màn hình, mức chênh là 4,7 lần.

Theo số liệu tác vụ chụp màn hình, ước tính thô cho thấy 1 GiB bộ nhớ chứa được khoảng 17 phiên Kitesurf, còn với Chromium chỉ được 3 đến 4 phiên. Khi triển khai thực tế còn phải tính chi phí điều phối và mức đỉnh, nên tỷ lệ này chỉ nên xem là giới hạn trên. Theo chính Cloudflare, bộ nhớ và CPU mới quyết định hóa đơn; về thời gian thực, Chromium nhanh hơn 1,7 đến 1,8 lần, chênh lệch chủ yếu nằm ở khâu raster hóa và mã hóa ảnh, và sẽ tiếp tục được tối ưu.

Điểm yếu cũng được nêu rõ: hiện Kitesurf chưa phát được video, chưa kết xuất được WebGL, và cũng không dùng dấu vân tay TLS thật để vượt các bước xác minh chống bot. Các trang được liệt kê là hiển thị đúng gồm Wikipedia, Hacker News và TodoMVC trên nhiều phiên bản framework. Với nhà phát triển ở Trung Quốc, sau khi mã nguồn được mở, họ có thể tự triển khai lên tài khoản Workers của mình mà không phải qua hạn mức của Browser Run, nhưng khả năng tương thích với các website phức tạp thì phải tự kiểm tra.

Nguồn tham khảo: blog chính thức của Cloudflare, Phoronix, CocoLoop, H2S Media; số trung vị về CPU, bộ nhớ, thời gian xử lý trên bộ thử nghiệm 14 địa chỉ và số bài WPT đạt được đã được đối chiếu với blog của Cloudflare.