核心用法
Agent Browser是一款专为AI Agent设计的无头浏览器自动化CLI工具,采用可访问性树(Accessibility Tree)快照作为核心交互机制。与传统浏览器工具不同,它通过语义化的ref引用(如@e2)而非CSS选择器或XPath来定位元素,确保在动态DOM变化中仍能保持稳定的元素识别。
典型工作流遵循"打开→快照→解析→交互→再快照"的循环模式:
1. agent-browser open <url> 启动页面
2. agent-browser snapshot -i --json 生成交互元素快照,返回结构化JSON含refs映射表
3. AI解析refs,执行click @e2、fill @e3 "text"等操作
4. 页面变化后重新快照获取最新状态
显著优点
确定性定位:ref基于可访问性树角色+名称生成,不受CSS类名随机化、DOM结构调整影响,特别适合现代SPA框架(React/Vue/Angular)。
性能优化:Headless Chromium内核,支持--load networkidle等待策略,比传统截图比对方案快5-10倍。
会话隔离:--session参数实现多浏览器上下文并行,支持跨会话状态持久化(state save/load),便于多账号测试场景。
AI原生设计:JSON输出格式、紧凑模式(-c)、深度限制(-d)均为LLM token优化考量。
潜在缺点与局限性
视觉信息缺失:无内置截图分析能力,需搭配--headed调试或外接视觉模型,与Playwright/MCP内置工具形成能力缺口。
ref稳定性边界:同一页面多次快照,若元素可访问性属性(aria-label等)动态变化,ref可能漂移;复杂表格/虚拟滚动场景下ref密度过高。
生态锁定:CLI语法为agent-browser特有,迁移至Playwright/Puppeteer需重写交互逻辑。
平台依赖:Chromium下载及系统依赖安装(尤其Linux)可能遇到环境兼容问题。
适合人群
- 构建浏览器自动化Agent的开发者(需确定性、可编程的交互接口)
- 多步骤表单填报、数据抓取、E2E测试场景
- 需隔离会话的多账号管理任务
- 对token成本敏感的AI工作流(JSON比截图廉价)
常规风险
- Session泄漏:
state save含敏感cookie,文件权限管理不当导致凭证泄露 - 网络路由误配置:
--abort拦截规则写错可能破坏页面功能 - 无视觉验证:纯ref驱动可能误点隐藏/遮挡元素,建议关键操作前
is visible校验 - Chromium漏洞:依赖特定版本Chromium,需关注
agent-browser install更新
技术背书
由Vercel Labs官方维护(GitHub: vercel-labs/agent-browser),作者Yossi Elkrief有移动端/Android背景,项目处于早期活跃迭代阶段,MIT协议开源。