浏览器智能体是一种软件,它使用 AI 模型来操作网页浏览器以实现目标。你描述任务,智能体就会自动打开页面、导航、选择操作,并在继续之前检查结果。智能体对不可预测的工作流尤其有用,因为它们能够适应意外变化并从错误中恢复。
当任务需要灵活性和决策时,使用智能体。如果有可用 API,就使用 API;如果工作流可预测,就使用脚本。
浏览器智能体由三个组件组成:模型(决定做什么)、执行框架(提供上下文、工具和循环)以及浏览器(持有网站会话)。
智能体是一种多用途工具;它们可用于数据提取、研究、填写表单,以及自动化其他枯燥的浏览器任务。
智能体的主要缺点包括结果不一致、任务失败、网站封禁、提示注入以及成本不可预测。
浏览器智能体如何工作?
浏览器智能体本质上只是一个花哨的循环。
它打开页面、观察页面、选择操作、执行操作,并检查结果。它重复这些步骤,直到达到目标。有些任务可能需要人工干预。例如,智能体可能会暂停,让你登录、提供缺失信息,或在继续前批准某个操作。
执行框架还应在达到时间、步骤或成本限制时停止运行。
以下是伪代码中的基本思路:
模型、执行框架和浏览器
典型的浏览器智能体由三个主要组件组成:模型、执行框架和浏览器。
模型根据任务和当前页面选择下一步做什么。浏览器工具以文本、结构化数据或截图的形式提供该页面信息。
智能体执行框架维持循环运行。它向模型提供上下文,运行模型请求的工具,并将结果传回,以便模型决定下一步做什么。Browser Use 的 Browser Harness 为现有编码智能体提供浏览器访问能力,并允许它在运行过程中编写缺失的辅助程序。编码智能体的运行时仍然管理循环。
浏览器加载网站并跟踪标签页、Cookie 和登录状态。浏览器工具让智能体能够读取页面、点击按钮、填写表单并在页面之间导航。浏览器通常通过浏览器协议控制,例如 Chrome DevTools Protocol (CDP) 或 WebDriver BiDi。
智能体还可以通过模型上下文协议 (MCP) 服务器调用浏览器工具。该服务器底层使用浏览器自动化;例如,Playwright MCP 通过智能体可调用的工具来暴露 Playwright。
对于基于服务器的工作流,智能体通常以无头模式运行浏览器,没有可见的浏览器窗口。这让它们无需显示器即可运行。浏览器仍会渲染页面,并可为模型截取屏幕截图。
智能体如何读取页面
智能体在决定做什么之前,需要页面的一种有用表示。有两种常见方法,智能体可以同时使用两者。
使用结构化页面数据时,工具读取文档对象模型 (DOM) 或可访问性树。DOM 表示页面的元素和文本。可访问性树通过名称、角色和状态来描述元素,例如名为“搜索”的按钮或已勾选的复选框。这让模型无需猜测控件在图像中的位置就能识别它。
使用屏幕截图时,具备视觉能力的模型会读取渲染后的页面,并可以选择要点击的坐标。这有助于处理未通过有用标签或页面结构暴露的视觉内容,例如基于画布的界面。小控件会让精确点击变得更困难,尤其是当截图在调整尺寸后丢失细节时。
无论采用哪种方式,页面变化后智能体都需要一次新的观察。菜单可能打开,对话框可能遮住表单,或者新结果可能替换它刚刚读取的内容。
浏览器智能体 vs 脚本 vs API
你可以通过三种方式自动化浏览器工作流:浏览器智能体、脚本或 API。每种方式各有优缺点。
如果服务提供了支持你任务的 API,就使用 API。例如,你可以直接获取订单,而无需导航仪表板。
如果没有合适的 API 且工作流可预测,就使用脚本。你可以用 Playwright、Selenium 或 Puppeteer 编写脚本。每周一下载同一份报告就是一个很好的例子。你控制步骤,但网站变化可能需要更新脚本。
如果工作流不可预测,或者你无法定义确切步骤,就使用智能体。它可以在不熟悉的网站上查找报告,或处理结构不同的表单,不过结果和模型成本可能会有所不同。
脚本和传统 API 工作流使用确定性规则:相同的输入和状态产生相同的决策。智能体决策是随机的(概率性的),因此同一任务可能走不同路径。智能体也是很好的原型设计工具,因为你可以尝试某个工作流,而无需为每个交互编写代码。
浏览器智能体使用场景
浏览器智能体使用网络的方式与人类很像,因此它们可以处理许多相同的任务。你可以用它们做各种事情,从收集产品价格到测试 Web 应用程序。
我们发布的 Browser Use Cloud 使用数据涵盖 V2、V3 和 V4 智能体。在 2026 年 10 月 18 日检查的快照中,这些任务和工作流步骤占运行次数的四舍五入后份额如下:
提取结构化数据(占运行次数的 14%):将页面内容转换为表格、JSON、CSV 或其他记录。
研究开放性问题(6%):跨网站搜索并将发现整合为有来源的答案。
通过登录(18%):完成登录挑战,例如一次性验证码、多因素设置和身份验证。
申请工作(6%):填写申请表、上传文档并完成申请步骤。
查找申报文件和报告(5%):定位年度报告、收益材料和定期申报文件。
预订和购买(3%):浏览可用性、选择选项并完成预订或结账。
每个份额是该类别分配到的运行次数除以数据集中的所有运行次数,其中包括 15% 未分类的运行。该细分既包括最终任务,例如提取,也包括支持性步骤,例如登录处理。这些数字描述的是人们运行什么,而不是任务成功的频率。
浏览器智能体的局限性
浏览器智能体存在局限性,这些局限性会影响它们能处理哪些工作流以及它们完成这些工作流的可靠性。结果、速度和成本可能因智能体而异,甚至同一智能体在不同运行之间也会有所不同。
网站限制
网站可以故意让智能体更难访问它们。机器人管理系统可以质询或阻止自动化流量,而速率限制会限制请求的速度。网站可能允许公开浏览,但在登录或结账时施加更严格的检查。
更好的模型并不能解决所有访问限制。如果你好奇不同的云浏览器如何避免被阻止,请查看我们的 stealth benchmark。
身份验证与访问
会话会过期,多因素身份验证可能需要人工输入。智能体可能需要暂停,直到你提供验证码或批准登录。
复用已通过身份验证的会话可以减少重复登录,但你的工作流仍然需要处理过期会话。
错误或不完整的结果
智能体可能选错产品、漏掉必填字段,或在保存表单之前报告完成。一次运行在没有错误的情况下结束,并不一定意味着任务成功了。如果上一次尝试实际上已经成功,重试还可能创建重复订单或申请。
在重试之前,检查已保存的记录或确认信息。对于提取,将返回的值与源页面进行比较;仅凭 JSON 有效并不能证明数据正确。
提示注入
页面可能包含试图让智能体偏离你的任务的指令。这称为提示注入。将页面内容视为不可信输入,限制智能体可以访问的账户和操作,并在你的应用程序中对敏感操作强制执行批准。这些控制措施可以降低风险,但不能消除风险。
运行成本可变
由于浏览器智能体运行在大语言模型(LLM)上,其成本难以预测。你无法确定一个任务会需要一步、两步还是更多步。按使用量计费时,额外的模型调用和浏览器时间会增加成本。
一次运行也可能失败,需要你再次运行并支付另一次尝试的费用。因此,完成一个任务的成本可能超过单次运行的成本。
要比较成本,请将所有尝试的总支出(包括失败和重试)除以已验证成功的任务数。将人工审核时间单独跟踪。
开始使用浏览器智能体
从一个只读任务开始,例如收集产品价格。定义智能体可以访问哪些页面、应返回哪些字段,以及什么算作成功结果。在运行之前设置时间、步骤或成本限制。
你可以将任务发送给托管智能体,也可以自己运行一个。开源的 Browser Use 库让你可以用 Python 构建浏览器智能体,并选择模型以及本地或云浏览器。托管智能体会为你处理执行,而你的应用程序提供目标并检查输出。
如果你已经在使用编码智能体,添加浏览器工具可能就足够了。其现有运行时可以管理推理循环。仅远程浏览器本身只提供浏览器环境;你的智能体或脚本仍然需要控制它。
重复该任务,并将结果与源页面进行比较。跟踪已验证的完成情况、经过时间、总成本和人工修正。只有当你了解智能体在哪些地方需要帮助后,才扩展到更多网站或任务。