Kitesurf:智能体优先的浏览器,自动化脚本跑出极限性价比


每次打开网页,看那堆广告和动效,脑袋都嗡嗡的。如果网页像个牛皮癣患者,那AI看网页就像个高度近视还忘带眼镜的。

稍微有点耐心的看官都知道,人工智能看网页和我们看网页完全是两码事。人类享受视觉,AI只认数据。这就带来一个巨大的撕裂:现在的浏览器,都是给人做的,又胖又慢又费钱。当让AI去干活,等于开着18轮大卡车去便利店买瓶水,油钱比水还贵。

但就在前几天,有个叫Cloudflare的团队,用一个骚操作把这事给掀了。他们造了个专门给AI用的浏览器,取名Kitesurf,12周搞定,内存占用直接砍掉7倍。

文章会讲清楚这玩意儿到底怎么运作、为什么能这么省、以及AI网页浏览的底层逻辑到底该长什么样。

浏览器这东西,一开始就不是为AI准备的

每次说起浏览器,人们脑子里跳出来的永远是Chrome、标签页、书签、五彩斑斓的插件。但所有的设计逻辑都围绕一个核心用户:坐在屏幕前,有耐心,会用鼠标的人类。

但人工智能这个新物种,它怎么看网页的?它不看。它只读。它关心的是这堆HTML代码里能不能扒拉出有效信息,这串字符烧掉了多少算力,这次调用花了多少毫秒。至于那个页面滑动是不是丝滑60帧,这个字体在深色模式下好不好看,关它什么事。

这就像给一个只吃压缩饼干的宇航员,配了一套米其林三星后厨。不仅多余,简直碍事。因为传统浏览器引擎,比如Chromium,那是一个庞然大物,加载一个页面要拉起渲染进程、GPU进程、各种沙箱进程,随便开个网页几百兆内存就没了。让AI干活的时候,每开一个页面就起一个完整的浏览器实例,这成本谁受得了。

于是,一方面,越来越多的人工智能代理(Agent)需要上网查资料、填表单、抓数据;另一方面,它们正在被笨重的浏览器活活拖死。开发团队发现,传统浏览器里大量的资源消耗都用在了对人类视觉的讨好上,而这些对AI模型来说,纯属噪音。

反常识操作:12周从零开始造了个浏览器

通常情况下,造个浏览器是工程界的珠穆朗玛峰。想当年火狐、Chrome出来的时候,哪个不是几百万行代码垒起来的。正常人的脑回路是,既然Chrome这么耗资源,那就优化Chrome呗。

但Cloudflare这帮人,脑回路比较清奇。他们12周前开了个会,说:要不我们自己写一个?而且,他们真的干了。

这个叫Kitesurf的玩意儿,有个特别狠的设定:它就没打算在你电脑上跑。它跑在Cloudflare Workers上面,就是那种用完即焚的边缘计算节点。网页解析、排版、渲染,全在云端隔离的小盒子里搞定,活干完,盒子一关,钱就花那么一丢丢。

这就把浏览器的定义给掀了。浏览器不再是你桌面上那个吞内存的怪兽,而是一个可以随时调用、用完就扔的网络函数。这个思路的核心叫隔离,每个页面会话都是独立的,老死不相往来。即便某个网页里有恶意代码,搞崩了也就崩它自己那一个盒子,隔壁正在跑的AI任务动都不动。

那个叫Engine的核心引擎

这套系统运作起来,有点像个大工厂。首先要有个接单的,也就是Engine(引擎)。这玩意是唯一跟外面打交道的主儿,它开了一个门,用的是Chrome DevTools Protocol,简称CDP。这玩意儿说白了就是给外部工具用的标准调试接口。

这意味着什么?意味着Kitesurf虽然是个新浏览器,但它能听懂Chrome的话。用Puppeteer写脚本?用Playwright做自动化?把地址一换,参数里加个browser=kitesurf,原来操控Chrome的那些代码,现在全都能操控Kitesurf。这种兼容策略,直接抹平了学习成本。

Engine干活很简单,它不负责解析网页,它只负责状态管理。谁的会话在哪儿,谁该渲染下一帧了,它像个前台,把请求分发下去,然后把结果打包还给用户。因为不干重活,这玩意儿很轻,而且随时能复制,来一百个任务就起一百个Engine,毫无压力。

有网友说:核心引擎是基于 Blitz ( https://github.com/dioxuslabs/blitz ) 构建的:Blitz 是一个新的模块化(开源)浏览器引擎

用Rust搭的PageScript,把网页大卸八块

真正的硬骨头,在Engine后面。当Engine接到一个活,说“去,把维基百科给我看了”,它就会叫醒一个更厉害的伙计:PageScript。

这东西是Kitesurf的灵魂。它利用Cloudflare Workers的动态Worker功能,为每一个页面专门拉起一个长期运行的隔离环境。在这个环境里,有个干干净净的globalThis,还有个DOM(文档对象模型),就是网页结构的那棵大树。然后它开始干活。

网页拿过来,一堆HTML和CSS。Kitesurf没用Chrome那套,它用了两个用Rust写的神器。一个叫Blitz,一个叫Stylo。Stylo是Firefox用的那个超快CSS解析引擎,Blitz是个模块化的渲染引擎,专门啃排版。

这俩配合,咔咔把网页拆了。但这里面有个坑,叫eval。网页里的JavaScript随时可能甩出一段动态代码让浏览器当场执行。但Workers的环境为了安全,默认不让用eval。咋办?这帮人又搞了个骚操作,塞了个用Rust写的JavaScript解释器,叫Boa JS,进去。这相当于在一个运行环境里,又套了个运行环境来执行那些不守规矩的代码。

虽然听起来慢,但对付偶尔冒出来的eval已经够用了。等以后Workers原生支持eval了,这层套娃就能去掉。

管渲染的PageRenderer,跟像素死磕

页面的结构树(DOM)有了,样式也算好了,但最终要给AI看的,要么是结构化的文本,要么是一张图。PageRenderer就是干这个的。

这是个专门负责画画的组件,但它画画的逻辑跟Chrome也不一样。它依然用Blitz里叫blitz-paint的模块,把文字排成行,把形状填上色。Engine要截图的时候,就通过Cloudflare Workers自带的RPC(远程过程调用),喊一嗓子:PageRenderer,来张图!

PageRenderer接活后,从PageScript那边拿当前页面的场景数据,再把字体图片这些静态资源拽过来,刷一下,合成一张JPEG或者PNG,扔回去。关键看这里:PageRenderer自己是不记事的。它就是个画工,画完就把笔一扔。所以Engine随时可以把它掐了再重启,就算卡住了,重新发个RPC请求又是条好汉。

这种无状态(Stateless)设计,让整个系统变得极度廉价。因为不用操心恢复数据,挂了就重启,成本低到可以忽略不计。

215000道测试题,以及那个可笑的Doom

一个新浏览器,说破天也得看兼容性。Kitesurf团队心里门清,所以他们一上来就怼上了Web Platform Tests(WPT),这是业界公认的浏览器标准测试大礼包。

目前,Kitesurf已经通过了超过215000项测试,而且每周还在加几百个。测试的重点都集中在AI最关心的部分:CSS好不好使,DOM对不对,HTML解析准不准。至于那些给人类看的花哨玩意儿,优先级往后稍稍。

但最让人拍大腿的,是他们的终极测试:运行Doom。对,就是那个上古射击游戏。内部有个老实验,把Doom移植到了Workers上。现在用Kitesurf打开,居然能玩。虽然这游戏对AI任务屁用没有,但这象征意义太大了——你连游戏都能跑,那些正经网页还不得乖乖听话。这就像一个冷笑话,证明了这浏览器真的能动。

性能数据单:砍掉3.8倍的CPU,省下7倍内存

口说无凭,得看数据。Cloudflare团队拿14个常见网站做了个对比,一边是Kitesurf,一边是Chromium。

结果让开发者眼睛发直:

  • 在CPU占用上,截个图,Chromium用1173毫秒的CPU时间,Kitesurf只用了380毫秒,少了3.1倍。
  • 提取个HTML,Chromium花877毫秒,Kitesurf只用了229毫秒,少了3.8倍。

在内存占用上更夸张:

  • 截图时Chromium吃掉271兆内存,Kitesurf只吃57.8兆,少了4.7倍。
  • 提取HTML时,Chromium吃掉273.7兆,Kitesurf只吃39.4兆,少了7倍!

代价是什么?是速度。

墙钟时间(从发出请求到拿到结果的实际耗时)上,Chromium截图只花637毫秒,Kitesurf要1148毫秒,慢了1.8倍。提取HTML,Chromium 472毫秒,Kitesurf 820毫秒,慢了1.7倍。

Chromium目前跑得快,因为它的JIT即时编译器热过身了,软件渲染也比Kitesurf的CPU渲染快。但问题是,速度慢点能忍,内存和CPU的账单忍不了啊。省下来7倍内存,意味着同样成本下能跑7倍的任务量。这买卖怎么算都划算。

结语:开给AI的专属通道

Kitesurf不是什么全能的救世主,它明说了看不了视频,搞不了WebGL,也过不了那种需要真实指纹的反爬虫验证。但在它的舒适区——AI抓取数据、截图留档、填表自动化——这玩意儿就是一把锋利的手术刀。

回头看看,这不仅是技术上的取舍,更是观念的矫正。浏览器终于可以不为了讨好眼球而活。Kitesurf为了AI模型,砍掉了所有人类视觉包袱,用Rust和WebAssembly(Wasm)搭地基,用Worker做隔离,用无状态换弹性,甚至准备日后开源。当所有AI都配上一套这么轻量级的专属浏览器,再回头看现在那些笨重的云端浏览器集群,就像用大哥大对比智能手机。

归根结底一句话:让AI用浏览器,别用人的标准去衡量,要用算力和账单去衡量。

###总结:

这篇文章把造浏览器的工程问题掰开揉碎,看到了本质是服务对象的错位。当服务对象从“人”变成“机器”,功能取舍和资源分配就得推翻重来。Kitesurf的诞生并非为了炫技,而是云计算时代下性价比的必然选择。然而,过于追求轻量化必然导致兼容性缺失,如何在轻量与通用之间继续博弈,是它未来要走的路。哦对了,它跑得还是比Chrome慢,但这重要吗?在省下的70%成本面前,那点延迟真不算事。