浏览器自动化入门:用 Browser Use 搭建 AI 智能体

想用 AI 完成网页任务,又把自动化留在自己的应用中?本文介绍 Browser Use 的工作原理、模型支持与 Cloud 部署选择,带你从只读任务开始,搭建浏览器智能体。文中还梳理登录状态保护、提示词注入、限流与重试的边界,说明如何核验实际结果,以及何时应保留 API、固定脚本或人工提交。

发布于

浏览器自动化入门:用 Browser Use 搭建 AI 智能体

Browser Use 让你把网页任务交给 AI 智能体,同时将浏览器自动化纳入自己的应用。它的开源库要求 Python 3.11 或更高版本;Browser Use Cloud 则可以托管浏览器,也可以托管整个智能体。先从结果容易核验的任务做起,例如读取业务门户中的一条记录,再考虑授予提交修改的权限。

本文于 2026 年 11 月 2 日依据 Browser Use GitHub README 及文中链接的官方文档核验。下方入门流程改编自这些文档,并非实际性能测试。

Browser Use 如何实现浏览器自动化?

Browser Use 将语言模型与浏览器连接起来,让应用只需描述目标,不必逐一规定每次点击。它适合在供应商门户查找记录、读取仪表盘,或填写下一页取决于上一项回答的表单。开源库提供的智能体会围绕目标反复选择并执行操作。库的 README

Browser Use 官网展示其浏览器自动化产品
Browser Use

可以把语言模型看作司机,Browser Use 是司机使用的操控装置和反馈系统,浏览器则是车辆。道路依然属于别人的网站。司机再熟练,也不能让封闭的道路恢复通行,更不能自行认定送货的授权还包括一次无关的采购。

整个循环分为以下几步:

  1. **观察:**获取当前页面状态,包括可交互的元素。Browser Use 也可以向模型提供截图。
  2. **决策:**大语言模型(LLM)根据任务和当前状态选择下一步操作。
  3. **执行:**浏览器跳转、点击、输入,或执行其他可用操作。
  4. **再次观察:**下一次决策依据变化后的页面进行,循环持续到智能体停止,或触发预设限制。

DOM 是页面元素构成的结构化树,能帮助智能体找到可操作的控件;截图则补充视觉信息。Browser Use 的文档同时介绍了 DOM 处理和可配置的视觉能力,因此,把它说成“模型看图操作”并不准确。浏览器控制参数、智能体设置

建筑风格的反馈循环示意图:页面状态传给模型,模型控制浏览器访问网站,再接收页面状态;任务输入模型
模型选定操作后,再接收网站变化后的状态。

假设你正在创业,准备开发采购助手,一个有用的任务是“查询这笔订单的发货状态”。验收时,应核对订单是否正确、状态是否准确,并附上来源记录。智能体给出一段听起来可信的回答,不能代替这一步核验。

Browser Use 开源版需要安装什么?

核心组件包括 browser-use Python 包、一个可供控制的浏览器,以及受支持模型的访问能力。该库采用 MIT 许可证。README 要求 Python 3.11 或更高版本,快速入门示例则使用 Python 3.12。你可以在自己的进程中运行智能体,浏览器既可以在本地,也可以在远程。README 与安装说明

这里的“本地”仅指进程或浏览器的运行位置。如果选用远程模型 API,观察到的页面信息仍会发送给模型服务;浏览器在本地,不代表整套系统都在本地。

Browser Use 支持哪些模型?

Browser Use 提供了多家模型服务商的适配器,因此不必使用它自家的模型:

  • Browser Use BU2:ChatBrowserUse(model="bu-2-0"),使用 BROWSER_USE_API_KEY。
  • OpenAI 模型:ChatOpenAI,使用 OPENAI_API_KEY。
  • Anthropic Claude 模型:ChatAnthropic,使用 ANTHROPIC_API_KEY。
  • Google Gemini 模型:ChatGoogle,使用 GOOGLE_API_KEY。
  • 通过 Ollama 接入的本地模型:ChatOllama,连接本地模型服务。

受支持模型文档 还列出了 DeepSeek、Mistral、Microsoft Azure OpenAI、Amazon Web Services Bedrock 和 OpenRouter 的集成方式。应以服务商当前可用的模型为准,不要把旧示例中的模型 ID 当作推荐。

**有适配器,不等于效果有保障。**同一份文档提醒,部分 Qwen 模型会生成不正确的操作结构,也就是智能体无法执行的指令格式;文档目前为这一集成推荐 qwen-vl-max。在扩大模型的任务范围前,先用实际页面和所需输出评估它的表现。

Browser Use Web UI 是什么?

Browser Use Web UI 是独立项目,通过 Gradio 提供与智能体交互的网页界面,有自己的安装流程和依赖。若要将 Browser Use 接入应用,应从 Python 库的现行文档开始,不要把 Web UI 仓库的安装说明 与托管服务的 SDK 混在一起。

Browser Use Cloud 提供哪些能力?

Browser Use Cloud 可以托管浏览器基础设施、整个智能体,或两者一起托管。选择不同,需要自行运行和维护的代码也不同。现行 Cloud 快速入门 明确区分了以下方式:

接入方式你的应用负责运行Browser Use 负责运行
开源库搭配本地浏览器智能体循环和浏览器仅在你选择其模型服务时提供模型服务
自建智能体搭配 Cloud 浏览器智能体循环和应用逻辑浏览器基础设施
托管的 Browser Use Agents任务提交、结果处理和业务核验智能体执行和浏览器基础设施

自建智能体时,Browser(use_cloud=True) 会选用 Browser Use 托管的浏览器,并要求设置 BROWSER_USE_API_KEY。托管浏览器提供降低自动化检测的功能、代理和实时预览;README 还介绍了 CAPTCHA 验证码处理能力,但明确说明效果取决于网站和验证码挑战。Cloud 浏览器指南、README

CDP 即 Chrome DevTools Protocol,是文档中浏览器基础设施接入方式所用的远程控制协议。因此,浏览器可以托管在云端,控制它的代码仍由你自行运行。

如果选择全托管方式,所用的包是 browser-use-sdk,不是 browser-use。当前 Cloud 示例使用 API V4,Python 导入语句为 from browser_use_sdk.v4 import BrowserUse。程序负责提交任务并获取结果,无须在本地运行 Agent 循环。托管智能体快速入门

对开发者而言,这是部署方式的选择。对运营者而言,仍然要回答同样的问题:智能体可以访问什么,以及需要哪些证据才能认定任务完成。

什么时候更适合选择 Browser Use 的替代方案?

先确定自己需要掌控哪一层。如果任务始终在网站内完成,又希望直接使用封装好的浏览器智能体循环并自主选择模型,Browser Use 是很好的起点。如果想围绕某个计算机操作 API 的动作接口自行开发,或任务超出了网页范围,计算机操作 API 会更合适。

方案适用情形需要自行承担的职责
Google Gemini Computer Use希望在 Gemini 支持的环境中,根据截图生成界面操作客户端执行操作、回传观察结果,并处理安全决策
OpenAI computer use应用使用 OpenAI 的浏览器或桌面控制接口采用 Responses 方式时,需提供执行环境并设置权限
Anthropic Claude computer useClaude 需要在受控桌面中使用截图和鼠标、键盘工具应用在该环境中执行客户端工具调用
Browserbase 浏览器基础设施已有智能体或自动化代码,需要托管浏览器会话接入选定的控制程序,并定义任务成功的核验方式

OpenAI 还单独提供了配备 OpenAI 托管浏览器的 Agents API,因此,“使用计算机操作 API 就必须自行托管浏览器”已不再是可靠的判断依据。Browserbase 也有浏览器基础设施之外的智能体产品。

Browser Use 与 Browserbase 也不一定需要二选一:Browser Use 接受 cdp_url,Browserbase 则提供 CDP 连接 URL。根据文档中的接口,可以将前者的智能体库与后者的运行环境连接起来,但本文并未实际测试这一集成。Browser Use 连接设置

**如果现有的可靠 API 或固定浏览器脚本已经能完成任务,就继续使用。**面对稳定的表单,让模型每次重新摸索同一套操作并没有收益。更全面的计算机操作智能体指南 讨论了控制方式的选择;适合 AI 智能体的浏览器 则对比了基础设施。

应用仍需自行承担哪些风险?

生产环境中最难划清的边界,是已登录的浏览器究竟获准做什么。把浏览器托管到别处,并不会让页面上的指令变得可信,也不会消除误提交的后果。

页面内容中的提示词注入

当智能体读取的内容试图改变它应遵循的指令时,就发生了提示词注入。在业务门户中,这可能是一条客户填写的备注,要求智能体把报告上传到其他地址。即便备注声称自己是管理员指令,也应将它当作数据处理。

使用专用账号,只授予完成任务所需的权限。通过 Browser Use 的 allowed_domains 限制访问范围,并在应用或执行环境中强制要求高影响操作经过审批。获准访问的网站仍可能展示恶意的用户生成内容,因此,仅靠域名列表无法建立信任。浏览器访问限制、计算机操作安全指南

读取区域通向提交前由人工控制的审批关卡,旁边另设结果核查窗口
建议在应用中设置审批关卡,拦住高影响操作,并在执行后核验目标系统中的结果。

在提示词里写“提交前先询问”,并不等于建立了强制执行的权限边界。如果集成方案无法可靠拦截相关操作,就不要把该操作纳入智能体权限,交由人来完成。提示词注入指南 介绍了如何让审批与获准执行的具体操作绑定。

登录状态、会话存储与日志

保存的登录状态本身就带有访问权限。Browser Use 可以通过 Browser.from_system_chrome() 复用 Chrome,也可以用 Browser(storage_state="auth.json") 加载保存的 Cookie 和本地存储。应像保护凭据一样保护这个状态文件,将它排除在版本控制之外,也不要用个人浏览器配置文件执行无人值守的业务任务。身份验证文档

迁移时有一项明确限制:**README 说明,本地配置同步只传输 Cookie,不传输本地存储、IndexedDB 或扩展。**IndexedDB 是浏览器端的另一种数据存储机制。另一方面,Cloud 配置文件 可以在云端浏览器之间持久保存 Cookie、本地存储和登录状态。云端支持持久保存,并不意味着本地同步已经复制了所有存储内容。部分网站仍需要重新登录。同步限制说明

为每位最终用户单独维护配置文件。处理业务门户中的私密数据前,还应检查哪些内容会进入模型输入、截图和保存的对话记录。Browser Use 提供截图及对话保存的控制选项,应根据需要明确配置。智能体设置

限流与结果不明时的重试

拥有云端浏览器运行名额,不代表可以无限访问目标网站。模型服务的限制、Browser Use Cloud 的容量与请求限制,以及网站自身的限流或验证挑战,都需要分别考虑。

限制对同一目标网站的并发任务;网站要求等待时,降低请求频率;连续受阻时,停止反复尝试。遇到 Cloud API 错误,应判断是容量不足还是请求过于频繁,并遵循返回的重试指引。Cloud 限制

尤其不要因为客户端超时就重复提交。先检查已有的任务运行情况和目标系统中的记录。超时只意味着你尚不确定结果,操作可能已经发生。

Browser Use 入门:运行第一个只读任务

从公开页面和只读任务开始。这样可以确认包、浏览器和模型能够连通,同时不涉及登录或业务交易。以下命令来自开源版快速入门,示例沿用其中的 Python 3.12 环境,并按 README 明确选用 BU2 模型。

配置 Browser-Use Python 环境

  1. 安装软件包和浏览器

    在已安装 Python 和 pip 的 macOS 或 Linux 系统上,新建项目目录,并在该目录中打开 Bash 终端:

    Bash
    pip install uv
    uv venv --python 3.12
    source .venv/bin/activate
    uv pip install browser-use
    uvx browser-use install

    最后一条命令用于安装浏览器。Windows 用户应采用快速入门中给出的环境激活命令,而不是 source。

  2. 配置模型凭据

    通过快速入门中的链接进入控制台,创建 Browser Use API 密钥。然后在同一个 Bash 终端中输入密钥,以下方式不会将输入内容显示出来:

    Bash
    read -rsp "Browser Use API key: " BROWSER_USE_API_KEY
    printf '\n'
    export BROWSER_USE_API_KEY

    这个密钥用于访问所选的模型服务,并不会自动将浏览器切换到 Cloud。

  3. 执行一个简单的只读任务

    将以下内容保存为 agent.py:

    Python
    import asyncio
    from browser_use import Agent, ChatBrowserUse
    
    async def main():
        agent = Agent(
            task=(
                "Open https://example.com and report the page heading. "
                "Do not follow links or submit anything."
            ),
            llm=ChatBrowserUse(model="bu-2-0"),
        )
        history = await agent.run()
        print(history.final_result())
    
    if __name__ == "__main__":
        asyncio.run(main())

    然后运行:

    Bash
    python agent.py

    亲自打开页面,核对返回的标题是否正确。对于这个无害的示例,任务指令适合作为起步约束;生产环境的限制则需要在提示词之外强制执行。

如果运行失败,先阅读报错再考虑更换模型:浏览器安装、模型身份验证和网站访问是不同的故障环节。运行成功后,保留所用依赖的版本,再转向目标网站上的测试账号。

哪些能力容易被高估?

**智能体运行结束,不等于业务操作已经完成。**Browser Use 的输出文档明确区分了两者:is_done() 表示智能体发出了完成动作;is_successful() 则是智能体自己的判断。涉及重要的外部结果,仍需到目标系统中核验。输出语义说明

修改地址后,检查实际保存的地址;下载报告后,检查文件和报告周期;提交操作后,获取目标系统的确认信息。结果不明确时,先核实,再决定是否重试。

对“任何网站都能用”也应保持同样的克制。托管浏览器的功能可以减少访问阻碍,但项目 README 并未承诺能够绕过或解决所有 CAPTCHA 验证码。更强的模型也无法赋予账号原本没有的权限。设计流程时应以网站的实际行为为准,并明确何时需要人工接手。

下一步:从一个可核验的小任务开始

对技术型创业者而言,第一个有价值的试点,是范围明确、答案清晰的门户信息读取任务。使用独立的测试账号,确定允许访问的页面,并写清楚如何核验返回的记录。成功运行要记录,失败也要记录。

弄清失败原因后,再扩展到表单准备工作。在应用能够强制执行审批、检查保存结果,并能恢复异常而不重复操作之前,仍应由人工提交。如果有受支持的 API 或稳定脚本能完成这套流程,就保留这种更简单的集成方式。

想了解更多构建可靠 AI 工作流的实践经验,可以订阅通讯。

发布日期
分类
Build
Zernio评测:社交媒体 API 值不值得接入?

Zernio评测:社交媒体 API 值不值得接入?

Zernio评测聚焦开发者真正需要的社交媒体API能力:支持哪些平台、账号要满足什么条件、如何按连接数和实际用量计费,以及发布、收件箱、广告和MCP智能体的边界。结合公开文档与工作流,对比Ayrshare、Postiz和原生API,帮助独立开发者、SaaS团队及代理机构判断是否适合接入自己的产品。2026年11月1日Build
Airtable vs Notion:数据库、知识库与项目管理,团队怎么选?

Airtable vs Notion:数据库、知识库与项目管理,团队怎么选?

Airtable vs Notion 怎么选?本文按轻量 CRM、内容日历、项目管理、团队知识库、库存与客户门户逐项比较,梳理价格、数据库容量、自动化、API 限制与 AI 积分规则,说明客户权限、表单更新和迁移时容易忽略的边界,并给出搭配使用的分工思路,帮助团队根据实际工作决定选哪款。2026年11月1日Build
Google Jules 停服指南:导出工作记录,迁移后台任务

Google Jules 停服指南:导出工作记录,迁移后台任务

Google Jules 即将停服,如何保住代码仓库之外的任务记录?本文梳理只读与关停时间表、官方导出流程、历史记录和 API 的未决问题,并说明如何迁移到 Antigravity、Codex、Claude Code 或 GitHub Copilot,验证环境配置、测试和代码审查流程,再切换定期任务。2026年11月1日Build
smolagents 教程:Python 代码智能体原理、沙箱与框架选型

smolagents 教程:Python 代码智能体原理、沙箱与框架选型

smolagents 如何用 Python 驱动 AI 智能体?了解两种智能体的区别、工具与模型的搭配,以及 Docker 示例的执行流程。本文梳理沙箱边界、权限与资源限制,并对比 LangGraph 和 OpenAI Agents SDK,帮助开发者判断何时适合动态组合代码,何时应采用持久化工作流或专职智能体协作。2026年10月31日Build
Warp Terminal 评测:先换终端,再决定要不要换 AI 编程助手

Warp Terminal 评测:先换终端,再决定要不要换 AI 编程助手

Warp Terminal 值得替换现有终端吗?本文拆解命令块、外部编程智能体集成与 Warp Drive,比较 iTerm2、Ghostty,并梳理套餐价格、平台计费、隐私设置、共享会话保留和离线限制。先保留 Claude Code 或 Codex,用实际任务判断终端体验是否改善,再决定是否更换智能体或推广到团队。2026年10月31日Build
Kilo Code 评测:多模型、云端任务与代码审查,值得换吗?

Kilo Code 评测:多模型、云端任务与代码审查,值得换吗?

Kilo Code 评测:梳理 VS Code、JetBrains、CLI 与云端智能体的工作方式,比较 Cline、Claude Code 等替代方案,拆解模型选择、共享账单、推理与计算费用,并说明云端配置、代码审查和数据路由的限制,帮助个人开发者与小团队判断,是否值得为一套相互衔接的开源 AI 编程工作流迁移。2026年10月31日Build
Amazon Bedrock AgentCore 架构详解:组件分工、适用场景与试点指南

Amazon Bedrock AgentCore 架构详解:组件分工、适用场景与试点指南

Amazon Bedrock AgentCore 能替代智能体技术栈中的哪些自建工作?本文梳理各组件的职责与适用场景,讲清执行隔离、会话归属、记忆、工具访问和业务权限的边界,并说明运行限制与区域支持如何影响架构。附 CLI 试点流程,帮助团队判断何时值得采用、哪些责任仍需自己承担,以及上线前该验证什么。2026年10月30日Build
投机解码实战:原理、性能边界与大模型推理加速配置

投机解码实战:原理、性能边界与大模型推理加速配置

投机解码如何让大模型更快输出,同时保留目标模型的采样行为?本文讲清草稿生成、精确验证与接受率,比较独立草稿模型、EAGLE 和 MTP,给出 vLLM、SGLang、TensorRT-LLM 配置示例,并说明并发、显存与草稿开销如何影响收益,帮助自建推理服务和托管 API 团队确定评估与上线条件。2026年10月30日Build
订阅通讯

每周日,一封信。写运转中的系统,不写热评。

每周一期。无垃圾邮件。随时退订。