技能使用指南

agent-browser(智能体浏览器自动化CLI工具)Skill 是什么?

面向 AI 代理的浏览器自动化 CLI 技能:用 refs 与语义定位器实现确定性元素选择,代理模式输出 JSON,支持会话管理、认证头部、CDP 连接与视口流式传输。本文详解技能安装步骤、核心命令、竞品对比与典型应用场景,帮你把网页操作稳定接入 AI 工作流,立即上手实践。

智能体浏览器自动化CLI工具Skillagent-browser
9 个章节 约 15 分钟阅读 AI 智能生成

智能体浏览器自动化CLI工具Skill:让 AI 代理用命令行精准操控浏览器

  • 一个专为 AI 代理设计的浏览器自动化技能:把「打开网页、点击、填表、抓取内容」等动作变成可被代理稳定调用的 CLI 命令,而不是依赖模型去猜页面结构。
  • 确定性的元素定位是关键差异点:以快照生成的 refs(如 @e1、@e2)为主,辅以 CSS、XPath 与语义定位器,减少「元素找不到」的随机失败。
  • 代理模式 + JSON 输出:让 AI 代理拿到机器可读的结果,便于嵌入自动化工作流与判断分支。
  • 工程化能力齐全:会话管理、认证头部、headed 调试、CDP 连接、视口流式传输、多标签页与 iframe 处理等,覆盖从调试到生产的完整链路。
  • 上手门槛不高:技能内已按官方文档结构整理示例与模板,按主题加载对应文件即可快速照抄改写。

1. 该技能叫什么?如何一键安装 AI 技能提升开发效率?

技能中文名:智能体浏览器自动化CLI工具Skill 技能英文名:agent-browser 技能ID:12798

它要解决的问题非常具体:AI 代理要「上网办事」,但网页是为人眼设计的——元素会重排、加载有延迟、弹窗随时出现。让模型直接「看着办」,结果往往是不稳定、不可复现。这个技能把 agent-browser 这个面向 AI 代理的命令行浏览器自动化工具的完整用法打包成技能,让代理在需要操作浏览器时,能按标准语法、标准流程执行,而不是即兴发挥。

「一键安装」的思路与步骤

所谓一键安装,指的是先把这个技能装进你的 AI 环境,让代理在遇到「浏览器自动化」类任务时自动加载对应知识;随后再按技能内的官方安装说明装好 agent-browser 本体。

  1. 安装前提:你的使用环境支持加载 AI 技能(技能市场、技能目录或本地技能包),并具备可运行命令行工具的终端环境。若要连接或调试浏览器,还需要本机有可用的浏览器环境。
  2. 安装技能:在技能市场或技能管理入口搜索技能名 agent-browser(技能ID 12798)并安装;本地部署场景下,按平台说明将技能目录放入技能路径。具体入口与命令以官方说明为准。
  3. 安装 agent-browser 本体:技能详情中明确指向 examples/getting-started/installation.md 提供安装说明,请按该文件执行;工具本身托管在 GitHub 仓库 https://github.com/vercel-labs/agent-browser,安装方式与版本要求以仓库 README 为准。
  4. 验证是否生效:安装完成后,在终端调用一次最基础的命令(例如查看帮助或打开一个页面并做一次快照),能正常返回结果即说明工具链可用;再让 AI 代理复述「先快照再交互」的标准流程,若它按技能内容给出 refs 优先的操作建议,说明技能已被正确加载。

提示:技能详情中未给出具体安装命令、版本号与费用信息,这些内容一律以官方说明为准,不要凭记忆硬编码。

2. 该技能的主要功能和特点

  • 完整的核心命令覆盖:基本命令(打开、点击、填充)、高级命令(快照、评估),以及信息检索、状态检查、等待、鼠标控制、浏览器配置、Cookies 与存储、网络拦截、标签页与窗口、iframe、对话框、调试、导航、设置等多组命令目录。
  • 多套选择器体系:refs(@e1、@e2 这类基于无障碍树生成的确定性引用)、CSS、XPath,以及按角色/名称工作的语义定位器。refs 优先,语义定位器兜底,这是它在稳定性上强于「手写选择器脚本」的核心。
  • 代理模式(Agent Mode):提供面向 AI 工作流的最优实践,配合 --json 标志输出机器可读结果,方便代理解析并决策下一步。
  • 会话管理:通过 --session 在多次命令之间保持状态,避免每一步都重新登录、重新导航。
  • 调试与生产双模式:--headed 打开可见浏览器排查问题,默认 headless 适合生产运行。
  • 认证与既有浏览器接入:--headers 支持用自定义请求头完成认证会话,跳过冗长的登录流程;--cdp 可连接 Chrome DevTools Protocol,复用已开着的浏览器。
  • 实时预览:通过 AGENT_BROWSER_STREAM_PORT 把浏览器视口流式传输出来,便于人工盯屏或演示。
  • 部署灵活性:--executable-path 指定自定义浏览器可执行文件,适配无服务器部署等特殊环境。
  • 快照输出可调:结合 -i(交互式快照选择)、-c、-d、-s 等选项优化快照内容,控制返回体积与精度。
  • 文档即技能:示例目录按官方文档结构一一对应,另有 templates/basic-automation.md、templates/ai-agent-workflow.md 两套脚手架,拿来即改。

与传统浏览器自动化方案相比,它强在为代理而设计:输出结构化、定位确定化、动作命令化,减少模型在页面结构理解上的消耗。

3. 如何使用该技能?

整体使用路径可以概括为:识别主题 → 加载对应示例文件 → 照抄语法并改写 → 按最佳实践执行。下面是一个可参考的分步流程(具体子命令语法以技能内 api/commands.md 官方命令参考为准)。

  1. 明确任务类型。先判断属于哪一类:表单填写、内容提取、状态校验、多标签页操作、网络拦截等。再按技能给出的文档映射加载相应示例文件,例如表单与交互类加载 examples/commands/basic-commands.md,元素定位加载 examples/selectors/refs.md。
  2. 建立会话。给这次自动化起一个会话名(--session),后续所有命令复用同一会话,保持登录态与页面状态。
  3. 打开目标页面。使用导航类命令进入目标地址。命令会自动等待导航完成,无需额外 sleep。
  4. 获取快照拿 refs。这是最关键的一步:先快照,得到带无障碍树信息的页面结构,元素会被标注为 @e1、@e2 这样的引用。若只需要可交互元素,可配合 -i 做交互式快照筛选。
  5. 基于 refs 执行交互。点击 @e3、往 @e5 填充文本、勾选 @e7……因为 refs 指向的是快照中真实存在的节点,动作命中率显著高于手写 CSS 选择器。
  6. refs 不可用时切换语义定位器。当页面动态刷新导致 refs 失效,改用按角色/名称的语义定位器,例如「找到名称为『提交』的按钮」,可读性与稳定性兼顾,其次再退回 CSS 或 XPath。
  7. 提取结果或校验状态。用信息检索命令读取文本、属性、URL,用状态检查命令判断元素是否可见/可用;需要断言时结合退出代码与错误消息判断成功与否。
  8. 代理模式集成。把这个流程接进 AI 代理时,加 --json 拿到结构化输出,代理据此决定下一步动作;可参考 examples/agent-mode/optimal-workflow.md 与 examples/advanced/usage-with-agents.md 的集成模式。
  9. 调试与排错。结果异常时用 --headed 打开可见浏览器复现,或通过 --cdp 连到已有浏览器检查现场;需要盯屏时开启流式传输端口。

输入输出示意(描述性,非精确语法): 输入是一次「打开某后台页面 → 用认证头部进入 → 快照 → 往搜索框填关键词 → 点击查询按钮 → 读取首条结果标题」的流程;输出是包含该标题文本的 JSON 结构。代理只需解析字段即可,不必理解整页 DOM。

最佳实践清单(技能内置,建议直接遵守):优先 refs;交互前必先快照;代理模式必开 --json;跨命令必用 --session;调试用 --headed、生产用 headless;检查退出代码;不要手动等待导航。

4. 同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
agent-browser(本技能) 为 AI 代理设计的浏览器自动化 CLI 命令式操作、refs/语义定位器、代理模式 JSON 输出、会话、CDP、流式传输 需安装 CLI 与技能包,按官方说明执行;语法学习成本低 AI 代理工作流、需要确定性定位的自动化、代理侧长流程任务 优势:输出结构化、定位稳定、命令粒度清晰、面向代理优化;不足:生态与社区规模小于成熟测试框架,复杂断言逻辑仍需外部编排
Playwright 通用浏览器自动化与端到端测试框架 多浏览器驱动、强大选择器、测试运行器、录制回放 需要编程语言环境与项目脚手架,学习曲线中等偏上 端到端测试、爬虫、复杂业务流程 优势:生态成熟、文档丰富、调试工具强;不足:面向人写代码,代理直接调用需要额外封装,输出不是为模型设计的
Puppeteer Node 生态的浏览器控制库 页面控制、截图、PDF、网络拦截 需 Node 环境与脚本编写 前端自动化、截图与渲染类任务 优势:轻量、与 Chromium 结合紧密;不足:偏脚本化,缺少代理模式与语义定位抽象
Selenium 老牌跨浏览器自动化框架 WebDriver 协议、多语言绑定、网格分布式 需驱动与浏览器版本匹配,环境配置繁琐 传统测试体系、企业存量自动化 优势:标准成熟、跨浏览器支持广;不足:速度与稳定性口碑一般,对 AI 代理不友好

选择建议:如果是给人写测试,Playwright 依然是首选;如果是给 AI 代理写动作,agent-browser 的命令式 + refs + JSON 组合更贴合场景,能显著减少「模型看不懂页面」的失败。

5. 该技能的典型应用场景与实际体验情况

场景一:AI 代理做后台数据巡检 运营或数据同学每天要在若干后台系统里查报表、导出数字。痛点是这些系统没有开放 API,人工重复操作耗时。做法是把「登录 → 进入报表页 → 选日期 → 读取关键指标」写成 CLI 流程,由代理定时触发,--headers 复用认证头免登录,结果以 JSON 回传汇总。实际体验:流程固定后非常稳,主要工作量集中在首次写对快照与定位;注意页面改版后 refs 会变,需要重新快照。

场景二:表单类重复录入(销售/客服) 销售需要在 CRM 里批量录入线索,客服需要在工单系统回填信息。用 refs 定位输入框与提交按钮,配合会话保持,一次会话内连续处理多条。实际体验:比手工点快得多,且错误更容易定位——失败时开 --headed 看一眼就知道是元素没加载还是定位错了。

场景三:开发者的端到端自测与回归 开发提交前需要验证「注册 → 登录 → 下单」主流程是否通畅。用本技能把主流程写成命令序列,接入代理后可以一句话触发。实际体验:上手成本低于搭一套测试工程,适合轻量回归;不足是复杂断言(如视觉对比、并发压测)仍需配合专业框架。

场景四:需要实时观察的演示与联调 做产品演示或远程排查时,把浏览器视口通过流式传输端口推给他人观看,同时用代理执行操作。实际体验:--headed 加流式传输的组合对「让人看到 AI 在做什么」非常直观,属于体验层面的加分项。

整体上手难度:中等偏易。懂基本命令行的人半小时内能跑通第一条流程;真正的门槛在于「快照 → refs → 交互」这个思维习惯的养成,养成后几乎不会回头手写选择器。

6. 该技能能为用户带来的价值

  • 效率提升:把「人工点击 N 步」压缩成一条命令序列或一次代理调用;配合会话复用与自动等待导航,省掉大量等待与重试时间。
  • 稳定性提升:refs 与语义定位器把「元素找不到」这类最常见的失败从随机事件变成可控问题,自动化脚本的维护成本明显下降。
  • 门槛降低:不需要先搭一套测试工程、也不需要精通某个编程语言的浏览器驱动 API,会写命令行就能驱动浏览器;技能内置示例与模板可直接改。
  • 与 AI 工作流天然契合:--json 代理模式让代理能稳定解析结果并做分支决策,这是把浏览器能力真正嵌入自动化闭环的前提。
  • 长期价值:一套技能覆盖调试(headed)、生产(headless)、已有浏览器接入(CDP)、部署适配(自定义可执行文件)等场景,团队可以把「浏览器操作」沉淀为可复用的标准能力,而不是每个人各写一份脚本。
  • 成本可控:所有安装与使用细节以官方仓库与说明为准,无需额外的商业授权采购即可评估。

7. 常见问题 FAQ

Q1:这个技能怎么安装?装完怎么确认生效? 先在技能管理入口安装 agent-browser(技能ID 12798),再按技能内 examples/getting-started/installation.md 的说明安装 agent-browser 本体,仓库地址为 https://github.com/vercel-labs/agent-browser。验证方式:跑一次「打开页面 + 快照」的最简流程,能返回页面结构即说明工具链正常;让代理复述操作原则,若它强调「先快照再交互、优先 refs」,说明技能已加载。具体命令以官方说明为准。

Q2:收费吗? 技能详情中未提及任何价格与授权费用信息,仅注明「完整条款见 LICENSE.txt」。因此请以项目仓库中的许可证说明与实际计费政策为准,不要以本文作为收费依据。

Q3:适合谁用? 最适合三类人:一是要把浏览器操作接入 AI 代理的开发者;二是没有 API 但需要批量处理网页任务的运营与数据同学;三是想用轻量方式做流程自测的开发工程师。如果你需要的是完整的测试框架能力(视觉回归、并发压测、测试报告),建议叠加专业框架。

Q4:和 Playwright、Puppeteer 怎么选? 给「人」写测试选 Playwright;给「AI 代理」写动作选 agent-browser。差别在输出形态与定位抽象:前者的产出是代码与测试报告,后者的产出是命令结果与 JSON,模型更容易消费。两者并不完全互斥,实践中常用本技能跑代理侧的日常任务,用 Playwright 守住重测试场景。

Q5:页面一改版就失效怎么办? 这是所有浏览器自动化的通病,但有缓解手段:优先用语义定位器(角色/名称)承接容易变化的 refs;把「先快照」作为固定套路,每次任务开始时重新取 refs;关键流程加状态检查与退出码判断,失败即报警而非静默跳过;调试时开 --headed 快速定位是加载问题还是定位问题。