Ngày 6 tháng 8 năm 2026, Cloudflare đã phát hành Kitesurf — một trình duyệt không được viết cho con người, mà cho các tác nhân. Bên trong không có Chromium: động cơ được xây dựng trên Rust, biên dịch thành WebAssembly và hoàn toàn hoạt động trong các V8-isolates trên Workers. Công ty khẳng định rằng trong các tác vụ tác nhân điển hình, nó tiêu tốn ít CPU và bộ nhớ hơn từ 3 đến 7 lần so với Chromium. Bốn tháng trước đó, mã nguồn mở Obscura — cũng là Rust, cũng "dành cho các tác nhân" — đã thu hút hơn 22.000 sao trên GitHub, và Cloudflare đã thừa nhận rằng nguyên mẫu đầu tiên của Kitesurf là phiên bản Obscura trên Workers.
Thị trường động cơ tự động hóa đã bị chia rẽ: một bên là các runtime tác nhân nhẹ, tiết kiệm tài nguyên; bên kia là các bản dựng nặng của Chromium, có thể làm mọi thứ, bao gồm cả việc vượt qua các bài kiểm tra chống bot. Hãy phân tích từng yếu tố để xem mỗi loại thực sự mang lại điều gì, và nơi nào việc tiết kiệm kết thúc.
Các tiêu chí để so sánh
Các bài kiểm tra động cơ thường thích so sánh tốc độ và bộ nhớ, nhưng đối với việc thu thập dữ liệu và các tác nhân, có bốn trục độc lập quan trọng, và lợi thế về tốc độ không nói lên điều gì về các yếu tố khác:
- Chi phí khởi động — CPU và bộ nhớ trên mỗi trang. Đây là điều chuyển đổi trực tiếp thành hóa đơn hạ tầng khi có hàng ngàn phiên đồng thời.
- Tính đầy đủ của nền tảng web — bao nhiêu trang web hiện đại có thể được hiển thị chính xác. Điều này được đo bằng độ phủ của Web Platform Tests (WPT).
- Khả năng vượt qua kiểm tra chống bot — liệu phiên làm việc có vượt qua được TLS handshake, JS challenge và kiểm tra hành vi hay không.
- Kiểm soát truy cập mạng — bạn có thể quản lý IP và ASN mà trang web thấy yêu cầu hay không.
Kitesurf: tiết kiệm so với tính đầy đủ
Kitesurf được xây dựng từ các mô-đun: render và phân tích HTML/CSS trên Blitz, động cơ CSS Stylo từ Firefox, JS runtime Boa trên Rust, định dạng văn bản qua Parley. Theo lời công ty, quá trình phát triển mất 12 tuần.
Các con số từ bài kiểm tra của Cloudflare so với Chromium:
- CPU cho một ảnh chụp màn hình — 380 ms so với 1173 ms (ít hơn 3,1 lần);
- CPU cho việc trích xuất HTML — 229 ms so với 877 ms (ít hơn 3,8 lần);
- bộ nhớ cho một ảnh chụp màn hình — 57,8 MiB so với 271 MiB (ít hơn 4,7 lần);
- bộ nhớ cho việc trích xuất HTML — 39,4 MiB so với 273,7 MiB (ít hơn 7 lần);
- nhưng về thời gian thực hiện, Kitesurf chậm hơn: 1148 ms so với 637 ms cho ảnh chụp màn hình và 820 ms so với 472 ms cho HTML — ít hơn 1,7–1,8 lần.
Đây là một sự đánh đổi công bằng: bạn trả giá bằng độ trễ, nhưng có khả năng duy trì nhiều phiên đồng thời hơn trên một máy. Theo các tiêu chuẩn web, động cơ này hoạt động khá tốt cho độ tuổi của nó — vào thời điểm công bố, có khoảng 215.000 bài kiểm tra WPT đã vượt qua, và tài liệu hiện tại cho biết có hơn 235.000. Độ phủ theo các phần: DOM 97%, HTML 96%, Selection 99%, SVG 97%, Encoding 99%, CORS 95%, XHR 95%, URL 83%. Wikipedia, Hacker News và các SPA điển hình được hiển thị.
Kitesurf được kết nối một cách quen thuộc: điểm cuối CDP (có nghĩa là, Puppeteer và Playwright), MCP cho các tác nhân, các điểm cuối REST Quick Actions cho ảnh chụp màn hình và trích xuất HTML. Chỉ cần thêm tham số browser=kitesurf. Bản beta miễn phí, nhưng có giới hạn cho tài khoản; mã nguồn hứa hẹn sẽ được mở.
Các điều Kitesurf không làm được — và điều này đã được ghi trong tài liệu của nó
Danh sách hạn chế ngắn gọn, nhưng nó bao gồm toàn bộ hàng phòng thủ của các trang web hiện đại. Kitesurf không hỗ trợ:
- phát video;
- render WebGL;
- thực hiện bot-challenge với các dấu vân tay TLS thực sự;
- các phiên đăng nhập lâu dài, yêu cầu trạng thái liên tục.
Điểm thứ ba là điểm mấu chốt. Cloudflare tự viết: nếu nhiệm vụ gặp phải bot-challenge, hãy sử dụng Chromium thông thường trong Browser Run. Điều này có nghĩa là công ty, nơi đặt các thử thách này trên hàng triệu trang web, đã cảnh báo rằng trình duyệt nhẹ của chính họ không vượt qua được chúng. Đây không phải là một thiếu sót của bản beta, mà là hệ quả của kiến trúc: dấu vân tay TLS (JA3/JA4) được tạo ra trong ngăn xếp mạng, không phải trong trình render, và động cơ Rust trong isolate Workers về mặt vật lý thực hiện handshake khác với Chrome thực sự.
Hiệu ứng phụ của động cơ không chuẩn — tính độc nhất. Các kịch bản chống bot đã được hiệu chỉnh trong nhiều năm dựa trên các hiện tượng của Chromium: thứ tự thuộc tính, đặc điểm lỗi, thời gian API. Một động cơ không có những hiện tượng này không trông "sạch hơn" — nó trông khác, và "khác" trong việc đánh giá chống bot có giá trị cao hơn "như mọi người". Chúng tôi đã phân tích hiệu ứng này trong bài đánh giá các trình duyệt stealth năm 2026: các bài kiểm tra về độ sạch của JS fingerprint và kết quả trên các mục tiêu thực tế khác nhau, bởi vì các mục tiêu thực tế tính toán tổng hợp các tín hiệu.
Obscura: cùng một lớp, nhưng trên máy chủ của bạn
Obscura — đại diện mã nguồn mở hàng đầu của lớp này. Kho lưu trữ được tạo ra vào ngày 13 tháng 4 năm 2026, giấy phép Apache-2.0, tính đến cuối tháng 8 — hơn 22.000 sao. Bên trong là V8 thực sự, bên ngoài — CDP, tức là cũng là sự thay thế drop-in cho headless Chrome cho Puppeteer và Playwright.
Quyết định kiến trúc chính: Obscura không có quy trình dựng và render, nó không vẽ hình ảnh. Do đó, các con số từ bài kiểm tra của tác giả — trung vị trên 33 kịch bản cho tốc độ khoảng 21 lần và khoảng một phần bảy bộ nhớ so với headless Chrome. Trong việc tải liên tục các trang React trên bốn worker, nó đạt 40 trang mỗi giây với 112 MB bộ nhớ so với 3 trang mỗi giây với 4,2 GB ở Chrome. Độ phủ WPT cho "cốt lõi" (DOM, HTML, URL, fetch) — 83,3%, tức là 318.916 bài kiểm tra từ 382.891.
Sự khác biệt thực tế với Kitesurf không phải ở tốc độ, mà là nơi mọi thứ được chạy. Bạn tự triển khai Obscura — và tự quyết định qua lối ra mạng nào nó đi. Kitesurf sống trong mạng của người khác, và điều này dẫn chúng ta đến điểm chính.
Ai sở hữu IP đầu ra của bạn
Về việc tiết kiệm CPU, mọi người đã viết rất nhiều, nhưng về lối ra mạng — gần như không ai. Trong khi đó, Kitesurf chạy trên Workers, có nghĩa là các yêu cầu ra khỏi mạng Cloudflare, với ASN của nó. Không có quản lý IP đầu ra hoặc kết nối proxy riêng trong tài liệu của Kitesurf. Các nhà phát triển của Browser Rendering bên cạnh cũng gặp phải vấn đề tương tự: cố gắng thiết lập upstream-proxy qua proxyServer trong BrowserContext thất bại với net::ERR_PROXY_CONNECTION_FAILED, và không có địa chỉ egress cố định cho Workers được cung cấp theo tiêu chuẩn.
Đối với kịch bản mục tiêu của Cloudflare, điều này là bình thường: tác nhân truy cập các trang mở, chụp ảnh màn hình, trích xuất HTML. Nhưng ngay khi mục tiêu được bảo vệ một chút, bạn nhận được sự kết hợp tín hiệu tồi tệ nhất có thể:
- IP thuộc về một ASN đám mây lớn, tức là rõ ràng được đánh dấu là máy chủ;
- Dấu vân tay TLS không trùng khớp với bất kỳ trình duyệt thực nào;
- Bạn không thể thay đổi cả hai điều này, vì bạn không sở hữu ngăn xếp mạng hay lối ra.
Điều này giải thích tại sao cuộc trò chuyện về các tác nhân vào năm 2026 ngày càng chuyển từ tối ưu hóa runtime sang câu hỏi về quyền truy cập hợp pháp và có trả phí — từ các tác nhân đã ký đến các yêu cầu trả phí, mà chúng tôi đã đề cập trong bài phân tích ví cho bot và HTTP 402. Nếu trang web không cho bạn vào, động cơ tiết kiệm nhất thế giới cũng không giúp được gì: bạn đơn giản không thể có trang mà họ không cung cấp cho bạn.
Chọn cái gì cho nhiệm vụ
Kitesurf — khi các mục tiêu là công khai và có nhiều: giám sát các trang công khai, trích xuất HTML cho chỉ số RAG, chụp ảnh màn hình hàng loạt, các vòng qua tài liệu tác nhân rẻ. Thêm vào đó là bản beta miễn phí và không cần lo lắng về hạ tầng. Đừng sử dụng nó ở nơi có đăng nhập, chống bot hoặc yêu cầu địa lý cụ thể.
Obscura — cùng một loại tải, nhưng khi cần kiểm soát: hosting riêng, lối ra mạng riêng, các bản vá riêng. Phù hợp như một con ngựa làm việc cho công viên phân tích, nơi giá trang quan trọng, còn giao diện trang không quan trọng chút nào. Nó kết nối với proxy một cách tự nhiên, vì bạn quản lý toàn bộ quy trình.
Chromium thông thường dưới Playwright hoặc Puppeteer — khi cần video, WebGL, các phiên đăng nhập phức tạp và render thực sự. Tốn kém về tài nguyên, nhưng đáng tin cậy.
Các bản dựng Stealth của Chromium (Camoufox, nodriver, patchright, và từ mới nhất — CloakBrowser, đã thu hút hơn 30.000 sao từ tháng 2 năm 2026) — khi mục tiêu được bảo vệ và không có lựa chọn nào khác. Tài nguyên ở đó cao hơn một chút so với Chromium trần, nhưng điều quan trọng vẫn được giữ lại: ngăn xếp mạng thực sự, nơi bạn có thể thay thế lối ra cần thiết.
Và một yếu tố chung cho ba lựa chọn cuối cùng: động cơ quyết định bạn trông như thế nào ở cấp độ trình duyệt, trong khi proxy dân cư quyết định bạn trông như thế nào ở cấp độ mạng. Đối với các mục tiêu mở và các nhiệm vụ nội bộ, chỉ cần các địa chỉ máy chủ — chúng rẻ hơn và nhanh hơn. Đối với các nền tảng có bảo vệ thực sự, giá trang không được tính theo megabyte bộ nhớ, mà theo tỷ lệ phản hồi thành công.
Kết luận
Kitesurf và Obscura — một câu trả lời công bằng và, theo các con số, thành công cho nỗi đau thực sự: việc sử dụng Chromium để trích xuất HTML thực sự là lãng phí, và báo cáo của Apify và The Web Scraping Club đã xác nhận điều này — 65,8% chuyên gia vào năm 2025 đã sử dụng nhiều proxy hơn so với năm trước, và 58,3% đã tăng ngân sách cho chúng. Chi phí cho tự động hóa đang tăng lên, và việc tiết kiệm từ 3 đến 7 lần về bộ nhớ là một lập luận mạnh mẽ.
Nhưng việc tiết kiệm chỉ hoạt động cho đến khi gặp phải mục tiêu được bảo vệ đầu tiên. Động cơ nhẹ không vượt qua được bot-challenge — điều này đã được ghi trong tài liệu của chính Cloudflare. Runtime đám mây không cho phép quản lý IP đầu ra. Do đó, ngăn xếp tác nhân của năm 2026 được xây dựng từ hai lớp độc lập: động cơ rẻ cho các trang công khai hàng loạt và trình duyệt đầy đủ với lối ra mạng có thể quản lý cho mọi thứ khác. Cố gắng đóng gói cả hai lớp bằng một công cụ sẽ kết thúc bằng việc trả quá nhiều cho Chromium ở nơi mà Rust đã đủ, hoặc tỷ lệ chuyển đổi của trình phân tích bằng không ở nơi mà không đủ IP.
```