TellWorldAI 世界档案
问档案English

首页›实践›实践

实践

让智能体操作浏览器:Browser Use

Browser-Use 让智能体像人一样打开网页、查看并操作。读完本文,你能用 Playwright 搭一个搜索民宿价格的浏览器智能体,并知道哪些操作要先让用户确认。

这篇适合谁,读完能做什么

这篇适合会一点 Python、想让智能体去操作网页的读者。读完后,你应该能搭起一个能打开网站、搜索并提取结构化数据的浏览器智能体,并且知道哪些操作应该交给人来确认。

什么是计算机使用智能体

计算机使用智能体(Computer Use Agent,CUA)像人一样与网站交互:打开浏览器,查看页面,然后根据看到的内容决定下一步动作[1]。它适合界面决定了下一步操作的任务,也就是说,要靠看页面、找元素来推进的场景[1]。

本文的例子和技术组合

示例是一个浏览器智能体:在 Airbnb 上搜索斯德哥尔摩的房源,提取结构化的房源数据,找出最便宜的住宿[1]。

整套方案组合了几个工具。Browser-Use 负责由 AI 驱动的导航,Playwright 和 Chrome DevTools Protocol(CDP)负责控制浏览器,Azure OpenAI 负责带视觉能力的推理,Pydantic 负责结构化提取[1]。

准备工作

需要 Python 3.12 及以上版本,一个已经部署好的 Azure OpenAI 模型,本机安装的 Chrome 或 Chromium,Playwright 的依赖,以及基本的 async Python 知识[1]。

第一步:安装依赖

先安装示例用到的包,并为 Playwright 下载 Chromium 浏览器[1]:

pip install browser_use playwright python-dotenv
playwright install chromium

第二步:配置 Azure OpenAI

运行 notebook 前,要设置 Azure OpenAI 的环境变量[1]:

AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=...
# Optional: defaults to the latest API version when omitted
AZURE_OPENAI_API_VERSION=...

API 版本可以不填,省略时使用最新版本[1]。

工作流程:智能体负责探索,代码负责精确操作

示例采用混合方案,分四步进行[1]:

  1. Chrome 以 CDP 模式启动,Playwright 和 Browser-Use 共享同一个浏览器会话。
  2. Browser-Use 智能体处理开放式的导航,比如打开 Airbnb、关掉弹窗、搜索斯德哥尔摩。
  3. 用 Pydantic 定义结构化的 schema,从当前页面提取房源标题、每晚价格、评分和链接。
  4. Python 代码比较提取到的房源,标出最便宜的那一个。

这种做法保留了 Browser-Use 擅长的、基于视觉的灵活推理,同时在需要时提供确定性的浏览器控制[1]。

智能体还是 actor:怎么选

两种模式的区别如下[1]。

  • 智能体适合布局经常变化、需要用自然语言找元素、流程里可能出现意外界面状态的场景。代价是速度慢,时间控制不够可预测。
  • actor 模式(直接用代码控制页面)适合结构已知的页面。它需要精确的选择器,选择器失效时会出错,但对等待和重试有完全的控制。

建议先用智能体探索和处理动态导航,等交互流程稳定下来,再换成直接控制页面[1]。

最佳实践

几条实践经验[1]:

  • 用结构化输出模型(如 Pydantic)定义结果,这样提取到的数据经过校验,类型也是确定的。
  • 在会引起界面变化的操作之后适当加延迟。
  • 调试时边跑边截图,出错时更容易找到原因。
  • 网站会改版,要为弹窗和布局变化准备备用方案。

安全边界:浏览器智能体要设哪些限制

浏览器智能体操作的是正在运行的网站,所以边界要比只调用已知 API 的脚本更严[1]。

第一,限定浏览环境。使用专门的浏览器配置文件或沙箱,只开放任务必需的域名[1]。

第二,观察和动作分开。智能体可以先搜索、阅读和提取数据;提交表单、发送消息、订票、购买、删除记录或修改账户设置,都要先得到用户明确批准[1]。

第三,不把敏感信息放进提示词和日志。密码、支付信息、会话 Cookie 和原始个人数据都不应进入模型上下文。登录环节由用户自己完成,日志里的敏感字段要脱敏[1]。

第四,把网页内容当成不可信的输入。网站上可能写着专门给智能体看的指令,智能体应当忽略那些要求改变目标、泄露数据、关闭防护或访问无关站点的文字[1]。

第五,在危险步骤前用代码做确定性检查。在请用户批准最后一步之前,用代码核对当前网址、页面标题、选中的项目、价格、收件人和操作摘要[1]。

第六,设定预算和停止条件。限制智能体的操作次数、重试次数、标签页数和运行分钟数;页面状态不明确时停下来,而不是继续点击[1]。

第七,只记录有用的证据。保存操作摘要、时间戳、网址、所选元素描述和截图引用,便于事后复查,但不必把所有内容都存下来[1]。

在 Airbnb 的示例中,安全的默认做法是只搜索房源和提取价格。登录、联系房东或完成预订,都应该是单独的、需要用户批准的操作[1]。

现实中的用途

常见应用场景包括:旅行预订和价格监控、电商比价和库存检查、从动态网站结构化提取数据、带视觉能力的界面测试、网站监控和告警,以及跨多个步骤的表单填写[1]。

企业场景:Project Opal

还有微软的 Project Opal(Frontier),它把计算机使用能力带进了 Microsoft 365 Copilot。它在安全的 Windows 365 Cloud PC 上运行任务,可以在后台异步工作,用户随时可以指导或接管[1]。Project Opal 目前面向 Frontier 早期体验计划中、拥有 Microsoft 365 Copilot 订阅的用户,且需要管理员完成设置[1]。Opal 遇到登录凭据、敏感数据或指令不明确时会暂停,没有明确确认,不会输入密码或提交表单[1]。

下一步

先用示例跑通搜索和提取,再把确定的步骤换成直接的页面控制代码,最后加上确认步骤和日志。

本文改编自 Microsoft 开源课程《AI Agents for Beginners》第 15 课[1],原文以 MIT 许可证发布。

来源

  1. 1
    Building Computer Use Agents (CUA)Microsoft ai-agents-for-beginners (MIT)

引用本页: 让智能体操作浏览器:Browser Use. TellWorld, https://www.tellworld.net/zh/practice/practice-agents-browser-use. 更新于 2026-11-14

相关动态