📌 项目地址: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。后续的 click、fill、get 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 是个值得考虑的基础组件。