# AI 浏览器来了：Cloudflare 造的，没给人留界面

- URL: https://davidyin.dev/writing/248-20260810-cloudflare-kitesurf-agent-browser/
- 作者: David Yin
- 发布: 2026-08-10
- 标签: Cloudflare、AI Agent、浏览器、Kitesurf
- 摘要: Cloudflare 发布的浏览器 Kitesurf 专给 AI 代理用：没有给人的界面，也没有安装包，整个跑在它的服务器上，对外只开一道给程序走的接口。这篇讲清楚它为什么长这样，以及浏览器这个入口正在发生什么变化。

你每天打开最多的软件，应该就是浏览器。可 Cloudflare 刚发布了一款新浏览器，偏偏不是给你用的——它专给 AI 代理用，压根没打算让你当它的用户。

这款叫 Kitesurf 的浏览器，没有给你用的界面，你也装不到自己电脑上——没有安装包，『下载』这回事不存在。它整个跑在 Cloudflare 的服务器上，对外只开一道给程序走的自动化接口；官方唯一留给人的，是一个调试用的试玩网页。它服务的不是人的眼睛和手，是一个程序。

看热闹的人盯着它省多少内存、比 Chrome 慢多少，但这次发布真正的分水岭是另一件事：**浏览器诞生三十多年，头一回有人明确造了一款不给人用的浏览器。**造浏览器的前提变了——以前先问人用得顺不顺，这次先问程序跑得省不省。

## 人要的那些，它一样没给

AI 替你上网干活，背后得有个真浏览器在跑——看网页、抽数据、点按钮，全靠它。一个 agent 配一个，一百个就配一百个。敢为 AI 另造一个浏览器，Cloudflare 的底气来自一份需求清单：AI 不在乎标签页、主题、扩展、跨设备同步，它在乎的是 token 数（一次能喂给模型的文本量）、性能和成本。视觉完美和六十帧顺滑无所谓，CSS 解析差一点、渲染不是像素级，agent 也不在乎。结构化的机器可读内容才重要。

威胁模型还整个换了——prompt injection（提示词注入，让网页里的文字反过来指挥 AI）和工具安全成了头号问题。以前要防的是恶意网站攻击用户，现在要防的是网页里藏着的指令反过来操纵 agent。清单上划掉的每一行，都是账单上省下的钱。

## 砍得有多狠：连 Chrome 的内核都没用

减到极致，就是自己造一个。十二周，从一个开源原型做到能发布，放在过去这种事是按年计的。灵感来自一个叫 obscura 的开源项目——用 Rust 写的无头引擎（不开窗口、纯后台跑的浏览器引擎），口号是「不要 Chrome、不要 Node.js、不要依赖」。

整个浏览器跑在 Workers 上——Cloudflare 的边缘运行平台，代码放在离用户最近的数据中心跑、用完即走；组件大多是 Rust 写的，编译成 WebAssembly（把 C、Rust 这类语言编成能在浏览器里高速运行的格式）再塞进去。一个浏览器，赌在一个用完即走的运行环境上。

架构上拆成四个组件，各管一摊：一个入口接自动化工具，一个格子管一个页面，一个专职出图，还有一道安全闸，所有外网请求都得从它这儿过。哪个组件卡死、被坏页面拖住，都只烂在自己那一格里，拖不垮整场任务。

对上名字：入口叫 Engine，管页面的是 PageScript——一个页面一个独立的隔离沙箱，各干各的。只有 Engine 有状态，其余都随手可弃：出图的卡住直接杀了重来，安全闸把跨域、不合规矩的请求直接拦下。这才是 agent 浏览器该有的脾气：默认不信网页，也默认不信自己。

最能说明问题的是它没套壳 Chromium（开源浏览器内核，Chrome 就基于它）——HTML、CSS 的解析用 Blitz 和 Stylo，偶尔要动态执行的代码用 Boa 顶上，三个都是现成的 Rust 组件，拼成一条够 agent 用的管线。Chrome 背着的那整套包袱，它一个都没背——那套包袱，本来就是为屏幕前的人准备的。

管线全是新的，协议是标准的——对外讲 CDP（Chrome 调试协议，浏览器自动化的事实标准），Puppeteer 这类工具写的客户端不用重写，改个 browser=kitesurf 参数就能切过来。

## 没有人在等，所以敢慢

然后它过了外人看来夸张的一关：21.5 万条 WPT 测试——浏览器界公用的测试集，各家浏览器都拿它当尺子。它扛住了，而且每周还在往上加几百条。一个十二周的浏览器，在追着整个浏览器标准跑。

性能上，Cloudflare 把对比表原样贴了出来：跟一批常驻的 Chromium 实例比，内存占用最大差 7 倍。同样抽一次网页，Chromium 要占 270 多 MB，它只用个零头。一个 agent 配一个常驻实例，一千个 agent 的账单，就是这么滚起来的。

CPU 用量、内存占用全线低于 Chromium，唯一输掉的是墙钟时间（从发起到出结果的秒表耗时）：抽 HTML 慢 1.7 倍，截图慢 1.8 倍。多花的这点时间，在 agent 的账单里几乎不占地方。**但敢慢的真正前提，不是账单不按秒算，是屏幕前根本没人在等。**对人而言，这是能感觉到的卡；对一个排队跑批量任务的程序，慢这一点不算什么——它不着急，也没人替它着急。

效果也不差：TodoMVC（前端经典演示项目，五个框架版本都跑得动）、维基百科、Hacker News、Cloudflare 自家博客和大部分控制台，都渲染得像模像样，甚至还能跑 Doom——九十年代那个射击游戏。一个十二周的项目做到这个程度，凭什么？

## 测试当靶子，AI 才不飘

这项目里最难的一关，是让 AI 写浏览器的时候不失控。他们把解法写得很直白——把 WPT 那批测试当靶子，交给 AI 一条条打中；人类只干两件事：定架构，和评审 agent 交上来的方案。哪批功能先做、测试先跑哪一摊，都是人排好的序，AI 只负责把分内事做对。测试过不过，机器说了算，没有扯皮的空间。

最让我在意的就是这个。这套做法里，最值钱的是那个工程判断——**给 agent 一个机器可判定的成功标准，它就能干重活；没有靶子，它就飘。** 太多 AI 协作项目最后烂在「差不多就行」上——输出没法验证，agent 的每一次修改都是在猜。Cloudflare 等于把「浏览器该长什么样」这个天大的问题，拆成了二十一万五千个可以自动判分的小问题。你让 AI 改代码，就得有测试；你让 AI 查资料，就得有核对清单。没有靶子，再聪明的模型也是盲写。

所以我不觉得它是 PPT 产品。十二周的项目，敢把对比表原样贴出来，输掉的那一栏就摆在那，不遮不掩。这种把坏消息一起发布的做派，比一百页架构图更能说明团队在认真做事。

## 它干不了的活，自己先写明白了

该说的反方也得说。前面那个慢，是单次操作的数字；agent 干活是一步接一步的截图、抽 HTML、点按钮，每一步都慢一点，几十步累加起来，体感就是拖沓。我的判断是，多步交互里，慢会被放大。

还有一张清单，Cloudflare 自己列的：它现在播不了视频，渲染不了 WebGL（网页里的 3D 图形），过不了网站的机器人验证握手（那种靠真实网络指纹判断你是不是真人的挑战），也撑不起十分钟带持久状态的登录会话。真实网站里这几样恰恰很常见——带登录态的管理后台、视频站、重交互的应用，现在还得回 Chromium。

所以它的适用面，比那张测试成绩单听起来窄：剩下的部分，留给 Chromium 继续干。它把「够用」重新定义了一下——读内容、抽数据、出截图、批量自动化，这些 agent 的主流活儿，它全包了。

Kitesurf 现在是 beta，免费——想试的，在 Browser Run（Cloudflare 的无头浏览器自动化服务）加个 browser=kitesurf 参数就能切；它不给你装，但官方留了个试玩网页，不用配置，点开就能看它怎么渲染。亲自验一遍，比看任何对比表都准。

它计划开源，目标是让客户能把自己那份部署在自己账号里。

## 数据来源

- Cloudflare 官方博客：《Introducing Kitesurf: The agent-first browser that runs in V8 isolates on Cloudflare Workers》（作者 Celso Martinho）
- GitHub：《DioxusLabs/blitz — A radically modular HTML/CSS rendering engine》
- GitHub：《servo/stylo — CSS engine that powers Servo and Firefox》
- GitHub：《boa-dev/boa — An embeddable JavaScript engine written in Rust》
- GitHub：《h4ckf0r0day/obscura — The headless browser for AI agents and web scraping》
- GitHub：《web-platform-tests/wpt — Test suites for Web platform specs》
