SuperAPI AI 工具集

agent browser

智能体与模型

查看项目

更新于 11-02 21:19

技能介绍

用途

agent-browser 是一个基于 Rust 的无头浏览器自动化命令行工具,并提供 Node.js 回退方案,用于让 AI 智能体通过结构化命令操作网页。它把浏览器操作拆解为可脚本化的子命令,智能体可以导航页面、获取交互元素快照、按引用点击或输入,并读取页面信息,从而完成表单填写、登录、页面结构分析等任务。

主要能力

  • 导航:open、back、forward、reload、close。
  • 快照:snapshot 返回完整可访问性树,snapshot -i 仅返回交互元素(推荐),并支持 -c 紧凑输出、-d 限制深度、-s 按 CSS 选择器限定范围。
  • 交互:click、dblclick、focus、fill、type、press、keydown、keyup、hover、check、uncheck、select、scroll、scrollintoview、drag、upload,均使用快照返回的 @refs。
  • 获取信息:get text、get html、get value、get attr、get title、get url、get count、get box。
  • 状态检查:is visible、is enabled、is checked。
  • 截图与 PDF:screenshot(可输出到 stdout 或文件、支持 --full 全页)、pdf。
  • 视频录制:record start/stop/restart,录制会创建新上下文但保留当前会话的 cookies/storage,未提供 URL 时自动返回当前页面。
  • 等待:wait 元素、毫秒、文本、URL 模式、networkidle、JS 条件。
  • 鼠标控制:mouse move/down/up/wheel。
  • 语义定位:find role/text/label/first/nth,作为 refs 的替代方式。
  • 浏览器设置:set viewport、device、geo、offline、headers、credentials、media。
  • Cookie 与存储:cookies 读取/设置/清除,storage local 读取/设置/清除。
  • 网络:network route 拦截、阻断或模拟响应,unroute 移除,requests 查看与过滤。
  • 标签页与窗口:tab 列表/新建/切换/关闭,window new。
  • 框架与对话框:frame 切换 iframe 或返回主框架,dialog accept/dismiss。
  • JavaScript:eval 执行脚本。
  • 状态管理:state save/load 保存与加载会话状态。
  • 并行会话:--session 使用隔离会话,session list 列出会话。
  • JSON 输出:--json 提供机器可读输出。
  • 调试:--headed 显示浏览器窗口、console、errors、highlight、trace start/stop、record、--cdp 通过 Chrome DevTools Protocol 连接。

使用方式

安装(推荐 npm):

npm install -g agent-browser agent-browser install agent-browser install --with-deps

从源码安装:

git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install

快速开始:

agent-browser open <url> agent-browser snapshot -i agent-browser click @e1 agent-browser fill @e2 "text" agent-browser close

核心工作流:导航(open)→ 快照(snapshot -i,返回 @e1、@e2 等引用)→ 使用引用交互 → 导航或 DOM 显著变化后重新快照。

表单提交示例:

agent-browser open https://example.com/form agent-browser snapshot -i agent-browser fill @e1 "user@example.com" agent-browser fill @e2 "password123" agent-browser click @e3 agent-browser wait --load networkidle agent-browser snapshot -i

使用保存状态进行认证示例:

agent-browser open https://app.example.com/login agent-browser snapshot -i agent-browser fill @e1 "username" agent-browser fill @e2 "password" agent-browser click @e3 agent-browser wait --url "/dashboard" agent-browser state save auth.json

后续会话加载状态:

agent-browser state load auth.json agent-browser open https://app.example.com/dashboard

并行会话示例:

agent-browser --session test1 open site-a.com agent-browser --session test2 open site-b.com agent-browser session list

适用场景

  • AI 智能体自动操作网页,如填写表单、点击按钮、选择下拉项。
  • 需要登录并复用会话状态的自动化流程。
  • 抓取页面可访问性树或交互元素结构,用于分析或后续操作。
  • 端到端流程验证与调试,包括截图、PDF、视频录制、trace。
  • 需要拦截或模拟网络请求、设置设备与地理位置等浏览器环境的测试。

限制与注意事项

  • 引用在每次页面加载内稳定,但导航后会变化,导航后必须重新快照获取新引用。
  • 输入框建议使用 fill 而非 type,以确保清除已有文本。
  • 若元素未找到,应使用 snapshot 查找正确的 ref。
  • 若页面未加载,应在导航后添加 wait 命令。
  • 调试时可使用 --headed 查看浏览器窗口。
  • Linux ARM64 上若命令未找到,需使用 bin 文件夹中的完整路径。
  • 常用选项:--session 隔离会话、--json JSON 输出、--full 全页截图、--headed 显示窗口、--timeout 设置命令超时毫秒、--cdp 通过 Chrome DevTools Protocol 连接。
  • 问题反馈:技能问题提交至 https://github.com/TheSethRose/Agent-Browser-CLI,CLI 问题提交至 https://github.com/vercel-labs/agent-browser。