菜鸟AI - 让提示词生成更简单! 全站导航 全站导航
AI工具安装 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

首页 > 资讯 > Vercel agent-browser:AI原生浏览器自动化CLI推荐
其他资讯 浏览器

Vercel agent-browser:AI原生浏览器自动化CLI推荐

2026-06-08
阅读 0
热度 0
作者 菜鸟AI编辑部
摘要

摘要

VercelLabs开源的代理浏览器是一个基于Rust编写的浏览器自动化命令行工具,专为人工智能代

一句话定位: agent-browser 是 Vercel Labs 开源的浏览器自动化 CLI,用 Rust 编写,专为 AI Agent 设计。核心特点是 Snapshot + Ref 机制 让 LLM 能精准操作网页,同时支持命令链式调用、批量执行、实时画面流、Dashboard 监控,以及多种云浏览器提供商接入。目前 34.8k Stars。

agent-browser:Vercel 出品的 AI 原生浏览器自动化 CLI


先说说几个核心判断。传统的浏览器自动化工具,比如 Puppeteer 和 Playwright,它们确实强大,但底层逻辑是为开发者设计的——你需要写脚本、调试选择器、处理各种异步状态。但如果让 AI 来做这件事,传统的 CSS 选择器或 XPath 定位方式就显得有些笨重了,页面结构稍有变动,定位就失效。agent-browser 的出现,正是要解决这个“AI 如何像人一样操作浏览器”的问题。它的设计理念很明确:让机器能看懂网页,并且能稳定、高效地执行指令。

agent-browser:Vercel 出品的 AI 原生浏览器自动化 CLI


一、安装

npm(推荐)

npm install -g agent-browser
agent-browser install   # 首次下载 Chrome for Testing

Homebrew(macOS)

brew install agent-browser
agent-browser install

Cargo(Rust)

cargo install agent-browser
agent-browser install

首次需要跑 agent-browser install 下载自动化专用 Chrome。如果你本地已有 Chrome、Bra ve、Playwright 或 Puppeteer 的 Chrome,它会自动检测复用。

升级也很简单:

agent-browser upgrade   # 自动识别安装方式并更新

二、核心设计:Snapshot + Ref

这是 agent-browser 和传统自动化工具(Puppeteer/Playwright)最大的区别。

传统方式是用 CSS 选择器或 XPath 定位元素,容易因为页面结构变化而失效。agent-browser 的做法是:

1. 先拍快照(Snapshot)

agent-browser open example.com
agent-browser snapshot

输出是一个 accessibility tree,每个交互元素都带有一个 ref:

- heading "Example Domain" [ref=e1] [level=1]
- button "Submit" [ref=e2]
- textbox "Email" [ref=e3]
- link "Learn more" [ref=e4]

2. 用 ref 精准操作

agent-browser click @e2
agent-browser fill @e3 "test@example.com"
agent-browser get text @e1

为什么这种方式更适合 AI?

  • 确定性:ref 绑定的是快照里的具体元素,不会因为页面动态变化而错位
  • 快速:不需要重新查询 DOM
  • LLM 友好:AI 先读 snapshot,再决定操作哪个 ref,整个流程自然畅通

加上 -i 参数可以只输出交互元素,减少噪音:

agent-browser snapshot -i

三、基础操作命令

agent-browser 的命令设计得很直观,基本覆盖日常自动化需求:

导航与页面操作

agent-browser open example.com          # 打开页面
agent-browser open                      # 只启动浏览器(停在 about:blank)
agent-browser back                      # 后退
agent-browser forward                   # 前进
agent-browser reload                    # 刷新
agent-browser pushstate /new-path       # SPA 客户端路由

元素交互

agent-browser click @e1                 # 点击
agent-browser dblclick @e2              # 双击
agent-browser fill @e3 "text"           # 清空并填充
agent-browser type @e3 "text"           # 输入(不清空)
agent-browser hover @e4                 # 悬停
agent-browser select @e5 "option"       # 下拉框选择
agent-browser check @e6                 # 勾选复选框
agent-browser uncheck @e6               # 取消勾选
agent-browser scroll down 500           # 滚动
agent-browser scrollintoview @e7        # 滚动到元素可见
agent-browser drag @src @tgt            # 拖拽
agent-browser upload @e8 "./file.pdf"   # 上传文件

键盘操作

agent-browser press Enter               # 按键
agent-browser press "Control+a"         # 组合键
agent-browser keyboard type "hello"     # 模拟真实按键输入
agent-browser keydown Shift             # 按住
agent-browser keyup Shift               # 释放

截图与 PDF

agent-browser screenshot page.png       # 截图当前视口
agent-browser screenshot --full page.png # 整页截图
agent-browser screenshot --annotate    # 带元素编号标注的截图(方便 AI 识别)
agent-browser pdf page.pdf              # 保存为 PDF

四、等待机制:处理异步加载

现代网页很多内容是异步加载的,agent-browser 提供了多种等待方式:

# 等待元素出现
agent-browser wait "#submit-button"# 等待固定时间
agent-browser wait 3000# 等待文本出现
agent-browser wait --text "Welcome"# 等待 URL 匹配
agent-browser wait --url "**/dashboard"# 等待页面加载完成
agent-browser wait --load networkidle# 等待 JS 条件满足
agent-browser wait --fn "window.ready === true"# 等待元素消失
agent-browser wait "#spinner" --state hidden

加载状态选项: load(页面完全加载)、domcontentloaded(DOM 就绪)、networkidle(网络空闲)


五、批量执行:减少进程启动开销

每个 agent-browser 命令默认会复用后台 daemon,已经比传统方案快很多。但如果要执行一连串操作,用 batch 可以进一步减少开销:

# 参数模式
agent-browser batch "open m" "snapshot -i" "screenshot"# 出错即停
agent-browser batch --bail "open m" "click @e1" "screenshot"# JSON 管道模式
echo '[
  ["open", "https://example.com"],
  ["snapshot", "-i"],
  ["click", "@e1"],
  ["screenshot", "result.png"]
]' | agent-browser batch --json

六、命令链式调用

在 shell 里用 && 串联命令,browser session 会在后台保持:

# 打开、等加载、截图一气呵成
agent-browser open example.com && agent-browser wait --load networkidle && agent-browser screenshot page.png# 填表单并提交
agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "pass" && agent-browser click @e3

适合不需要解析中间输出的场景。如果需要先读 snapshot 再决定操作哪个 ref,就得分步执行。


七、信息获取与状态检查

# 获取元素内容
agent-browser get text @e1              # 文本内容
agent-browser get html @e1              # innerHTML
agent-browser get value @e2             # input 值
agent-browser get attr @e1 href         # 属性值
agent-browser get title                 # 页面标题
agent-browser get url                   # 当前 URL
agent-browser get count ".item"         # 匹配元素数量
agent-browser get box @e1               # 元素边界框# 状态检查
agent-browser is visible @e1            # 是否可见
agent-browser is enabled @e1            # 是否可用
agent-browser is checked @e1            # 是否勾选

加上 --json 参数可以输出结构化数据,方便程序解析:

agent-browser snapshot --json
agent-browser get text @e1 --json

八、语义化定位:不用选择器也能找元素

除了 CSS 选择器和 ref,agent-browser 还支持语义化定位,对可读性很友好:

# 按 ARIA role
agent-browser find role button click --name "Submit"# 按文本内容
agent-browser find text "Sign In" click# 按 label
agent-browser find label "Email" fill "test@test.com"# 按 placeholder
agent-browser find placeholder "Search" fill "query"# 按 alt 文本
agent-browser find alt "Logo" click# 按 testid
agent-browser find testid "submit-btn" click# 取第 N 个匹配
agent-browser find nth 2 "a" text# 第一个/最后一个
agent-browser find first ".item" click
agent-browser find last ".item" click

支持的动作: click, fill, type, hover, focus, check, uncheck, text


九、网络拦截与监控

# 拦截特定 URL
agent-browser network route "*api*"# 阻断请求
agent-browser network route "*google-analytics* --abort# 模拟响应
agent-browser network route "*api/users" --body '{"users":[]}'# 按资源类型阻断(如屏蔽所有脚本)
agent-browser network route '*' --abort --resource-type script# 查看请求列表
agent-browser network requests
agent-browser network requests --filter api
agent-browser network requests --type xhr,fetch
agent-browser network requests --method POST
agent-browser network requests --status 2xx# 查看单个请求详情
agent-browser network request # HAR 录制
agent-browser network har start
agent-browser network har stop output.har

十、Tab 与窗口管理

# 列出所有 tab
agent-browser tab# 新建 tab
agent-browser tab new # 新建 tab 并加标签(方便后续引用)
agent-browser tab new --label docs # 切换 tab(用 id 或 label)
agent-browser tab t2
agent-browser tab docs# 关闭 tab
agent-browser tab close t2
agent-browser tab close docs# 新建窗口
agent-browser window new

Tab id 是稳定的(如 t1, t2),关闭其他 tab 后 id 也不会重用,脚本里可以放心引用。


十一、Cookie 与存储

# Cookie
agent-browser cookies                           # 获取所有
agent-browser cookies set sessionId abc123      # 设置单个
agent-browser cookies set --curl cookies.txt    # 从 cURL dump 导入
agent-browser cookies clear                     # 清空# localStorage
agent-browser storage local                     # 获取全部
agent-browser storage local myKey               # 获取某个 key
agent-browser storage local set myKey myValue   # 设置
agent-browser storage local clear               # 清空# sessionStorage(同上)
agent-browser storage session

十二、Diff 功能:对比页面变化

agent-browser 内置了 diff 能力,很适合做回归测试:

# 对比当前 snapshot 和上一次
agent-browser diff snapshot# 对比当前 snapshot 和基准文件
agent-browser diff snapshot --baseline before.txt# 截图对比(像素级)
agent-browser diff screenshot --baseline before.png# 对比两个 URL
agent-browser diff url  
agent-browser diff url   --screenshot

十三、调试与诊断

# 诊断环境
agent-browser doctor
agent-browser doctor --fix          # 自动修复
agent-browser doctor --offline --quick  # 跳过网络检查# 追踪录制
agent-browser trace start
agent-browser trace stop trace.zip# 性能分析
agent-browser profiler start
agent-browser profiler stop profile.json# 查看控制台输出
agent-browser console
agent-browser console --json# 查看页面错误
agent-browser errors# 高亮元素
agent-browser highlight @e1# 打开 Chrome DevTools
agent-browser inspect

十四、AI Chat:自然语言控制浏览器

agent-browser 集成了 Vercel AI Gateway,可以直接用自然语言控制浏览器:

# 单轮指令
agent-browser chat "open google.com and search for cats"# 交互式 REPL
agent-browser chat
# > take a screenshot
# > click the first result# 安静模式(只输出 AI 回复)
agent-browser -q chat "summarize this page"# 详细模式(显示底层命令执行)
agent-browser -v chat "fill in the login form"

需要配置环境变量:

export AI_GATEWAY_API_KEY=***
export AI_GATEWAY_MODEL=anthropic/claude-sonnet-4.6   # 默认
export AI_GATEWAY_URL=     # 默认

十五、Dashboard 实时监控

启动本地 Web Dashboard,可以在浏览器里实时观看 AI 操作:

agent-browser dashboard start           # 默认端口 4848
agent-browser dashboard start --port 8080# 之后正常执行命令,画面会自动同步到 dashboard
agent-browser open example.com
agent-browser snapshot# 停止 dashboard
agent-browser dashboard stop

Dashboard 显示内容:

  • 实时画面:浏览器视口的 JPEG 帧流
  • 活动流:命令执行历史和时间线
  • 控制台输出:log / warn / error
  • 会话管理:创建新会话
  • AI Chat:在 Dashboard 里直接和 AI 对话

十六、Streaming:实时画面流

每个 session 默认会启动一个 WebSocket server,可以通过 WebSocket 接收浏览器画面或发送输入事件:

# 查看当前流的端口
agent-browser stream status# 指定端口
AGENT_BROWSER_STREAM_PORT=9223 agent-browser open example.com# 启停控制
agent-browser stream enable --port 9223
agent-browser stream disable

WebSocket 协议支持接收 frame(base64 JPEG)、发送 input_mouseinput_keyboardinput_touch 事件。适合做人机协同的 "pair browsing" 场景。


十七、配置持久化

不想每次敲一堆参数?用配置文件:

// agent-browser.json(项目级)
{
  "headed": true,
  "proxy": "http://localhost:8080",
  "screenshotFormat": "jpeg",
  "screenshotQuality": 80
}

配置优先级(低到高):

  1. ~/.agent-browser/config.json — 用户级默认
  2. ./agent-browser.json — 项目级覆盖
  3. AGENT_BROWSER_* 环境变量
  4. CLI 参数

十八、云浏览器提供商

如果本地不能跑浏览器(比如 serverless 环境),agent-browser 支持直接接入云浏览器:

提供商启用方式
Browserbase-p browserbase + BROWSERBASE_API_KEY
Browserless-p browserless + BROWSERLESS_API_KEY
Browser Use-p browseruse + BROWSER_USE_API_KEY
Kernel-p kernel + KERNEL_API_KEY
AgentCore-p agentcore(AWS Bedrock,自动读 AWS 凭证)

切换后所有命令行为完全一致,只是后端换成了云端浏览器。


十九、iOS 模拟器支持

agent-browser 可以控制 iOS Simulator 里的 Safari,做真机移动测试:

# 列出可用设备
agent-browser device list# 在 iPhone 16 Pro 上打开页面
agent-browser -p ios --device "iPhone 16 Pro" open # 同样的命令
agent-browser -p ios snapshot -i
agent-browser -p ios tap @e1
agent-browser -p ios swipe up
agent-browser -p ios screenshot mobile.png

需要提前安装 Appium 和 XCUITest driver。首次启动模拟器大约 30-60 秒,后续命令很快。


二十、典型 AI Agent 工作流

把上面的命令组合起来,一个完整的 AI 浏览器自动化工作流是这样的:

# 1. 打开目标页面
agent-browser open # 2. 获取带 ref 的快照
agent-browser snapshot -i --json# 3. AI 从 snapshot 里识别出:
#    @e1 = Email 输入框, @e2 = Password 输入框, @e3 = Submit 按钮# 4. 执行操作
agent-browser fill @e1 "user@example.com"
agent-browser fill @e2 "password"
agent-browser click @e3# 5. 等待页面跳转
agent-browser wait --url "**/dashboard"# 6. 重新快照确认状态
agent-browser snapshot -i --json# 7. 截图留存
agent-browser screenshot result.png

或者写成 batch:

agent-browser batch 
  '["open","https://example.com/login"]' 
  '["snapshot","-i"]' 
  '["fill","@e1","user@example.com"]' 
  '["fill","@e2","password"]' 
  '["click","@e3"]' 
  '["wait","--url","**/dashboard"]' 
  '["screenshot","result.png"]'

写在最后

agent-browser 的定位不是替代 Puppeteer/Playwright,而是做专为 AI Agent 优化的浏览器 CLI。它的 Snapshot + Ref 机制、原生 Rust 性能、命令链式调用、batch 批量执行、内置 AI Chat、Dashboard 监控,都是围绕「让 AI 更高效地操作浏览器」这个核心目标设计的。

如果你在做 AI Agent、自动化测试、网页爬虫、或者需要让 LLM 能看懂并操作网页,agent-browser 值得投入时间试试。

GitHub:github.com/vercel-labs…
文档:agent-browser.dev


相关工具

如果你在用 agent-browser 做 AI 浏览器自动化,后续通常也会遇到多模型接入、API Key 管理和用量统计的问题。可以了解一下 EbeeAI,它提供统一的 AI API 网关,新用户注册后有 $10 试用额度,适合先用小规模自动化任务验证成本和稳定性。

来源:互联网

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

同类文章推荐

相关文章推荐

更多