它是什么
agent-browser 是 Vercel Labs 推出的浏览器自动化 CLI,用 Rust 编写,目标用户是 AI Agent。它把「打开网页、读取页面、点击元素」拆成一条条独立的 shell 命令:Agent 先执行 snapshot 得到页面的紧凑文本表示,每个可交互元素都带一个类似 @e1 的引用编号;Agent 再按编号发命令,然后重新读取页面确认结果,如此循环。
和 Playwright、Puppeteer 这类需要先写脚本的框架不同,它采用「一次一条命令」的方式:浏览器在命令之间保持打开,每次调用都极短,正好贴合大模型「思考—调用—观察」的循环,不必让模型生成整套自动化脚本。
核心功能
- 快照读取:
snapshot把整页转成精简的可访问性树文本,每个元素附 ref 编号,比直接读取原始 HTML 节省大量上下文 token。 - ref 元素操作:点击、输入、跳转都可直接作用于快照里的引用;同时支持 CSS 选择器、文本、XPath 和
find role button click --name "Submit"这类语义定位。 - 常驻守护进程:首条命令会自动拉起后台 daemon,通过 Chrome DevTools Protocol 控制浏览器;每个
--session拥有独立进程和浏览器,闲置一小时后自动收尾,可配置会话持久化。 - 多引擎与远程浏览器:默认使用 Chrome for Testing,也能用
--cdp接管已开的 Chrome,切换 Lightpanda、Obscura 引擎,或接 Browserbase、Browserless 等云端浏览器。 - 失败即报错:当目标被遮挡、禁用或在视口之外时,点击会明确失败,不会假报成功,促使 Agent 重新快照再重试。
适用场景
- 给编码 Agent 补上「上网查资料、填表单、点按钮」的能力;
- 需要登录态和多步交互的网页任务,传统爬虫抓不到的动态页面;
- 在服务器或 CI 里做端到端检查,用几条命令替代一整套脚本;
- 把浏览器操作接入自研 Agent 框架,作为工具调用的一环。
上手建议
安装很省事:npm install -g agent-browser,再跑一次 agent-browser install 下载 Chrome for Testing;macOS 也可用 Homebrew,Linux 记得加 --with-deps 补齐系统依赖库。不想安装可直接 npx agent-browser open example.com 试水。
建议先用官方 quick start 的五步走一遍:open → snapshot -i → click @e1 → get url → close,体会「快照—动作—再快照」的节奏。写 Agent 提示词时务必强调 ref 有时效性:页面跳转或 DOM 变化后必须重新 snapshot,否则引用会失效;遇到 cookie 提示条之类遮挡元素,先关掉再重试。需要并行任务用 --session 隔离,要复用登录态则配置会话持久化即可。