12.03概念更新于 2026年9月17日

浏览器 Agent

页面读取与操作、登录态,以及反自动化等现实问题。

12.03 · 课时讲解

浏览器 Agent

读到的每个字都不可信,点下的每个按钮都可能是真的。

1 / 10

一句话理解:浏览器 Agent 让 Agent 能用网页完成任务,但它读到的每一个字都不可信,点下的每一个按钮都可能是真的——所以要读结构、限域名、隔离登录态、关键动作留给人。

大量业务系统只有网页端:老旧的后台管理系统、广告平台后台、政府申报网站、订票网站、合作方的对账页面。没有 API,Agent 想完成任务就得像人一样打开浏览器。

浏览器 Agent 看起来只是“会点网页的 Agent”,实际上它同时踩中了三个难题:页面是动态且不断改版的、登录态是敏感资产、网页内容完全不受你控制。这一课讲清楚它怎么工作,以及上线前必须想好的现实问题。

Agent 怎么“看”网页

浏览器 Agent 理解页面主要有两种方式,成熟的产品通常两者结合:

方式 拿到的是什么 优点 缺点
读页面结构 可访问性树(accessibility tree)、元素列表、表单字段、可见文本 精确、省 Token、元素有稳定引用、不需要视觉识别 画布、图片验证、复杂自定义控件读不出来
看截图 当前视口的图片,按坐标点击 所见即所得,能处理任何渲染结果 慢、贵、坐标易偏,小字要放大看

几个可以核实的例子:

  • 微软开源的 Playwright MCP 主打“读结构而非像素”,基于 Playwright 的可访问性树工作,不需要视觉模型。
  • Anthropic API 提供的浏览器操作工具同时支持两种方式:既能读取可访问性树并用元素引用操作,也能截图后按坐标点击;浏览器本身由开发者自己的应用运行。官方文档建议,任务只在网页内时用浏览器工具,需要整个桌面时才用计算机操作工具。

一次典型的循环是这样的:

浏览器 Agent 的循环:读取页面,模型决定下一步,执行器检查,执行动作并等待页面稳定,再读取页面 导航到目标页 ① 读取页面 结构优先,必要时截图 ② 模型决定下一步 点击 / 输入 / 滚动 / 翻页 ③ 执行器检查 域名在白名单?需要确认? ④ 执行动作 等待页面稳定 拒绝,或暂停交给人确认 通过 下一轮 不通过 能不能做的判断写在执行器里
图 1 · 浏览器 Agent 的一轮循环:模型只提议动作,能不能做由执行器判断

注意中间那一步“执行器检查”:判断能不能做的逻辑写在执行器里,而不是交给模型。

登录态:最值钱也最危险的东西

浏览器 Agent 的很多价值来自“以你的身份”访问系统,但登录态一旦交出去,风险随之而来:

做法 说明 风险
复用你日常的浏览器 Agent 直接用你已登录的 Chrome 它能访问你登录过的一切:邮箱、网银、公司后台
持久化的专用配置 为 Agent 单独保存一份浏览器配置和登录信息 范围可控,但凭据长期存在,需要保护
一次性隔离会话 每次任务新开干净会话,结束即清空 最安全,但每次都要重新登录
专用低权限账号 为 Agent 开一个只有必要权限的子账号 推荐做法,出事时影响范围最小

把四种做法按“Agent 能碰到的范围”排开:

浏览器 Agent 的四种登录态做法,从复用日常浏览器到专用低权限账号,爆炸半径逐步变小 范围最大 复用日常浏览器 你登录过的一切 范围可控 专用浏览器配置 凭据长期存在,需保护 最干净 一次性隔离会话 结束即清空,要重登 推荐 专用低权限账号 出事时影响最小 爆炸半径大 爆炸半径小 改变账号状态的操作仍保留人工确认
图 2 · 登录态的四种做法:越往右,Agent 带着的权限越少,出事时影响越小

Anthropic 的浏览器工具文档给出的建议是:在专用容器或虚拟机中运行浏览器,使用全新配置、不带凭据;如果任务避不开登录,就用专用的低权限账号,并对会改变账号状态的操作保留人工确认。

举个例子:一个差旅助理 Agent 要在订票网站上比较航班和价格,正确的接入方式是申请一个只读子账号,只允许 Agent 查询班次、余票和价格;下单、支付、退改签这些动作即使网站支持,也不给 Agent 这个账号的权限。

至于输入密码、支付信息,更稳妥的产品设计是 交还给人:Agent 走到登录页或支付页就暂停,请用户亲自接管输入,完成后再把控制权交回。

反自动化与其他现实问题

Demo 里一切顺利,上线后常见的问题是:

  • 验证码与机器人检测:很多网站会识别并阻止自动化访问。正确的做法是停下来交给人,或者寻找官方接口,不要设计绕过验证码的方案——这通常违反网站条款,也会让你的产品站在对方安全体系的对立面。
  • 服务条款与频率限制:有些网站明确禁止自动化抓取或操作。批量访问前先确认条款,控制频率。
  • 页面改版:按钮换个位置、表单多一个字段,基于截图和坐标的流程就可能失效。读结构比看像素更抗改版,但也不是免疫。
  • 动态加载与弹窗:Cookie 同意框、营销弹窗、懒加载列表都会打断流程。处理 Cookie 弹窗时,默认选择最保护隐私的选项。
  • 不可信内容:网页上的任何文字——包括用户评论、隐藏元素、图片里的字——都可能是写给 Agent 的“指令”。Anthropic 的文档直接提醒,模型有时会遵循页面内容里与用户指令冲突的指示。详见 Prompt 注入。

执行器里该写死的规则

参考官方文档的安全建议,一个浏览器 Agent 的执行器至少应该做到:

  • 域名白名单在网络层执行,并且在每次跳转、重定向之后重新检查。
  • 只允许 http 和 https 协议,拒绝 javascript:、file:、data: 之类的地址。
  • 默认关闭高风险能力,比如在页面里执行任意 JavaScript、上传本地文件。
  • 购买、发消息、修改账号、接受条款 这类动作,在执行器里强制要求人工确认;一轮模型输出可能包含多个动作,要逐个检查。
  • 屏蔽内网地址和本机地址,防止 Agent 被引导去访问公司内部服务。

常见误区

  • “让 Agent 用我的浏览器最方便。” 方便的另一面是它拥有你全部的登录态。先问:这个任务真的需要这么大的权限吗?
  • “能看截图就不需要读结构。” 截图方案更通用,但更慢、更贵、更脆弱。能读结构的页面优先读结构。
  • “遇到验证码就想办法绕过去。” 验证码是网站在说“这里需要人”。产品设计应该是交还给人,而不是对抗。

产品经理检查清单

  • 这个网站真的没有 API、导出功能或数据推送吗?
  • Agent 使用谁的账号?权限能否收敛到只读或最小范围?
  • 允许访问的域名清单是什么?跳转到清单外怎么处理?
  • 哪些页面动作会产生真实后果,是否都设了人工确认?
  • 遇到登录、验证码、支付页时,交接给用户的体验是什么样的?
  • 目标网站的条款是否允许自动化访问?

练习

选一个你工作中常用、但没有 API 的网页后台,用 45 分钟完成:

  1. 写下一个 Agent 要在这个后台完成的具体任务,拆成步骤。
  2. 标出每一步是只读还是会改变状态。
  3. 为它设计账号方案、域名白名单,以及需要人工接管的节点。

延伸阅读

下一步

下一课「Computer Use」把范围从网页扩大到整个桌面:当连浏览器都用不上时,Agent 如何靠看屏幕、点鼠标完成任务,代价又是什么。

试试:上下文、MCP、沙箱、Prompt 注入、外链