前端 · 2026年3月22日

Lightpanda实测:用Zig写的AI专用浏览器,内存只要Chrome的十分之一

做AI Agent爬虫的都知道,Headless Chrome是个资源黑洞。随便开几个tab内存就飙到几个G,启动慢,关闭还经常僵尸进程。这周GitHub trending上冒出来一个叫Lightpanda的项目,23K star,号称用Zig从零写的无头浏览器,专门给AI和自动化用。内存占用是Chrome的九分之一,速度快11倍。

吹得这么猛,必须拉下来跑一把。

安装:一个二进制搞定

Lightpanda不需要apt install一堆依赖,直接下载一个107MB的二进制文件就能跑:

curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux
chmod a+x ./lightpanda

没有npm、没有pip、没有Docker——就一个文件。这点比Playwright和Puppeteer的安装体验好太多了。Mac用户下aarch64-macos版本,Windows需要WSL。

三种模式

Lightpanda支持三种运行方式:

fetch模式:直接抓页面,类似curl但会执行JS

# 输出HTML
./lightpanda fetch --dump html https://example.com

# 输出Markdown(对AI友好)
./lightpanda fetch --dump markdown https://example.com

# 输出语义树(给Agent用的结构化数据)
./lightpanda fetch --dump semantic_tree_text https://example.com

serve模式:启动CDP server,兼容Puppeteer和Playwright

./lightpanda serve --host 127.0.0.1 --port 9222

mcp模式:作为MCP server接入AI Agent工具链

./lightpanda mcp

MCP模式是最有意思的——直接把浏览器变成AI Agent的工具,不需要自己写胶水代码。

实测:抓取速度对比Chrome Headless

测试环境:Ubuntu 22.04,x86_64,同一台机器跑两个浏览器,四个不同URL分别测速。

URL Lightpanda Chrome Headless 倍率
example.com 870ms 3270ms 3.8x
httpbin.org/html 1338ms 2778ms 2.1x
jsonplaceholder.typicode.com 3651ms 6215ms 1.7x
github.com/trending 4183ms 11814ms 2.8x

简单页面快3-4倍,复杂页面也能快2倍左右。Chrome每次启动要加载一整个Chromium运行时,Lightpanda直接进入工作状态。

内存:差距最夸张的地方

同样抓example.com,看两边的RSS内存占用:

浏览器 RSS内存
Lightpanda 20MB
Chrome Headless 191MB

9.5倍的差距。这意味着同一台8G内存的机器,Chrome能跑40个并发页面,Lightpanda理论上能跑400个。对于需要大规模爬取的AI训练数据场景,这个差距直接决定你要买多少台服务器。

semantic_tree:给AI Agent准备的杀手级功能

Lightpanda的semantic_tree_text输出模式值得单独说。普通的HTML dump给AI看太啰嗦,Markdown又丢失了交互元素信息。semantic_tree把页面转成这样的结构:

1 RootWebArea 'Example Domain'
 5 heading 'Example Domain'
 6 paragraph
  7 'This domain is for use in documentation examples...'
 8 paragraph
  9 link 'Learn more'

每个DOM节点有唯一编号和角色标注(heading、link、button、paragraph),AI Agent可以直接通过编号操作页面元素。GitHub首页的semantic_tree输出,能清晰地标出每个导航按钮、链接和内容区域,比截图+多模态识别的方案靠谱得多。

配合--strip_mode full还能去掉所有JS、CSS、图片等噪音,只保留纯内容和交互元素。给LLM的上下文窗口省token。

CDP兼容:现有Puppeteer脚本可以直接迁移

Lightpanda的serve模式实现了Chrome DevTools Protocol,现有的Puppeteer脚本几乎不用改。实测用puppeteer-core连接:

import puppeteer from 'puppeteer-core';

const browser = await puppeteer.connect({
  browserWSEndpoint: "ws://127.0.0.1:9222",
});

const context = await browser.createBrowserContext();
const page = await context.newPage();

await page.goto('https://example.com', {waitUntil: "load"});
const title = await page.title();
console.log(title); // "Example Domain"

const links = await page.evaluate(() => {
  return Array.from(document.querySelectorAll('a')).map(a => ({
    text: a.textContent,
    href: a.href
  }));
});

await page.close();
await browser.disconnect();

724ms完成整个连接-导航-提取-断开的流程。需要注意的是puppeteer.connect()而不是puppeteer.launch(),因为浏览器实例由Lightpanda管理。

踩坑:Beta阶段的现实

测完优点说问题。Lightpanda目前还是Beta,有几个明显的坑:

1. 部分网站会超时

WordPress站点在测试中直接报OperationTimedout。原因是Lightpanda的Web API实现还不完整,碰到某些JS特性就卡住了。GitHub这种现代SPA反而没问题。

2. CSS渲染完全没有

Lightpanda不做任何视觉渲染,没有layout引擎。如果你需要截图或者视觉回归测试,它帮不了你。它的定位很明确——只处理DOM和JS,不画画面。

3. Web API覆盖率有限

官方也承认,Web API有几百个,目前只实现了一部分。XHR、Fetch、Cookie、表单这些基础的都有,但Web Workers、WebGL、Service Worker这类就别想了。

4. 没有多tab

CDP server目前每个连接是独立的context,不支持在一个session里开多个tab做跨页面操作。Chrome Extension之类依赖多tab的场景跑不了。

跟Playwright/browser-use怎么选

直接说结论:

用Lightpanda:批量数据采集、AI训练语料爬取、API测试、CI/CD里跑轻量级E2E、作为AI Agent的眼睛看网页内容。尤其是需要控制成本和并发量的场景。

用Chrome/Playwright:需要完整JS兼容性的复杂SPA、需要截图/录屏、需要模拟真实用户交互(拖拽、文件上传)、需要浏览器扩展。

Lightpanda不是要替代Chrome,它的目标很精准——AI时代80%的浏览器自动化场景根本不需要完整的浏览器渲染能力,只需要DOM和JS执行。把这80%的场景做到极致轻量和极致快,就足够了。

前端的视角

从前端架构的角度看,Lightpanda代表了一个趋势:浏览器正在分层。一层是给人看的(Chrome、Safari),一层是给机器用的(Lightpanda、jsdom、happy-dom)。之前jsdom和happy-dom只能跑简单的DOM操作,碰到真实网站基本没戏。Lightpanda用Zig+V8做到了”能跑真实网站的JS但不渲染”的平衡点。

对于正在搭建AI Agent基础设施的团队,建议关注它的MCP模式。浏览器作为Agent的眼睛和手,轻量化是刚需。一个107MB的二进制比几百MB的Chromium部署起来简单太多了。

项目地址:https://github.com/lightpanda-io/browser