Lightpanda:给 AI Agent 装个 123MB 无头浏览器的快速指南
【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser
你让 Agent 并发抓几百个页面,内存墙先于结果到——Headless Chrome 一个实例就是 2GB。Lightpanda 就是冲着这个痛点来的:一个用 Zig 从零写的无头浏览器,能跑 JavaScript、能连 CDP,峰值内存只有 123MB 左右。
它到底是什么
它不是 Chromium 的 fork,也不是 WebKit 的补丁,而是从零用 Zig 写出来的无头浏览器。
技术栈很克制:Libcurl 管网络请求,html5ever 解析 HTML,V8 负责执行 JS,唯独没有图形渲染模块。说白了,它只保留服务器真正要用的那三件事——发请求、建 DOM、跑脚本。
🚀 五分钟跑起来
装好。macOS 走 Homebrew,服务器环境用 Docker 更省事:
docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:nightly你会看到容器后台起来,9222 端口等着接 CDP 连接。
验证。本地二进制直接问一句版本:
lightpanda version你会看到一行版本号,说明二进制能跑。
跑个最小例子。抓一个页面并把渲染后的 HTML 打到终端:
lightpanda fetch --dump html --log-format pretty https://demo-browser.lightpanda.io/campfire-commerce/你会看到经过 JS 处理后的 HTML,而不是原始静态源码。
它能帮你干哪些事
给 AI Agent 配个浏览器壳
Agent 要操作网页,传统做法是外挂一个 Chromium,内存和延迟都高。lightpanda agent让 Agent 跑在同一进程里,每次工具调用都是直接操作,导航、点按钮、填表、抽结构化数据一气呵成。会话产物是确定性脚本,/save存下来后用lightpanda run回放,上线时不再依赖模型。
让 JS 渲染页面不再拖慢采集
静态爬虫拿不到 Ajax 和 SPA 里的内容,硬上完整浏览器又太重。Lightpanda 用 V8 把 JS 跑完,fetch直接吐出 DOM 结果,还支持--dump markdown、--dump pdf转换格式。你只管喂 URL,它把渲染这一步消化掉。
把现有 Puppeteer 脚本原样搬过来
你已经有一堆 CDP 脚本,不想重写。起个 CDP 服务:
lightpanda serve --obey-robots --host 127.0.0.1 --port 9222Puppeteer 用browserWSEndpoint: "ws://127.0.0.1:9222"连上去,其余代码不用动。
多 Agent 并发不互相踩页
lightpanda mcp --port 9223把服务挂到 HTTP 上,每个连接路由到独立会话——各自的页面、Cookie、内存互不干扰。发同一个Mcp-Session-Id还能让几个 Agent 共享一个浏览上下文。
📊 算一笔性能账
在 AWS EC2 m5.large 上请求真实网页的官方基准:
| 指标 | 本项目 | 参照系 |
|---|---|---|
| 内存峰值(100 页) | 123MB | 2GB(Headless Chrome) |
| 执行耗时(100 页) | 5s | 46s(Headless Chrome) |
翻译成实际体验就是:同一台机器上,Headless Chrome 跑完 100 页要占掉 2GB、花 46 秒;Lightpanda 用不到 1GB 内存、5 秒收工。同一台机器能多开好几个实例,这才是并发采集时真正省钱的地方。
🔩 为什么这么设计
为什么从零写,而不是 fork Chromium。因为目标是把内存和启动时间压到最低,而 Chromium 里大部分模块(合成、渲染、GPU 管线)在服务器上是用不上的。从零开始只留网络、DOM、JS 三件套,才能做到 123MB 这个量级。代价是它没有像素级渲染,--dump png/pdf只是文本级渲染,不是真实截图。
为什么用 V8,而不是自己造一个 JS 引擎。自写引擎省不了多少内存,却会把时间全耗在兼容性上。直接挂 V8 复用成熟实现,再用快照(snapshot)预编译常用环境加速启动,工程上划算得多。想自己编译,仓库里的 Makefile 和zig build run就是入口,JS 侧封装在 src/browser/js/。
谁该用、谁不该用
适合:内存吃紧、要跑大批量 Agent 或采集任务的服务器场景;已经有一套 CDP 脚本、只想换个更省执行引擎的团队;需要在服务端无头跑 JS 渲染内容的流水线。
不适合:页面依赖 Canvas、像素级渲染或需要真实截图比对的——它没有图形渲染引擎,帮不上忙;需要 100% 兼容任意 JS 框架或复杂站点的生产关键路径,它还在 Beta,覆盖仍在扩展,别急着上生产,先拿非关键链路验证。
回到开头那个内存账单:把最吃内存的那条抓取链路先切到 Lightpanda 上,看一台机器能多扛多少实例,数字会直接说服你。
【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考