专为 AI Agent 设计的浏览器自动化 CLI 工具。基于 Rust + Node.js 构建, 通过语义化快照技术节省 93% Token 消耗,告别脆弱的 CSS 选择器, 让你的 AI Agent 像人一样浏览网页。
传统方案的致命缺陷 vs Agent Browser 的优雅解决
传统方案直接将原始 HTML 喂给 LLM,一个普通网页动辄几百 KB。 充满噪音的 CSS、Script 标签不仅消耗大量 Token,还容易导致 LLM 产生幻觉(Hallucination), 我们称之为「上下文腐烂」(Context Rot)。
Agent Browser 利用无障碍树(Accessibility Tree)和语义分析, 将页面转化为 LLM「喜欢」的精简格式。只保留有意义的交互元素, 彻底消除噪音,让 AI 专注于真正重要的内容。
传统的 CSS 选择器如 div > div.content > span 脆弱不堪。
网页稍微改版,class 名变一下,你的 Agent 就从「自动化」变成了「人工报错机」。
维护成本极高,可靠性极低。
采用「快照 + 引用」模式:Snapshot 生成语义树,给每个元素分配短引用(如 @e1, @e2)。 AI 只需认准语义标签,无需关心底层 DOM 结构变化, 即使网页改版也能正常工作。
不是简单的 Playwright 封装,而是专为 LLM 设计的浏览器接口
基于 Accessibility Tree 生成精简的语义化快照, 支持 -i(仅交互元素)、-c(紧凑模式)、-d(深度限制)等过滤选项, 精准控制输出内容。
每个元素分配唯一引用(@e1, @e2...), 支持 click @e1、fill @e2 "text" 等直觉操作, 告别脆弱的 CSS 选择器。
CLI 使用 Rust 构建,启动速度极快。 Node.js Daemon 持久化运行,命令执行无需重复初始化, 体验丝滑流畅。
支持 WebSocket 流式传输浏览器画面, 实现「结对浏览」:人类可以实时观看并干预 AI Agent 的浏览过程, 调试和监控更便捷。
支持 --session 参数运行多个隔离的浏览器实例, 每个会话独立的 Cookies、Storage、History, 适合多账号/多任务并发场景。
支持连接已有的 Chrome/Electron 实例, 通过 Chrome DevTools Protocol 控制任何暴露 CDP 端点的浏览器, 灵活适配各种场景。
内置设备模拟功能,支持 set device "iPhone 14"、 set viewport 1920 1080、set geo lat lng 等, 轻松测试不同设备和场景。
支持请求拦截、Mock 响应、请求追踪等功能, 可以 --abort 阻断请求或 --body 返回自定义数据, 完美适配 API 测试场景。
三步完成:导航 → 快照 → 操作,无需编写任何 CSS 选择器
使用 open 命令导航到目标 URL,浏览器自动在后台启动 Daemon 并建立连接,无需复杂的会话管理。
snapshot 命令生成页面的语义化结构,-i 选项仅返回可交互元素(按钮、输入框、链接等), 每个元素都有唯一的 ref 引用。
AI 分析快照后识别目标元素的 ref,直接通过 @ref 语法执行点击、填充等操作。 即使页面 DOM 结构变化,只要语义不变,操作依然有效。
覆盖浏览器自动化的所有场景,开箱即用
选择适合你的安装方式,一分钟即可上手
npm install -g agent-browser
agent-browser install
agent-browser --help
git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install
# 构建 TypeScript pnpm build # 构建 Rust CLI(需要 Rust 环境) pnpm build:native # 全局链接 pnpm link --global # 下载 Chromium agent-browser install
# 方式一:使用 agent-browser 命令 agent-browser install --with-deps # 方式二:使用 Playwright 命令 npx playwright install-deps chromium
Rust CLI + Node.js Daemon 的高性能组合
原生 Rust 二进制 + Node.js 备用方案
多种方式接入你的 AI 工作流
最简单的方式 —— 直接告诉你的 AI 助手使用 agent-browser:
"Use agent-browser to test the login flow. Run agent-browser --help to see available commands."
在项目根目录添加说明文件,让 AI 更一致地使用工具:
## Browser Automation Use `agent-browser` for web automation. Core workflow: 1. `agent-browser open <url>` 2. `agent-browser snapshot -i` 3. `agent-browser click @e1`
为 Claude Code 安装专用 Skill,提供更丰富的上下文:
# 从项目复制 Skill cp -r node_modules/agent-browser/skills/agent-browser \ .claude/skills/ # 或从 GitHub 下载 mkdir -p .claude/skills/agent-browser curl -o .claude/skills/agent-browser/SKILL.md \ https://raw.githubusercontent.com/vercel-labs/agent-browser/main/skills/agent-browser/SKILL.md
支持自定义浏览器路径,适配 Vercel/AWS Lambda 等 Serverless 环境:
import chromium from '@sparticuz/chromium'; import { BrowserManager } from 'agent-browser'; const browser = new BrowserManager(); await browser.launch({ executablePath: await chromium.executablePath(), });
在生产环境中使用的实用建议
对于 React/Vue 等 SPA 应用,页面元素是动态加载的。
导航后不要立即操作,使用 wait --text "目标文本"
或 wait --load networkidle 等待页面加载完成。
对于分步验证的表单,不要一次性填完所有字段。 建议拆分指令,每填一个字段后等待验证完成, 再进行下一步操作,避免触发表单校验问题。
执行操作后如果页面内容发生变化(导航、AJAX 更新等),
需要重新执行 snapshot 获取最新的元素引用,
旧的 @ref 可能已失效。
使用 --headers 设置的认证信息是域名作用域的,
不会泄露到其他域名。如需跨域设置 Header,
请在每次 open 时单独指定。