欢迎光临
我们一直在努力

agent-browser 使用指南:AI 时代的浏览器自动化利器

agent-browser 使用指南:AI 时代的浏览器自动化利器

前言

在 AI 智能体(AI Agent)快速发展的今天,让 AI 自主操控浏览器完成网页任务已成为开发者最迫切的需求之一。传统的 Playwright、Puppeteer 虽然功能强大,但它们面向人类开发者设计,API 复杂、输出冗余,AI 使用这些工具时常常面临 Token 消耗过大、响应延迟过高等问题。

Vercel Labs 开源的 agent-browser 正是为解决这一痛点而生——这是一款专为 AI 智能体设计的浏览器自动化命令行工具,使用 Rust 编写,通过网页无障碍树(Accessibility Tree)实现 AI 对页面元素的精准交互。GitHub 星标超过 3 万,npm 周下载量超过 65 万,已成为 AI 浏览器自动化领域最具影响力的项目之一。

本文将带你从零开始,全面掌握 agent-browser 的安装、配置与使用技巧。

一、agent-browser 是什么?

1.1 项目定位

agent-browser 是一款专为 AI Agent 设计的浏览器自动化命令行工具(CLI),核心特点包括:

  • AI 原生设计:输出的是紧凑的“可访问性树(Accessibility Tree)”而非庞大的 DOM 树,Token 消耗比传统 Playwright MCP 方案减少高达 93%。
  • 基于引用的交互系统:通过 snapshot 命令生成元素引用(如 @e1、@e2),AI 可直接通过引用操作元素,无需编写脆弱的选择器。
  • 高性能跨平台:核心 CLI 由 Rust 编写,响应快、性能高。通过 Node.js 作为后备(fallback),保证在 macOS、Linux、Windows 上的兼容性。
  • 功能全面:提供超过 50 个命令,涵盖导航、表单填写、点击、截图、网络请求拦截等所有浏览器操作。

1.2 为什么要用 agent-browser?

传统方案如 Playwright MCP 的输出是结构化 JSON,Token 消耗约为 agent-browser 的 5.7 倍。agent-browser 采用 CLI-first 架构,AI 通过执行 shell 命令来控制浏览器,大幅降低 Token 消耗和延迟。同时,agent-browser 的守护进程(daemon)独立运行,无需 Node.js 运行时,启动更快、资源占用更少。

1.3 工作原理

agent-browser 通过 Chrome DevTools Protocol(CDP)直接与浏览器通信,无需 WebDriver 中间层。其核心技术栈为:85% Rust + 12.4% TypeScript,采用三层架构——Rust CLI 层负责解析命令、CDP Daemon 负责浏览器进程管理、Chrome for Testing 则提供自动化专用浏览器内核。

此外,市面上也存在其他类似“Agent Browser”概念的云平台产品,例如 Bright Data 的 Agent Browser 提供了云端的浏览器自动化平台,内置反反爬能力和 CAPTCHA 自动求解功能。本文主要聚焦于开源的 agent-browser(Vercel Labs 出品),这也是 GitHub 上被广泛使用的解决方案。

二、环境准备:你需要什么?

在开始安装之前,请确保你的系统满足以下条件:

  • Node.js:用于安装 npm 包和运行后备层
  • Chrome 浏览器:可以通过 agent-browser 的 install 命令自动下载 Chrome for Testing(Google 官方的自动化测试版 Chrome),也可以使用系统中已有的 Chrome、Brave 或 Playwright 安装的 Chromium

可选需求:

  • Rust:仅在从源码构建时需要
  • pnpm:从源码构建时需要

三、安装 agent-browser

3.1 全局安装(推荐,全平台适用)

npm install -g agent-browser
agent-browser install

第一条命令安装 agent-browser 的 CLI。第二条命令会自动下载 Chrome for Testing,首次安装必须执行。

3.2 macOS 用户:Homebrew 安装

brew install agent-browser
agent-browser install

3.3 项目内安装(本地依赖)

如果希望在项目中固定版本:

npm install agent-browser
agent-browser install

之后可以通过 package.json 的 scripts 或直接调用 agent-browser。

3.4 Rust 环境:Cargo 安装

cargo install agent-browser
agent-browser install

3.5 从源码构建

git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build
pnpm build:native # 需要 Rust
pnpm link –global
agent-browser install

Linux 用户在安装时需要加上 –with-deps 参数来自动安装系统依赖。

3.6 国内用户安装注意事项

在国内网络环境下,agent-browser install 可能会因无法访问 Chrome for Testing 下载地址而失败。解决方案:

  • 手动下载 Chrome for Testing:访问 https://googlechromelabs.github.io/chrome-for-testing/ 官方索引,找到对应操作系统的版本,下载 chrome-win64.zip 并解压到指定目录(如 C:\\tools\\chrome-win64)。

  • 设置环境变量:

    # Windows
    set AGENT_BROWSER_CHROME_PATH=C:\\tools\\chrome-win64\\chrome.exe

    # macOS / Linux
    export AGENT_BROWSER_CHROME_PATH=/path/to/chrome

  • 验证配置:

    agent-browser open https://example.com –headed

    如果能正常打开浏览器窗口,说明配置成功。

  • 3.7 升级

    升级到最新版本只需一条命令,agent-browser 会自动检测你的安装方式(npm、Homebrew 或 Cargo)并执行相应更新:

    agent-browser upgrade

    3.8 安装 TypeScript 封装(可选)

    如果你更喜欢面向对象的编程方式,可以使用社区提供的 TypeScript 封装库:

    npm install @sigodenjs/agent-browser

    import { Browser } from '@sigodenjs/agent-browser';

    const browser = new Browser({ headed: true });
    await browser.goto('https://example.com');
    await browser.fill('#search', 'hello world');
    await browser.click('button[type="submit"]');
    const title = await browser.get.title();
    const snap = await browser.snapshot();
    await browser.close();

    该封装提供了与 CLI 命令一一对应的面向对象 API,支持导入在带有 sourcemap 的 TypeScript/JavaScript 项目中使用。

    四、基础使用手册

    4.1 核心工作流

    agent-browser 的操作遵循一个简单而强大的模式:打开页面 → 获取快照 → 操作元素。这是一个典型的基础示例:

    # 1. 打开网页
    agent-browser open https://example.com

    # 2. 获取页面快照(生成元素引用)
    agent-browser snapshot -i

    # 输出示例:
    # – 链接 "Made with love by Vercel" [ref=e1]
    # – 链接 "agent-browser" [ref=e2]
    # – 按钮 "Ask AI" [ref=e26]

    # 3. 使用引用进行交互
    agent-browser click @e2
    agent-browser fill @e3 "test@example.com"

    # 4. 截图保存
    agent-browser screenshot page.png

    # 5. 关闭浏览器
    agent-browser close

    快照机制是 agent-browser 的核心创新:它会智能识别页面中的可交互元素,为每个元素分配一个唯一引用(如 @e1、@e2)。AI 可以直接通过引用操作元素,大幅降低 Token 消耗。

    4.2 常用命令速查

    功能分类命令示例说明
    导航 agent-browser open <url> 打开页面(可用 goto 或 navigate 别名)
    快照 agent-browser snapshot -i 获取可交互元素及引用
    交互 agent-browser click @e1 点击由快照返回的元素
    填充 agent-browser fill @e2 "文本" 清空并填入文本
    截图 agent-browser screenshot ./page.png 保存页面截图
    关闭 agent-browser close 关闭浏览器

    4.3 快照的高级用法

    快照支持多种模式来满足不同场景需求:

    # 获取所有可交互元素的引用(推荐)
    agent-browser snapshot -i

    # 包含鼠标光标可交互的元素
    agent-browser snapshot -i -C

    # 包含 URL 信息
    agent-browser snapshot -i –urls

    4.4 常用交互命令

    # — 点击与输入 —
    agent-browser click "@e1" # 点击元素
    agent-browser dblclick "@e1" # 双击元素
    agent-browser type "@e2" "hello" # 逐字输入
    agent-browser fill "@e2" "hello world" # 清空并填充
    agent-browser press Enter # 按键操作

    # — 表单操作 —
    agent-browser select "@e3" "California" # 选择下拉选项
    agent-browser check "@e4" # 勾选复选框
    agent-browser uncheck "@e4" # 取消勾选

    # — 鼠标操作 —
    agent-browser hover "@e1" # 悬停元素
    agent-browser focus "@e1" # 聚焦元素
    agent-browser drag "@e1" "@e2" # 拖拽元素

    # — 滚动 —
    agent-browser scroll down 300 # 向下滚动
    agent-browser scrollintoview "@e5" # 滚动到元素可见

    4.5 等待机制

    等待页面加载或特定条件是一门艺术。agent-browser 提供了灵活的等待命令:

    # 等待网络空闲(确保页面加载完成)
    agent-browser wait –load networkidle

    # 等待特定元素出现
    agent-browser wait @e15

    # 等待特定文本出现
    agent-browser wait –text "登录成功"

    # 等待 URL 变化
    agent-browser wait –url "https://example.com/dashboard"

    4.6 使用传统选择器

    除了快照引用,agent-browser 也支持 CSS 选择器,兼容传统使用习惯:

    agent-browser click "#submit"
    agent-browser fill "#email" "test@example.com"
    agent-browser find role button click –name "Submit"

    4.7 执行 JavaScript

    agent-browser eval "document.title"

    可以用来读取页面数据、获取渲染后的元素状态,或触发复杂的页面逻辑。

    4.8 数据提取

    agent-browser 提供了一套强大的 get 子命令用于数据提取:

    # 获取文本内容
    agent-browser get text "@e1"

    # 获取 HTML 内容
    agent-browser get html ".result"

    # 获取元素属性
    agent-browser get attr "@e2" "href"

    # 获取页面标题
    agent-browser get title

    # 获取当前 URL
    agent-browser get url

    # 获取元素数量
    agent-browser get count ".item"

    五、进阶功能详解

    5.1 有头模式与无头模式

    • 无头模式(默认):浏览器在后台静默运行,不显示窗口,适合服务器环境和批量任务。
    • 有头模式:显示浏览器窗口,方便调试和观察:

    agent-browser open https://example.com –headed

    5.2 多标签页管理

    agent-browser 支持同时管理多个浏览器标签页:

    # 新建标签页
    agent-browser tab new https://github.com

    # 切换到指定 tab
    agent-browser tab 2

    # 列出所有标签页
    agent-browser tab list

    # 关闭当前标签页
    agent-browser tab close

    5.3 认证管理

    agent-browser 提供多种认证状态管理方案:

    方案一:Auth Vault(推荐)

    # 保存凭据…
    echo "password" | agent-browser auth save github \\
    –url https://github.com/login \\
    –username user \\
    –password-stdin

    # …之后随时登录
    agent-browser auth login github

    方案二:Chrome Profile 复用

    agent-browser –profile Default open https://gmail.com

    利用已有的 Chrome 用户配置文件,直接使用已登录的会话。

    方案三:状态文件保存/加载

    agent-browser state save ./auth.json
    agent-browser state load ./auth.json

    将认证状态持久化到文件,跨会话复用。

    5.4 网络监控与拦截

    # 查看网络请求
    agent-browser network requests

    # 拦截特定请求
    agent-browser network route "**/api/*" –abort

    # 录制 HAR 文件
    agent-browser network har start
    agent-browser network har stop ./capture.har

    这对于调试 AJAX 请求、分析页面加载性能或拦截不需要的请求非常有用。

    5.5 会话隔离

    agent-browser 支持多个独立的浏览器实例,每个实例有自己的 Cookie、LocalStorage 和身份验证状态:

    # 创建独立会话
    agent-browser session create –name "my_session"

    # 使用指定会话打开页面
    agent-browser open https://example.com –session "my_session"

    这对于需要同时登录多个账号的场景(如多账号管理、A/B 测试等)特别有用。

    5.6 命令链式调用与批处理

    # 链式调用(&& 连接多个命令)
    agent-browser fill @e1 "text" && agent-browser click @e2

    # 批处理(单次调用执行多个命令)
    agent-browser batch \\
    "open https://example.com" \\
    "snapshot -i" \\
    "screenshot"

    批处理可以减少往返次数,进一步提高 Token 效率。

    5.7 截图与 PDF 导出

    # 标准截图
    agent-browser screenshot page.png

    # 全页截图
    agent-browser screenshot page.png –full

    # 导出 PDF
    agent-browser pdf page.pdf

    5.8 文件操作

    # 上传文件
    agent-browser upload "@e1" ./document.pdf

    # 下载文件
    agent-browser download "@e2" ./downloads/

    5.9 键盘高级操作

    # 在当前焦点元素上模拟真实键盘输入
    agent-browser keyboard type "hello"

    # 不触发 key 事件直接插入文本
    agent-browser keyboard inserttext "hello"

    # 按住/释放特定键
    agent-browser keydown Control
    agent-browser keyup Control

    六、与 AI Agent 集成

    6.1 内置 AI 对话模式

    agent-browser 内置了 chat 命令,支持通过自然语言直接控制浏览器:

    agent-browser chat

    进入交互式 REPL 模式后,可以用自然语言描述任务,agent-browser 会自动规划并执行操作。

    6.2 集成到 Cursor / Claude Code / Codex

    安装 agent-browser skill 后,你可以在主流 AI 编码助手中直接控制浏览器:

    npx skills add vercel-labs/agent-browser –skill agent-browser

    安装完成后,在 Cursor、Claude Code 或 Codex 中就可以直接给 AI 下达浏览器操控指令,例如“打开百度首页并截图”。

    6.3 与 AI Agent 搭配的使用模式

    将 agent-browser 集成到 AI Agent 的核心模式是:AI Agent 通过调用 agent-browser 的命令行接口来控制浏览器,agent-browser 返回紧凑的文本输出供 AI 分析决策。在智能决策层的循环中,AI 解析快照、规划下一步操作,再调用 agent-browser 执行。浏览器操作由 agent-browser 的 CDP Daemon 独立管理,AI 只需要发出 shell 命令即可完成复杂的网页自动化任务。

    七、实战场景与示例

    7.1 场景一:自动化新闻采集与数据抓取

    利用 agent-browser,AI 可以自动完成新闻采集的完整流程:先导航到新闻网站并关闭弹窗,再滚动页面加载更多内容,接着通过快照获取所有新闻链接,逐篇提取标题、摘要和正文,最后将数据输出为结构化 JSON 交由 AI 进一步处理或存储。整个过程无需人工干预。

    7.2 场景二:智能表单填写

    AI 驱动 agent-browser 可以自动填写各种网页表单:先导航到表单页面获取快照,再根据元素引用逐一填写输入框(如姓名、邮箱、地址等),接着选择下拉菜单选项、勾选复选框,最后点击提交按钮并等待成功提示。这对批量报名、调查问卷填写、客户信息录入等场景特别实用——agent-browser 提供了专门的 fill、select、check、press 等命令,能处理大多数表单交互。

    7.3 场景三:多平台内容发布

    结合 AI 内容生成能力,agent-browser 可以登录多个平台自动发布内容。典型流程是:首先通过 Auth Vault 自动登录;然后导航到内容发布页面;再利用 fill 或 inserttext 填写标题和正文;接着通过 upload 功能上传图片附件;最后提交并验证发布结果。多标签页管理功能可以同时向多个平台发布。

    7.4 场景四:电商比价与竞品监控

    利用 agent-browser 的多标签页和网络监控功能,AI 可以同时打开多个电商平台,搜索相同商品,提取价格、评价数据,通过 get text 和 get attr 提取结构化信息,最终输出完整的比价报告。

    八、同类工具对比与选择

    agent-browser vs Playwright/Puppeteer

    维度agent-browserPlaywright/Puppeteer
    设计目标 AI Agent 优先 人类开发者优先
    Token 效率 极高(紧凑文本输出) 低(JSON/完整交互数据)
    核心语言 Rust JavaScript/Python
    安装复杂度 一条命令 需要安装浏览器驱动
    认证管理 内置 Auth Vault 需手动管理
    多 tab 管理 命令行原生支持 API 原生支持

    agent-browser vs Playwright MCP

    Playwright MCP 的输出是结构化 JSON,Token 消耗约为 agent-browser 的 5.7 倍;Playwright 需要 Node.js 运行时,而 agent-browser 的 daemon 独立运行,启动更快。在 Token 成本和响应速度方面,agent-browser 有明显优势。

    注:如果你需要云端的浏览器自动化能力,可以考虑 Bright Data 的 Agent Browser 等商业产品。它们能自动绕过 CAPTCHA、反爬检测,适合大规模自动化任务,但需要付费使用。本文介绍的 agent-browser 是完全开源的解决方案,适合大多数开发场景。

    九、局限性与注意事项

    当前局限

    • 仅支持 Chrome:agent-browser 通过 Chrome DevTools Protocol 与 Chrome 通信,不支持 Firefox、Safari 等其他浏览器。
    • 无内置 AI 模型:需要与 AI Agent 配合使用,本身不包含智能决策能力。
    • 对现代 Web 框架的适配:虽然支持 React SPA(通过 pushstate 命令操作浏览器历史记录),但在某些复杂场景下仍需额外处理。

    使用建议

  • 国内网络环境:agent-browser install 可能无法下载 Chromium,请参照 3.6 节的手动配置方案。
  • Mac 首次启动:Mac 用户首次运行时需在“系统偏好设置 → 安全性与隐私”中允许 agent-browser 运行。
  • 命令行参数顺序:命令的参数位置有严格要求,部分命令需要 — 分隔选项和参数。
  • 认证安全性:Auth Vault 中的凭据建议加密存储,**不要**将认证信息硬编码在脚本中。
  • 错误处理:agent-browser 提供 errors 命令查看 JavaScript 报错信息,console 命令查看浏览器控制台输出,可通过这两个命令快速定位问题。
  • 结语

    agent-browser 代表了浏览器自动化工具的一次范式转移——从“面向人类开发者”到“面向 AI 智能体”。它以极低的 Token 消耗、出色的性能和 AI 友好的设计,正在成为 AI Agent 开发者不可或缺的工具。GitHub 3 万星标、npm 65 万周下载量的数据也印证了这一点。

    无论你是想构建自动化新闻采集系统、智能表单填写机器人,还是让 AI 助手真正地“上网干活”,agent-browser 都值得你深入学习和使用。

    更加值得期待的是,agent-browser 正在快速迭代更新,截至本文发布时已在 4 天内连续发布了 6 个版本,项目活力可见一斑。未来它有望集成更多 AI 原生能力,进一步降低开发者门槛,让 AI 上网操控成为每个人都触手可及的能力。


    赞(0)
    未经允许不得转载:171主机测评 » agent-browser 使用指南:AI 时代的浏览器自动化利器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址