Webwright 是由 Microsoft Research 開源的一個瀏覽器代理(Browser Agent)框架。它旨在解決目前大多數網頁代理過於依賴單步交互(例如:觀察頁面 -> 決定點擊某處 -> 再次觀察)而導致的脆弱性,特別是在面對需要大量步驟的長路徑任務時,容易產生錯誤累積。
這個框架的核心邏輯是:不要讓 LLM 像操作員一樣一個個點擊,而要讓 LLM 像工程師一樣編寫自動化腳本。
解決的問題與核心做法
傳統的網頁代理將瀏覽器會話視為工作空間,模型每一步只能預測一個操作。Webwright 則將代理與瀏覽器分離,將瀏覽器視為 LLM 可以隨時啟動、檢查並丟棄的環境。
其核心運作流程為:編寫代碼 -> 執行腳本 -> 觀察結果(截圖/日誌)-> 修復代碼。
在 Webwright 中,代理的狀態不再是瀏覽器的當前頁面,而是本地工作區中的 Python 腳本和日誌。這意味著任務的執行歷史被記錄在一個可重複運行的代碼文件中,而非揮發性的會話中。
技術亮點
代碼即動作(Code-as-Action):LLM 直接生成 Playwright 的 Python 代碼。比起預測座標或簡單的 DOM 選取器,編寫代碼允許模型使用循環、函數和條件判斷來處理動態網頁(如分頁加載、等待元素出現),極大地提高了魯棒性。
極簡設計:整個核心代理循環僅約 450 行代碼,不使用複雜的多代理系統或圖引擎,僅依賴 Playwright、Pydantic 和 Typer 等基礎庫,非常易於調試和二次開發。
靈活的後端支持:支持 OpenAI、Anthropic 和 OpenRouter 等主流模型後端。
插件化能力:它可以作為插件集成到 Claude Code 或 OpenAI Codex 中,讓這些強大的編碼助手直接獲得操作瀏覽器的能力。
適合誰使用
這是一個非常適合 AI 工程師或 RPA 開發者的工具。如果你需要構建一個能處理複雜、多步驟網頁工作流的自動化代理,或者想研究如何將 LLM 的編碼能力應用於網頁操作,Webwright 提供了一個極佳的起點。
導入成本與風險
導入成本較低,僅需 Python 3.10+ 環境並安裝 Playwright。
風險主要在於安全性。由於 Webwright 允許 LLM 在本地終端執行生成的 Python 代碼,這存在典型的代碼執行風險(Remote Code Execution)。在生產環境中使用時,必須將其運行在隔離的沙箱環境(如 Docker 容器)中,嚴禁在具有高權限的主機上直接運行 LLM 生成的腳本。
成熟度判斷
該項目目前處於早期公開發布階段(版本 0.1.0),代碼量精簡,結構清晰。雖然在 Online-Mind2Web 等基準測試中表現優異,但它更像是一個高效的技術原形(Prototype)或研究框架,而非一個開箱即用的商業級產品。它提供了強大的能力,但缺乏企業級的權限管理和複雜的錯誤恢復機制。
實務限制
依賴模型編碼能力:其性能高度依賴於底層 LLM 編寫 Playwright 代碼的準確度。如果模型對 Playwright 語法不熟悉,會導致頻繁的執行錯誤。
視覺依賴:雖然支持截圖分析,但在處理極其複雜的視覺佈局時,仍需依賴模型內建的視覺能力或額外的 Image QA 工具。