AI Agent 的 Web 技能雙引擎

Playwright × Webwright

讓你的 AI Agent 看得懂、做得到、任務完成有回報!

🎭 控制瀏覽器的自動化工具 🤖 AI 驅動的任務代理框架
🤔 常見疑問

最近在 AI Agent 的討論區裡,常看到 Playwright 跟 Webwright 這兩個字。

它們到底是什麼?是 Skills 技能嗎?有什麼應用情境?又有什麼特別功能?

💡 一句話先講清楚

Playwright 是「控制瀏覽器的自動化工具」,讓 AI Agent 能像人一樣操作網頁。

Webwright 是 Microsoft Research 提出的框架,讓 AI Agent 用終端機寫 Playwright 程式來完成網頁任務。

它們本身不一定等於 Skills,但很常被包裝成 Agent 的「網頁操作技能」。

兩顆引擎,各司其職

一個負責「動手操作」,一個負責「動腦規劃」——合起來才是完整的 Web Agent。

01

🎭 Playwright

控制瀏覽器的自動化工具

由 Microsoft 開發的開源自動化框架,支援多瀏覽器操作。

Chromium Firefox WebKit

主要應用情境

  • 網頁自動化測試
  • 爬蟲資料擷取
  • 自動化表單填寫
  • UI 自動化任務
  • 跨瀏覽器相容性測試

特色功能

  • 多瀏覽器支援
  • 自動等待(Auto-wait)
  • 強大定位能力(Locator)
  • 網路請求攔截與模擬
  • 並行測試與分頁管理
  • 支援多語言:Python / TypeScript / .NET / Java
02

🤖 Webwright

AI 驅動的瀏覽器任務代理框架

Microsoft Research 提出的創新框架,讓 AI Agent 能理解網頁並完成複雜任務。

自然語言 任務規劃 自動修正

主要應用情境

  • 自然語言 → 頁面操作
  • AI 自動化任務執行
  • 資訊擷取與自動化
  • AI Agent 網頁技能擴充
  • 企業內部流程自動化

特色功能

  • AI 自然語言理解任務
  • 自動生成 Playwright 程式碼
  • 任務規劃與執行
  • 任務執行回饋與自動修正
  • 可擴充為 Agent 技能模組
🧩

當 Playwright 搭配 Webwright

Playwright 負責「操作網頁」、Webwright 負責「想與規劃」—— 任務完成,結果更可靠!

一句話分清楚它們的角色

Playwright

你操作,我執行

給它明確的步驟與選擇器,它一步步精準執行。

Webwright

你說需求,AI 幫你完成

你用自然語言描述目標,AI 自己拆解步驟並寫程式完成。

五大應用情境

支援這兩個關鍵詞,AI Agent 在網頁世界裡幾乎所向無敵。

🛒

電商分析

商品價格追蹤、庫存監控

📋

表單自動化

自動填寫、送出與驗證

🗄️

資料擷取

從網站擷取結構化資料

🧪

研究與測試

AI 資料實驗、自動化測試

🏢

企業流程

自動化內部系統與報表生成

🎬 AI Agent 網頁任務流程

以「幫我找出筆電價格最低的商品」為例,Agent 是這樣完成任務的。

  1. 1

    接收任務

    「幫我找出 AI 筆電價格最低的商品!」

  2. 2

    分析頁面

    理解頁面結構與元素位置

  3. 3

    生成步驟 / 程式碼

    規劃步驟並生成程式碼

  4. 4

    執行操作

    執行瀏覽器操作完成任務

  5. 5

    回傳結果

    回傳結果與摘要,任務完成!✅

📓 阿凱老師的自動化實作日記

Playwright 自動化初體驗

🎉 超開心!!

早上想到要讓 Agent 自動幫我判斷並填寫偵測到的、已定義好的 Google 表單欄位。 剛剛靠 Playwright 加上可隨時再擴充的 profile.json 檔, 已實作成功,超開心!!

1偵測欄位
2比對 profile.json 智慧判斷
3自動填入正確內容並送出
✓實作成功
profile.json · 可隨時擴充的自動填表設定檔
{
  "姓名": {
    "keys": ["姓名", "name"],
    "value": "王小明"
  },
  "信箱": {
    "keys": ["信箱", "郵件", "email", "電子郵件"],
    "value": "xiaoming@example.com"
  },
  "學校": {
    "keys": ["學校", "單位", "服務", "school", "organization"],
    "value": "○○國小"
  },
  "縣市": {
    "keys": ["縣市"],
    "value": "桃園市"
  },
  "職稱": {
    "keys": ["職稱", "職位", "職務", "title"],
    "value": "教師"
  },
  "電話": {
    "keys": ["電話", "手機", "phone", "mobile"],
    "value": "0912-345-678"
  },
  "心得或建議": {
    "keys": ["心得", "建議", "回饋", "想法", "意見", "feedback", "comment"],
    "value": "本次研習內容非常充實且實用,講師講解清晰,收穫良多,非常感謝主辦單位的用心安排!"
  }
}

💡 原理:表單上每個欄位的標題,會去比對 keys 陣列裡的關鍵字;命中就自動填入對應的 value。 想多填一個欄位?再加一組就好——不用改程式,只改設定檔。

填表的核心三行(概念示意)
await page.goto(formUrl);
await page.locator('input[name="姓名"]').fill(profile["姓名"].value);
await page.locator('input[name="電子郵件"]').fill(profile["信箱"].value);
await page.locator('button[type="submit"]').click();   // ✅ 表單已送出
🚀 下一關

煩人的公文歸檔,希望 Playwright 再給我一次驚喜!

如果能把長官已決行的電子公文交給 Agent 幫我們點按、自動歸檔…… 成功的話那真的就太爽了。

慢慢點、慢慢按、慢慢填,真的好累啊——
可以自動化、自動好……人生好美妙!!💫

自動歸檔中… 86%
⭐

總結

Playwright 讓 AI Agent 能「操作網頁」, Webwright 讓 AI Agent 能「理解並完成任務」。

掌握這兩個關鍵詞,
讓你的 AI Agent 在網頁世界裡所向無敵 🚀