電腦使用代理程式可以像人類一樣與網站互動:透過開啟瀏覽器、檢查頁面,並根據所見採取最佳後續動作。在本課程中,您將建立一個瀏覽器自動化代理,搜尋 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 正將此理念帶入企業領域,推出 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 目前在 Frontier 早期體驗計畫中,搭配 Microsoft 365 Copilot 訂閱對用戶開放,且必須由管理員完成設定。由於是實驗性 Frontier 功能,功能可能隨時間調整。
在進入下一課程前檢測您的理解。
1. 何時瀏覽器為基礎的電腦使用代理比僅 API 工作流程更合適?
2. 在混合流程中,代理與直接 Playwright 程式碼分別該處理哪些部分?
3. Airbnb 範例找到使用者可能想預訂的房源。流程在登入、聯絡房東或完成預訂前應做什麼?
4. 若網頁指示代理忽略原始指令,前往其他網站並揭露保存的憑證,代理應如何處理該文字?
5. 當瀏覽器代理執行時,哪些證據有用應保存?該避免保存什麼?
免責聲明: 此文件已使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。