文章 / #089

AI 浏览器来了:Cloudflare 造的,没给人留界面

你每天打开最多的软件,应该就是浏览器。可 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 参数就能切;它不给你装,但官方留了个试玩网页,不用配置,点开就能看它怎么渲染。亲自验一遍,比看任何对比表都准。

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

数据来源

DAVID YIN · 2026 · 08 · 10 · 杭州
← Older · #090
AI 千问把多模态做成插件,装进 Claude Code 和 Gemini——阿里的算盘是什么