摘要:"大家使用 Agent 的频率越来越高之后,人类对浏览器的使用频率越来越低,浏览器已经沦为了 Agent 的 API Hub。"这句来自一线开发者的观察,揭示了一场正在发生的范式迁移:浏览器不再是给人用的界面,而是给 Agent 用的执行接口。但迁移之路并不平坦——传统方案依赖脆弱的 CSS 选择器,新一代方案又各有取舍。本文基于 20+ 条真实从业者语料的系统分析,对比三代浏览器自动化方案的演进逻辑,拆解 AI 原生方案的核心设计(可访问性树、语义化指令、CLI 优先),讨论 UI 自动化落地中的真实困境,并给出选型与验收的实操框架。最终收束到 Deep Skill Finder 的核心主张:验证一个自动化方案在真实页面上的稳定性,而不是轻信 Demo 演示。
一、现象观察:浏览器正在易主
一个耐人寻味的现象正在发生:随着 AI Agent 的普及,人类自己打开浏览器的次数在下降,而 Agent 操作浏览器的次数在飙升。
一位长期观察者写道:“大家使用 OpenClaw 这类 Agent 频率越来越高之后,人类对浏览器的使用频率越来越低了,浏览器现在已经沦为了 Agent 的 API Hub。那么,一个对 Agent 更友好的浏览器,是不是非常有需求?”
这个判断点破了问题的关键:过去二十年的浏览器是围绕"人类视觉+鼠标点击"设计的,而 Agent 需要的是"结构化感知+程序化操作"。两者的错配,催生了整整一代新工具——从 Vercel Labs 开源的 agent-browser,到大火的 Browser Use 库,再到各大 Agent 框架内置的浏览器控制能力。
与此同时,需求侧的真实困惑同样存在。一位被老板要求做 UI 自动化的开发者坦言:“想问问大家 agent browser 到底怎么用的,实现的方式是什么?老板要求我用这个做 UI 自动化,可是没有头绪。安装好了之后用命令执行打开浏览器,日志已经打开了,然后就不知道该干什么了。”
工具在爆发,认知在断层。这正是本文要解决的问题。
┌──────────────────────────────────────────────────────────┐ │ 浏览器角色的三代变迁 │ ├──────────────────────────────────────────────────────────┤ │ │ │ 第一代:人的浏览器(1995-2015) │ │ 为视觉阅读设计,鼠标+滚轮,人适应工具 │ │ │ │ 第二代:脚本的浏览器(2015-2024) │ │ Selenium/Playwright/Puppeteer,选择器驱动, │ │ 人写脚本替人操作,DOM 一改脚本就挂 │ │ │ │ 第三代:Agent 的浏览器(2024-) │ │ agent-browser/Browser Use,语义感知驱动, │ │ Agent 自主理解页面、决策操作,浏览器成为 API Hub │ │ │ │ 核心变化:操作单位从「选择器」变成「意图」 │ │ │ └──────────────────────────────────────────────────────────┘二、传统方案的困境:为什么选择器撑不起自动化工作流
在讨论新方案之前,必须先理解旧方案为什么不够用。
“在 AI Agent 开发中,浏览器自动化是刚需。传统方案要么依赖 Selenium/Playwright 的复杂 API,要么用 Puppeteer 硬写选择器维护成本极高。”
这段描述概括了传统方案的两大痛点:
痛点一:选择器的脆弱性。#app > div:nth-child(3) > button.submit这样的选择器,在页面改版、A/B 测试、动态渲染面前不堪一击。前端一次重构,成百上千条自动化脚本集体失效,维护成本随页面复杂度线性增长。
痛点二:API 的复杂度。Selenium 的显式等待、隐式等待、iframe 切换、窗口句柄管理,每一项都是学习成本。做浏览器自动化时"配置繁琐、多平台切换麻烦、操作门槛高"是普遍抱怨。
更深层的问题是感知方式的错配:脚本"看"页面靠 DOM 查询,而人类看页面靠视觉语义。当页面结构变化但语义不变时,人一眼就能找到按钮,脚本却崩溃了。
三、新范式:AI 原生浏览器自动化的三大设计
新一代工具的共性,是把"浏览网页"这件事重新设计成适合大模型理解与执行的接口。以 Vercel Labs 开源的 agent-browser 为例,它的定位非常明确:“它并不是传统意义上的自动化测试工具,而是把’浏览网页’这件事,重新设计成适合大模型理解与执行的接口。核心目标只有一个:让 Agent 能稳定、可控地操作真实网页。”
3.1 设计一:可访问性树替代 DOM 选择器
AI 原生方案的核心感知方式,不是解析原始 DOM,而是读取浏览器的可访问性树——这是浏览器为辅助技术(屏幕阅读器)维护的语义化页面描述,天然包含角色、名称、状态等结构化信息。
DOM 视角(脚本的世界): 可访问性树视角(Agent 的世界): <div class="btn-wrap-3"> - button "提交订单" [ref=e17] <button - textbox "收货地址" [ref=e18] class="primary__cta--v2" - checkbox "默认地址" [checked] onclick=...>提交订单 - link "优惠券" [ref=e19] </button> </div>同样的页面,前者是嵌套的标签迷宫,后者是带语义引用的元素清单。Agent 不需要"计算"按钮在哪,只需要"看见"按钮是什么。页面改版只要语义不变,引用依然有效——这从机制上解决了选择器脆弱的问题。
3.2 设计二:语义化指令替代坐标操作
传统脚本:page.click('#submit-btn')。AI 原生方案:{"action":"getbyrole","role":"button","name":"提交订单","subaction":"click"}。
指令的对象从"元素定位符"变成"语义描述",这中间的鸿沟由模型填充。配合"先快照、再交互、后重新快照"的基本循环,Agent 形成了与页面交互的完整闭环:
# AI 原生方案的典型工作循环browser-action'{"action":"navigate","url":"https://example.com/login"}'browser-action'{"action":"snapshot","interactive":true}'# 输出: @e1 [input 账号], @e2 [input 密码], @e3 [button 登录]browser-action'[{"action":"fill","selector":"@e1","value":"user"}, {"action":"fill","selector":"@e2","value":"pass"}, {"action":"click","selector":"@e3"}]'browser-action'{"action":"snapshot","interactive":true}'# 重新获取引用注意最后一步:元素引用在页面变化后会失效,必须重新快照。这是从"一次性定位"到"持续感知"的思维转变。
3.3 设计三:CLI 优先,为 Agent 而非为人设计
新一代工具普遍采用 CLI 形态,这看起来复古,实则精明——CLI 正是 Agent 最自然的交互界面。模型调用命令行比解析图形界面简单得多,输出对模型友好,且天然可组合、可编排进更大的工作流。
“它是一个专为 AI 智能体设计的无头浏览器自动化命令行界面工具……能够使 AI 智能体直接控制浏览器实例,执行诸如页面导航、截图以及信息提取等操作。”
四、方案对比:三条主流路线
语料显示,当前 Agent 操控浏览器主要有三种主流方式,各有适用边界:
| 路线 | 代表工具 | 感知方式 | 适用场景 | 主要风险 |
|---|---|---|---|---|
| 插件中继 | OpenClaw browser relay 等 | 逐步感知+逐步决策 | 复用用户已登录会话 | 每步都请求大模型,成本高、延迟大 |
| AI 原生 CLI | agent-browser、AgentScope Browser-use | 快照+语义引用 | 结构化任务、批量操作 | 复杂动态页面仍需多轮快照 |
| 视觉 Agent | Browser Use(视觉模型路线) | 截图+视觉理解 | 高度动态、无语义页面 | 依赖视觉模型能力,定位精度有限 |
一个值得注意的细节是中继模式的成本结构:“采用’逐步感知 + 逐步决策’的模式,每一步操作都需要重新读取页面并请求大模型”——对于步骤固定的流程,这意味着大量重复的感知开销。而快照+引用模式把"感知"和"决策"解耦:感知一次,执行多步,只在页面变化后重新感知。
选型的第一原则由此浮现:任务越结构化,越应该减少感知频次;任务越动态,越需要感知密集。
五、真实落地:从"没有头绪"到稳定运行
回到第一节那位"没有头绪"的开发者,他的困境很有代表性:工具装好了,日志打开了,然后呢?结合多位实践者的经验,落地路径可以分为三步。
5.1 第一步:把"人的操作"翻译成"Agent 的循环"
人做 UI 自动化的直觉是"点这里、填那里",Agent 的实际工作方式是"快照→理解→操作→再快照"。落地前先画出任务的循环结构:
任务:从管理后台导出上月订单报表 循环结构: 1. navigate → 打开后台地址 2. snapshot → 感知页面,找到「订单管理」入口引用 3. click → 点击入口 4. snapshot → 页面已变,重新感知,找到日期筛选器 5. fill/select→ 填写日期范围 6. snapshot → 感知「导出」按钮 7. click → 触发导出 8. wait/download → 等待下载完成这个翻译过程本身就是对任务的"可自动化体检"——如果某个步骤无法用"感知→操作"描述(比如需要扫码确认),它就不适合这条路线。
5.2 第二步:为失败模式设计兜底
真实页面的失败模式远比 Demo 复杂:弹窗遮挡、元素被覆盖、加载超时、登录态过期。AI 原生方案的常见兜底手段:
// 点击被遮挡时的兜底:绕过事件层直接触发(()=>{constbtns=Array.from(document.querySelectorAll('button')).filter(b=>b.innerText.includes('发布'));if(btns.length){btns[btns.length-1].click();return'clicked';}return'not found';})()当常规点击被浮层拦截时,直接在 JS 层触发元素点击可以绕过遮挡检测。类似地,等待策略应该分层:固定延时兜底、网络空闲检测、特定元素出现检测,三者按稳定性递进组合。
5.3 第三步:建立可复现的验证集
一条自动化流程是否可靠,不能靠"刚才跑通了"来回答。实践者的共识是维护一个小型验证集:固定的测试页面、固定的任务清单、每次变更后全量回归。这与人写测试的思路一致,只是被验证对象从代码变成了"模型+页面"的组合。
六、被忽视的边界:什么时候不该用浏览器自动化
新范式的热度容易掩盖它的边界。三类场景需要谨慎:
登录态与风控。操控真实浏览器访问第三方平台,天然触碰对方的风控体系。模拟人类行为的自动化在多数平台的服务条款中处于灰色地带,商用前必须评估合规风险。
维护成本的反转。一位实践者观察到,对于结构极其稳定的内部系统,传统脚本的确定性反而优于 Agent 的灵活性——Agent 可能"聪明地"选择不同的操作路径,导致流程不可复现。确定性场景用脚本,不确定性场景用 Agent,这个原则在浏览器自动化中同样成立。
成本的隐性陷阱。每次快照、每次决策都是一次模型调用。一个每天执行千次的巡检任务,用 Agent 的 token 成本可能远超重写一遍选择器的成本。
七、验收清单:如何判断方案真实可用
综合全文,评估一套浏览器自动化方案(无论是自建还是选型)时,建议过一遍这份清单:
| 验证项 | 检查方法 | 覆盖的风险 |
|---|---|---|
| 页面改版容忍度 | 对目标页面做一次前端改版,流程是否仍通过 | 选择器脆弱性 |
| 感知成本 | 完整跑一遍流程,统计快照/模型调用次数 | 成本失控 |
| 失败兜底 | 人为制造弹窗、超时、遮挡,观察恢复能力 | 真实环境不稳定 |
| 可复现性 | 同一任务连跑十次,路径与结果是否一致 | Agent 随机性 |
| 登录态管理 | 会话过期后的自动恢复机制 | 长期运行中断 |
| 合规边界 | 操作目标平台的服务条款审查 | 法律与账号风险 |
这份清单的每一项,都无法从工具的 README 里读到答案——只能用你自己的真实页面去跑。
八、总结与展望
浏览器自动化的范式迁移,本质是接口设计从"面向 DOM"到"面向语义"的跃迁。可访问性树提供了稳定的感知层,语义化指令提供了自然操作层,CLI 形态提供了 Agent 友好的集成层——三者叠加,让浏览器从"给人看的界面"进化为"给 Agent 用的 API Hub"。
但范式迁移不会自动解决工程问题。选择器时代的失败模式(页面改版、环境不稳)只是被缓解,没有被消灭;Agent 时代又引入了新变量(模型成本、路径随机性)。真正的落地能力,体现在对这些边界的清醒认知上。
就像那位"没有头绪"的开发者最终会发现的:装好工具只是五分钟的事,理解"快照→理解→操作→再快照"的循环才是入门,而让流程在你的真实页面上稳定跑一百天,才是这项技术真正的考题。
关于 Deep Skill Finder
Deep Skill Finder 是一个致力于验证 AI 工具、Agent 和 Workflow 真实能力边界的开源项目。我们不关注"Demo 有多惊艳",而是关注"在你的真实页面上能不能稳定跑通"。
如果你正在评估或搭建浏览器自动化工作流,欢迎访问 Deep Skill Finder 获取经过实测验证的方案对比、兜底策略模板和验收清单。在技能市场,你可以找到经过真实场景检验的浏览器自动化 Skill,覆盖数据抓取、表单提交、端到端测试等高频场景。
验证一个自动化方案在真实页面上的稳定性,而不是轻信 Demo 演示。
参考资料
- agent-browser(Vercel Labs) — 面向 AI Agent 的浏览器自动化 CLI
- Browser Use — 让 AI 控制浏览器的开源库
- Playwright 官方文档 — 传统浏览器自动化基准方案
- W3C Accessibility Tree 规范 — 可访问性树的底层标准
- CSDN博文质量分标准 — 本文写作时遵循的格式与质量规范
- Deep Skill Finder — 工具真实能力验证与选型指南