agent-browser
AI 智能体专用浏览器自动化 CLI,通过语义化引用和自然语言控制让 AI 精准操控 Chrome
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 智能体专用浏览器自动化 CLI,通过语义化引用和自然语言控制让 AI 精准操控 Chrome
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你想让一个 AI 助手自动帮你填写网页表单、截取页面截图、批量采集电商数据——这些在人类看来再简单不过的操作,对 AI 来说却异常困难。传统方案要么依赖笨重的 Selenium,要么依赖 Playwright 繁琐的 API,让 AI 理解和操作 DOM 结构变成了一场「翻译噩梦」。
agent-browser 正是为解决这一痛点而生:由 Vercel Labs 打造,定位为「AI 智能体的浏览器自动化 CLI」,用自然语言控制浏览器,把网页操作变成 AI 可以理解和执行的指令。截至 2026 年 5 月,该项目已斩获超过 34,000 颗 GitHub Stars,成为浏览器自动化领域最受关注的项目之一。
在 AI Agent 时代,浏览器自动化是一个绕不开的基础能力。无论是网页抓取、表单填写、UI 测试还是 RPA(机器人流程自动化),都需要程序能够「操控」浏览器。然而传统方案存在几个根本性问题:
选择器脆弱:#submit、.btn-primary 这类 CSS 选择器在网页改版后极易失效,导致自动化脚本频繁崩溃,维护成本极高。Playwright/Puppeteer API 复杂:对于 AI 智能体而言,理解 page.locator('#email').fill('test@example.com') 这样的代码需要较强的编程能力,不如自然语言直观。缺乏语义理解:AI 无法理解网页元素的「含义」,只能机械地操作 DOM 节点,无法像人类一样「看到」登录按钮就去点击。
Vercel Labs 的团队从 AI Agent 的视角重新思考这个问题:AI 不需要理解 HTML/CSS 的细节,它需要的是一个语义化的界面——像人一样「看到」页面上有什么元素,然后直接下达指令。
因此 agent-browser 引入了两个核心创新:
可访问性树(Accessibility Tree):通过 --snapshot 命令,生成带引用编号的页面可访问性树,每个可交互元素获得一个稳定的 ref ID(如 @e1、@e2),AI 只需说「点击 @e2」即可精准操作元素,无需猜测选择器。自然语言指令:agent-browser chat "帮我填这个表单" 让 AI 直接理解任务并执行,提供了真正的「对话式」浏览器控制体验。
传统自动化工具依赖 CSS 选择器或 XPath,agent-browser 提供了更智能的方式:
agent-browser open example.com
agent-browser snapshot # 生成带 ref 的可访问性树
# 输出类似:
# [@e1] button "Sign In"
# [@e2] input[type="email"]
# [@e3] input[type="password"]
agent-browser click @e1 # 通过 ref 精准点击
agent-browser fill @e2 "user@example.com" # 通过 ref 填写表单
相比传统方式,ref 引用具有以下优势:稳定不随 DOM 顺序变化——即使页面新增了隐藏元素,ref ID 不会改变;语义清晰——@e1 代表什么按钮,snapshot 输出中一目了然;AI 友好——AI 可以「看见」页面结构,直接引用具体元素。
agent-browser 的命令体系相当完整,涵盖了浏览器自动化的方方面面:
| 类别 | 命令示例 | 说明 |
|---|---|---|
| 导航 | open <url>, goto, navigate | 打开/跳转页面 |
| 交互 | click, fill, type, hover, dblclick | 元素操作 |
| 语义查找 | find role button click, find text "Sign In" click | ARIA 角色/文本定位 |
| 信息获取 | get text @e1, get title, get url | 读取页面内容 |
| 截图 | screenshot, screenshot --full, screenshot --annotate | 截图(支持全页和标注) |
| 网络控制 | network route, network abort | 请求拦截/mock |
| 状态等待 | wait --text "Loaded", wait --load networkidle | 智能等待 |
| 批处理 | batch "cmd1" "cmd2" "cmd3" | 批量执行多命令 |
| 标签管理 | tab new, tab close, window new | 多标签/多窗口 |
| 地理/设备模拟 | set geo, set device "iPhone 14" | 模拟环境 |
批处理模式是另一个亮点:通过 --json 参数从 stdin 接收 JSON 格式的命令序列,适合 AI Agent 程序化调用:
echo '[["open", "https://example.com"], ["snapshot", "-i"], ["click", "@e1"]]' \
| agent-browser batch --json
最引人注目的功能是 agent-browser chat,支持单次和 REPL 交互两种模式:
agent-browser chat "点击登录按钮并填写邮箱为 test@example.com"
# 或进入 REPL 模式逐步交互
agent-browser chat
# > 打开 github.com
# > 截图
# > 关闭
这背后的实现逻辑是:AI 解析自然语言指令,将其转换为 agent-browser 的内部命令序列,通过 CDP(Chrome DevTools Protocol)与浏览器通信执行。官方还提供了 skills/ 目录用于扩展 AI 指令能力。
agent-browser 采用了一个务实的技术栈组合:
Rust CLI 核心(cli/ 目录):核心浏览器控制逻辑由 Rust 实现,处理 CDP 连接、命令解析和执行,保证高性能和跨平台兼容。二进制文件通过 pnpm build:native 构建。
Node.js CLI 包装(bin/ + package.json):对外命令行接口基于 Node.js,利用 npm 生态便于分发,agent-browser 入口点兼容 npm 全局安装路径。
monorepo 结构(pnpm workspace):
packages/dashboard/ # Next.js 可视化面板(可选)
benchmarks/ # 性能基准测试(TypeScript)
evals/ # 能力评测集(bun)
skills/ # AI 指令扩展
CDP 协议是连接 Rust 核心与 Chrome 浏览器的桥梁。agent-browser 支持检测已有的 Chrome/Chromium(用户安装的、Playwright 的、Brave 浏览器的均可),或自动从 Chrome for Testing 官方渠道下载,降低了使用门槛。
docker 目录下的 Dockerfile.build 和 docker-compose.yml 主要服务于跨平台构建(Linux/macOS/Windows 二进制编译),而非运行时容器化。项目没有提供生产级运行容器镜像,这与其「本地 CLI 工具」的定位一致。
agent-browser 的安装方式多样,对不同用户群体都很友好:
| 安装方式 | 适用场景 | 依赖 |
|---|---|---|
npm install -g agent-browser | Node.js 用户 | Node.js >= 24 |
cargo install agent-browser | Rust 用户 | Rust + Cargo |
brew install agent-browser | macOS 用户 | Homebrew |
| 源码编译 | 开发者/贡献者 | Node.js 24+ + pnpm 11+ + Rust |
安装后需要执行一次 agent-browser install(或 install --with-deps 在 Linux 上)来配置 Chrome 浏览器。没有 Web UI,所有操作通过命令行完成,不支持 Docker 一键部署——这是它与同类项目(如 Browserbase、Browserless)的核心区别:它是一款本地优先的工具,追求的是对本地 Chrome 的直接控制权。
内存占用极低(512MB RAM + 200MB 磁盘),无需 GPU,非常轻量。
在 browser automation 赛道,agent-browser 面对的竞争对手包括:
Playwright / Puppeteer:生态成熟但 API 复杂,AI 友好度低。Browserbase / Browserless:云端浏览器平台,支持远程控制,但需要付费且有网络延迟。@agentcore/core、browser-use 等新兴框架:同样瞄准 AI Agent 场景,但大多基于 Playwright 构建。
agent-browser 的差异化在于:Vercel 背书 + Rust 高性能 + 极简 CLI 体验 + 原生支持 AI Chat 模式。它不追求做「全能平台」,而是专注于让 AI Agent 快速、可靠地操控浏览器这个核心需求。
从 GitHub 数据看,该项目于 2026 年 1 月才创建,至今不到半年便斩获 34,000+ Stars,增长速度惊人,侧面反映了 AI Agent 赛道对高质量浏览器控制工具的强烈需求。
agent-browser 是一款专为 AI Agent 时代打造的浏览器自动化工具,通过语义化引用、自然语言控制和可访问性树三大创新,大幅降低了 AI 操控浏览器的门槛。Rust + Node.js 的混合架构兼顾了性能与生态便利,monorepo 结构支持 Benchmark 和 Evaluation 持续迭代项目质量。
作为 Vercel Labs 的实验性项目,它目前还保持着快速迭代的节奏(当前版本 0.27.0),各项功能仍在快速演进中。对于需要让 AI Agent 控制浏览器的开发者而言,这是目前最值得关注和尝试的工具之一。
图1:browser-use 集成 agent-browser 的 provider logo,展示生态合作态势
图2:AgentCore 框架采用 agent-browser 作为底层浏览器引擎
图3:Kernel 平台将 agent-browser 集成进其 AI Agent 基础设施
图4:Browserbase 云端浏览器平台与 agent-browser 形成互补方案