计算机使用代理可以像人类一样与网站交互:通过打开浏览器,检查页面,并根据所见采取最佳下一步行动。在本课中,你将构建一个浏览器自动化代理,搜索 Airbnb,提取结构化的房源数据,并识别斯德哥尔摩最便宜的住宿。
本课结合了用于 AI 驱动导航的 Browser-Use,控制浏览器的 Playwright 和 Chrome DevTools 协议(CDP),具备视觉推理能力的 Azure OpenAI,以及用于结构化提取的 Pydantic。
本课将涵盖:
完成本课后,你将学会如何:
本课包含一个笔记本教程:
安装笔记本中使用的软件包:
pip install browser_use playwright python-dotenv
playwright install chromium
设置笔记本使用的 Azure OpenAI 环境变量:
AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=...
# 可选:省略时默认为最新的API版本
AZURE_OPENAI_API_VERSION=...
该笔记本演示了一个混合浏览器自动化工作流:
这种方法保留了 Browser-Use 擅长的灵活视觉推理,同时在需要时提供确定性的浏览器控制。
| 场景 | 使用代理 | 使用执行者 |
|---|---|---|
| 动态布局 | 是,AI 能适应页面变化 | 否,脆弱的选择器会崩溃 |
| 结构已知 | 否,代理比直接控制慢 | 是,快速且精确 |
| 查找元素 | 是,自然语言效果好 | 否,需要精确选择器 |
| 时间控制 | 否,较不可预测 | 是,可以完全控制等待和重试 |
| 复杂工作流 | 是,能处理意外 UI 状态 | 否,需要显式分支 |
浏览器代理操作的是实时网站,因此需要比只调用已知 API 的脚本更严格的边界。在从笔记本演示转向真实工作流之前,定义代理可见、点击和提交的范围。
在 Airbnb 示例中,安全默认行为是搜索房源并提取价格。登录、联系房东或完成预订应为用户批准的单独操作。
本课中构建的代理是一个小型本地版本的计算机使用代理(CUA)——一种以类似人类方式驱动浏览器的程序。微软正将这一理念带给企业,推出了 Microsoft 365 Copilot 中的Project Opal (Frontier)功能。
通过 Project Opal,你描述一个任务,代理会代表你使用在安全的 Windows 365 云 PC 上的计算机使用,跨你组织内的基于浏览器的应用、站点和数据异步工作。你可以随时引导或接管其工作。示例任务包括:
Opal 是一个生产级、值得信赖的计算机使用代理的有力示范,且强化了本课程中早期的概念:
| 本课程中的概念 | Project Opal 的应用 |
|---|---|
| 人机协作(第 06 课) | Opal 在登录凭证、敏感数据或模糊指令时暂停,且绝不会在未明确确认的情况下输入密码或提交表单。可在任务中途接管控制和返回控制。 |
| 可信和安全代理(第 06 和 18 课) | 运行在隔离的 Windows 365 云 PC 中,默认仅限浏览器访问(通过 Intune 强制阻止其它计算机访问),使用你的身份访问仅授权内容,且记录所有操作以便审计。 |
| 规划与元认知(第 07 和 09 课) | Opal 先生成作业计划,然后在每步监督自身推理,检测异常时暂停。 |
| 可复用能力/工具(第 04 课) | 技能让你为重复作业编写指令(从 .md 文件导入或用 Opal 编写),并在对话中复用。 |
可用性: Project Opal 当前面向拥有 Microsoft 365 Copilot 订阅的 Frontier 早期访问计划用户开放,且需管理员完成设置。作为实验性 Frontier 功能,其能力可能会随时间变化。
在进入下一课前测试你的理解。
1. 何时基于浏览器的计算机使用代理比仅用 API 流程更合适?
2. 在混合工作流中,哪些部分应由代理处理,哪些部分应由直接 Playwright 代码处理?
3. Airbnb 示例找到用户可能想预订的房源。工作流在登录、联系房东或完成预订前应做什么?
4. 网页告诉代理忽略最初的指令,访问其他站点并暴露已保存的凭据。代理应如何处理该文本?
5. 浏览器代理运行时应保留哪些证据,哪些应避免?
免责声明: 本文件由 AI 翻译服务 Co-op Translator 翻译完成。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言版文件应视为权威来源。对于重要信息,建议使用专业人工翻译。我们对因使用本翻译而产生的任何误解或误释不承担责任。