← 文章 / 开源项目
lightpanda 5小时前 · 2026-10-03 00:22:03 · 2 阅读

Lightpanda 1.0:脱离测试阶段,正式支持生产环境

Francis Bouvier
Lightpanda 1.0: Out of Beta and Ready for Production

历经两年攻坚与 1 万次提交,Lightpanda 正式退出 Beta 测试阶段。它通过了超过 170 万项 Web 平台测试(WPT)子测试,并默认启用跨域资源共享(CORS)机制。目前,众多 AI 智能体、搜索 API、索引及数据提取公司已将其投入生产环境,每日处理数十亿个网页请求。

完整的更新日志已收录于 1.0.0 版本发布说明 中。

我们为何构建 Lightpanda

Lightpanda 的诞生源于我们多年来长期忍受的一个痛点。在上一家公司,我们每天从超过 2000 万个网页中收集数据,依赖的是由无头 Chrome 实例组成的集群。维持其运行不仅昂贵,维护也令人头疼。因此,我们着手打造了一直渴望拥有的浏览器。

如今,你可以用现有技术栈驱动它:支持通过 Puppeteer、Playwright、Selenium 或 ChromeDP 进行自动化。也可以直接安装到你的项目中,只需运行 pip install lightpanda 或 npm install @lightpanda/browser。针对智能体场景,我们提供了原生 MCP 服务器。此外,你可以调用命令行界面(CLI)导出 HTML、Markdown 或语义树,甚至以智能体模式下达简单的自然语言指令来执行任务。

为什么 Lightpanda 已具备生产就绪能力

我们的浏览器引擎完全从零开始,基于第一性原理构建:使用 Zig 编写,省略了图形渲染层,且能以极低的内存和 CPU 开销运行现代 Web 的 JavaScript。

2024 年 11 月发布 Beta 版时,由于 Web API 覆盖不全,许多网站无法加载。这是一个持续演进的过程(即便 Chrome 也不例外)。但如今,我们有信心让你在生产环境中放心依赖 Lightpanda。

在摘下 Beta 标签之前,必须满足两个条件。第一,Lightpanda 必须运行足够多的 Web 平台功能,以确保真实网站能够正常工作。第二,它必须强制执行与其他浏览器相同的安全规则,因为该引擎需要运行你并未编写的代码。

通过 170 万项 WPT 子测试

Lightpanda 在 Web Platform Tests 中通过了 1,739,845 个子测试。这是浏览器厂商共用的合规测试套件,用于确保大家以相同方式实现 Web 标准。2024 年 11 月,Lightpanda 的通过数为 2,645。所有运行结果都公开在WPT 仪表盘上。

Lightpanda passing WPT subtests over time

增长来源

  1. 2024 年 11 月至 2026 年 3 月:针对DOM、HTML、Fetch、URL、Cookie 和事件进行的 API 开发,使 Lightpanda 的通过数从 2,645 提升至约 29 万。
  2. 2026 年 4 月:encoding/ 套件开始通过测试。该套件包含约 115 万个子测试,主要涉及大量自动生成的字符映射表,因此计数在几天内大幅跃升。
  3. 2026 年 4 月至 9 月:来自 workers、Shadow DOM、IndexedDB、XPath、WebSockets 和表单功能的测试贡献了另外约 34 万个通过数。

Lightpanda 与 Chrome 和 Firefox 的对比

作为参考,根据它们在 wpt.fyi 上的 2026 年 9 月运行结果,Chrome 通过了 2,184,491 个子测试,Firefox 通过了 2,137,997 个。Lightpanda 的通过数约为 Chrome 的 80%。

这一差距的大部分源于我们在初始阶段做出的决定:不进行图形渲染。Chrome 通过而 Lightpanda 未通过的子测试中,超过一半位于 CSS、编辑和 SVG 套件,这些主要测试布局和绘制。

CORS 是更广泛的安全推进的一部分

CORS 的作用

从Lightpanda 1.0开始,浏览器会对页面发出的每个 fetch() 和 XMLHttpRequest 强制执行 CORS。如果服务器未声明允许跨源页面读取其响应,该页面就无法读取。

所有浏览器都应用同源策略:从一个源(协议、主机和端口)加载的脚本无法读取来自另一个源的响应。CORS 是服务器放宽该规则的机制。它通过 Access-Control-Allow-Origin 等响应头来启用此功能。

对于可能改变状态的请求,比如 PUT 或带有自定义请求头的请求,浏览器会先发送一个 OPTIONS 请求,称为预检(preflight)。只有当服务器的响应允许时,浏览器才会发送真正的请求。具体规则定义在 Fetch 标准中。

对于运行在你云网络内部的无头浏览器来说——通常由 AI agent 驱动去访问未经审核的页面——跳过这些检查是一个重要的安全隐患。恶意页面可以调用内部服务或当前会话已登录的 API,并读取返回的内容。

专用的无头浏览器本身就能降低安全风险,因为它不会携带你日常浏览器中已登录的会话。我们曾撰文讨论过AI agent 时代的浏览器安全,以及为什么我们认为每个 agent 都应该有自己专属的浏览器。

Lightpanda 在 cors/ 测试套件的 463 个子测试中通过了 371 个,通过率 80%。我们正在处理剩下的 92 个,进度可以在仪表盘上查看。

其他安全修复

过去六个月,我们还发布了以下改进:

  • 可选的资源加载(0.4.0):iframe、worker 和外部样式表只有在通过 --load-resources 明确请求时才会加载。页面代码默认不执行,除非任务需要。
  • 跨源重定向时剥离 Authorization(0.4.0):为一个主机设置的凭证不会跟随重定向发送到另一个主机。
  • 更严格的 cookie 处理(0.2.9 至 0.4.1):页面 JavaScript 无法修改 HttpOnly cookie;跨站导航时 SameSite=Strict 依然生效;SameSite=Lax 的例外仅适用于安全方法;属于 public suffix 的 Set-Cookie 域名会被拒绝。
  • 网络过滤(0.2.9 起):--block-cidrs 和 --block-private-networks 可以让浏览器远离你指定的地址范围,比如私有子网或云元数据端点。
  • 解析器和协议加固:修复了通过 URL authority 进行 CR/LF 注入的问题(0.3.1)和 WebSocket 消息长度解析中的整数溢出问题(0.4.1),此外各版本还修复了数十个 use-after-free 和 double-free 问题。

我们发布了安全政策,用于漏洞上报。

运行最新 V8

Lightpanda 1.0 搭载 V8 15.5.35.13,这是 Chrome 和 Node.js 背后的 JavaScript 引擎的最新稳定版(browser#3676、zig-v8-fork#215)。此次升级意味着 V8 中的安全修复同样适用于 Lightpanda。

V8 执行页面下发的每一行 JavaScript 代码,因此保持其最新与确保 CORS 同等重要。

Lightpanda 在生产环境中的应用

企业已将 Lightpanda 用于 AI Agent、索引、搜索及数据提取等生产场景,部分用户日均处理页面数超过 3000 万。

Keenable 专注为 AI Agent 构建网络搜索服务,采用 Lightpanda 进行搜索与索引。Keenable 的技术团队成员 Ilya Bogin 解释了原因:

Agent 从网络获取信息时,通常可直接读取 HTML。但多数高价值网站是动态渲染内容的,我们超过 35% 的回答依赖于此。

渲染这些页面的成本比读取静态 HTML 高出最高 400 倍。

Lightpanda 让这一过程具备可扩展性:比 Chromium 快 4 倍,成本效率提升 6 倍。

DeveloperHub.io 将预渲染服务从 headless Chrome 迁移至 Lightpanda。页面服务速度提升 4 倍,平均负载下降 10 倍。原本伴随 Chrome 出现的定期重启和 CPU 告警也随之消失。其 CEO Zaid Daba’een 如此总结:

我现在已完全改用 Lightpanda,并重写了预渲染流程。这一变更使页面服务速度提升 4 倍(保守估计,实际常接近 6 倍),平均负载降低 10 倍。实例不再需要重启,CPU 告警也彻底消失。

完整案例参见DeveloperHub.io 如何将预渲染负载降低 10 倍。

集成进 Agent 框架

Hermes Agent

Hermes Agent(来自 Nous Research)将 Lightpanda 列为本地浏览器引擎,与云服务提供商并列。其文档解释了原因:

它启动即时,速度比 Chrome 快 9 倍,内存占用仅为后者的 1/16。这对于长期运行在小型虚拟机上的智能体至关重要。

只需在 ~/.hermes/config.yaml 中添加以下三行,即可将 Hermes 切换至 Lightpanda:

browser:
  cloud_provider: local
  engine: lightpanda

随后,Hermes 会自动启动 lightpanda serve,每个会话对应一个进程,因此无需安装 Chromium 或 Node.js。对于 Lightpanda 尚未支持的操作(如截图),Hermes 会自动回退到 Chrome。

agent-browser

Vercel 出品的 AI 智能体浏览器自动化 CLI 工具 agent-browser,通过添加一个参数 即可基于 Lightpanda 运行:--engine lightpanda。配合 batch 命令,并为每个站点分配独立的 --session,即可让多个 Lightpanda 会话并行工作:

agent-browser --session rust-wiki --engine lightpanda batch "open https://en.wikipedia.org/wiki/Rust_(programming_language)" "get text body" &
agent-browser --session rust-home --engine lightpanda batch "open https://www.rust-lang.org" "get text body" &
wait

Vercel 的 Chris Tate 对该集成方式的评价:

agent-browser + Lightpanda + batch + 多会话,这是一个极具破坏力的组合。我们仅用 5.85 秒就完成了基准测试任务

试用 Lightpanda 1.0

执行下方命令即可安装,也可在安装指南中选择其他方法:

curl -fsSL https://pkg.lightpanda.io/install.sh | bash -s "1.0.0"

选择流水线中当前访问的一个页面并获取它:

lightpanda fetch --dump markdown https://your-site.example

如果页面出现异常,请提交包含 URL 的 issue。DeveloperHub.io 在切换前已提交了两个……

原始来源: lightpanda

评论 (0)