📌 项目地址vercel-labs/agent-browser | ⭐ 34,657 颗星 | 🔧 Rust | 📜 Apache-2.0

项目定位

vercel-labs/agent-browser 是一个用 Rust 编写的命令行工具,专门给 AI Agent 用来控制浏览器。它的目标是让 AI 能像人类一样打开网页、点击按钮、填写表单、截屏,但整个过程是程序化的。

和 Playwright、Puppeteer 这类基于 Node.js 的库不同,agent-browser 编译成原生二进制文件,启动快,没有运行时依赖。它不要求安装 Node.js 或 Playwright 就能运行后端(daemon),只依赖一个 Chrome 浏览器。

截至本文,项目在 GitHub 上已有 34657 个 star,由 Vercel Labs 维护。

安装:五条路径

README 提供了五种安装方式,覆盖主流环境。核心思路:先装工具,再装浏览器(只第一次需要)。

全局安装(推荐)

使用 npm 全局安装,适合快速体验或集成到脚本:

npm install -g agent-browser
agent-browser install    # 下载 Chrome for Testing

项目内安装

如果想在 package.json 里固定版本,可以作为项目依赖安装:

npm install agent-browser
agent-browser install

之后通过 npm scripts 或直接调用 agent-browser 使用。

macOS 用户:Homebrew

brew install agent-browser
agent-browser install

Rust 用户:Cargo

如果你已经装了 Rust 工具链,一行命令就能编译安装:

cargo install agent-browser
agent-browser install

从源码编译

需要 Node.js 24+、pnpm 11+、Rust。步骤比前面几种多,适合想自己改代码的人:

git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build
pnpm build:native   # 编译 Rust 部分
pnpm link --global  # 让 agent-browser 全局可用
agent-browser install

Linux 特别提示

在 Linux 上,安装时可能需要系统依赖(如 libnss3 等)。用 --with-deps 来自动处理:

agent-browser install --with-deps

升级

一条命令搞定,它会自动检测你当初是用 npm、Homebrew 还是 Cargo 装的,并执行相应的升级命令:

agent-browser upgrade

浏览器来源

agent-browser install 会从 Google 官方的 Chrome for Testing 下载一个专门用于自动化的 Chrome 版本。同时它会检测系统上已有的 Chrome、Brave、Playwright、Puppeteer 浏览器,避免重复下载。

快速上手:一个完整工作流

下面的例子演示了从打开网页到关闭浏览器的整个流程:

agent-browser open example.com
agent-browser snapshot                    # 获取页面的无障碍树,包含引用ID
agent-browser click @e2                   # 点击引用ID为 @e2 的元素
agent-browser fill @e3 "test@example.com" # 在 @e3 输入框中填入文本
agent-browser get text @e1                # 获取 @e1 元素的文本内容
agent-browser screenshot page.png
agent-browser close

关键点在于 snapshot 命令。它不产生视觉截图,而是返回页面的无障碍树(Accessibility Tree),并为每个可交互元素分配一个简单的引用 ID,如 @e1@e2。后续的 clickfillget text 都直接通过这个 ID 指定目标,不需要 CSS 选择器或 XPath。

这对 AI Agent 非常友好:AI 只需要解析这个结构化的树(文本 + 引用ID),就能精确发出操作指令,无需理解复杂的 DOM 结构。

传统选择器也支持

如果你习惯用 CSS 选择器或 Playwright 风格的查找方式,同样可用:

agent-browser click "#submit"
agent-browser fill "#email" "test@example.com"
agent-browser find role button click --name "Submit"

核心技术特性

1. Snapshot + Ref 模式:专为 AI 设计

传统浏览器自动化库(Puppeteer、Playwright)要求你写选择器定位元素,这对人类开发者来说很自然,但对 AI 模型却是个挑战——模型需要理解 DOM 结构、判断元素属性。agent-browser 把页面结构“拍平”成一个带引用 ID 的列表,让 AI 能像下拉菜单选选项一样完成交互。

2. Rust 原生二进制

  • 无 Node.js 运行时依赖。你可以把它打包进一个很小的 Docker 镜像,甚至嵌入到其他程序里。
  • 启动速度快,资源占用低。适合在 CI/CD、Lambda、边缘节点等受限环境中运行。
  • 编译产物是一个可执行文件,单文件分发简单。

3. 统一浏览器版本

agent-browser install 下载的 Chrome for Testing 版本在所有机器上一致,避免了“我这能跑你那不能”的版本问题。升级工具本身也只需一条命令。

4. 无头截图去滚动条

无头模式截图默认隐藏原生滚动条,保证图像输出一致性。如果需要保留滚动条,启动时加 --hide-scrollbars false 即可。

适合做什么

这个工具不适合人工测试(不如 Playwright 的交互式调试好),它的使用场景是:

  • AI Agent 框架中作为浏览器的“手和眼”,执行网页操作并获取状态。
  • 需要自动化但不想引入 Node.js 运行时的项目(比如纯前端或后端服务)。
  • 在容器化或资源受限环境下运行轻量级浏览器自动化。

如果你在构建一个能自主上网填表、点按钮的 AI 应用,agent-browser 是个值得考虑的基础组件。

这篇文章对你有帮助吗?

发表回复