問題背景:傳統瀏覽器自動化對 AI 不友善
傳統的瀏覽器自動化工具(如 Playwright、Puppeteer)原本是為開發者設計的,使用 CSS 選擇器或 XPath 來定位網頁元素。然而當 AI Agent 需要操作網頁時,會面臨以下挑戰:
- Token 消耗過大:將完整的 DOM Tree 餵給 LLM 會導致 Token 爆炸,一個簡單的登入頁面可能就需要數千個 tokens
- 雜訊過多:網頁包含大量視覺裝飾、隱藏元素和冗餘結構,對 AI 來說都是無用的干擾
- 選擇器脆弱:CSS 類名經常變動(如
btn-login-xyz-123),導致 AI 生成的指令容易失效
Pulumi 團隊在實測中發現,使用 Playwright MCP 操作一個簡單的網頁需要消耗 15,000-20,000 tokens,而 agent-browser 只需要 2,000-3,000 tokens1,這就是 82-93% 的 context 減少從何而來。
agent-browser 的解決方案:語義化 refs 系統
agent-browser 採用「快照 + 引用」(Snapshot + Refs) 的創新機制來解決這個問題:
1. 快照 (Snapshot)
將當前網頁轉換為簡化的抽象層,只保留 AI 需要的資訊:
agent-browser snapshot -i -c
輸出範例:
- link "首頁" [ref=e1]
- link "AI 知識庫" [ref=e2]
- button "聯絡我們" [ref=e3]
- textbox "搜尋..." [ref=e4]
2. 語義化引用 (Semantic Refs)
為頁面上的互動元素分配唯一的短 ID(如 @e1, @e2),AI 只需輸出簡單的指令:
agent-browser click @e2
agent-browser fill @e4 "agent-browser"
agent-browser press Enter
相比傳統方式需要寫 page.click('button.login-btn.css-xyz-123'),語義化 refs 更直觀且抗脆性更強。
3. 過濾雜訊
自動移除不影響互動的視覺裝飾、隱藏元素和冗餘結構,讓 AI 專注於實際可操作的元素。
核心功能與技術規格
基本操作流程
典型的 AI Agent 操作迴圈:
# 1. 導航到網頁
agent-browser open "https://example.com"
# 2. 獲取頁面結構與元素 ID(關鍵!)
agent-browser snapshot -i -c
# 3. 根據 ID 執行動作
agent-browser click @e1
agent-browser fill @e2 "username"
# 4. 頁面變更後重新 Snapshot
agent-browser snapshot -i -c
# 5. 關閉瀏覽器
agent-browser close
Trace 記錄與網路分析
專為除錯和數據抓取設計的進階功能:
完整 Trace 記錄
記錄操作過程、網路請求、console 日誌和截圖:
# 開始記錄
agent-browser trace start /tmp/trace.zip
# 執行操作
agent-browser open "https://example.com"
agent-browser click @e1
# 停止並儲存
agent-browser trace stop /tmp/trace.zip
# 解析網路資料
unzip -p /tmp/trace.zip trace.network | jq -s 'map(select(.type == "resource-snapshot"))'
# 視覺化查看(開啟 Playwright UI)
npx playwright show-trace /tmp/trace.zip
網路攔截與 Mock
# 查看網路請求
agent-browser network requests --filter api
# 攔截路由
agent-browser network route "**/api/data"
# Mock 回應
agent-browser network route "**/api/auth" --body '{"success":true}'
與主流工具對比
| 特性 | agent-browser | Playwright / Puppeteer | Chrome MCP |
|---|---|---|---|
| 主要客群 | AI Agent / LLM | 開發者 / QA 測試 | AI IDE 整合 |
| 互動介面 | CLI / 自然語言友好 | 程式碼 (JS/TS/Python) | MCP 協定 |
| Token 優化 | 極佳 (Refs 系統) | 無 (需自行處理) | 中等 |
| Context 使用量 | 2,000-3,000 tokens | 15,000-20,000 tokens | 依實作而定 |
| 學習曲線 | 低 (類 Bash 指令) | 高 (需熟練 API) | 中 (需整合 MCP) |
| 底層技術 | Rust CLI + Puppeteer | 直接控制 CDP | Chrome DevTools Protocol |
使用場景建議
- agent-browser:構建自主瀏覽網頁的 AI Agent,開箱即用
- Playwright:需要極致底層控制或複雜的 E2E 測試
- Chrome MCP:IDE(如 Cursor)與瀏覽器溝通的標準橋樑,需要完整 DevTools 功能
安裝與開始使用
安裝步驟
# 全域安裝 CLI
npm install -g agent-browser
# 安裝瀏覽器依賴 (Chromium)
agent-browser install
# Linux 可能需要額外依賴
# agent-browser install --with-deps
# 驗證安裝
agent-browser --version
快速測試範例
# 開啟網站
agent-browser open "https://www.oao.tw"
# 取得頁面結構
agent-browser snapshot -i -c
# 截圖
agent-browser screenshot /tmp/page.png
# 查看 console 日誌
agent-browser console
# 檢查錯誤
agent-browser errors
# 關閉瀏覽器
agent-browser close
實際測試案例:整合到 Claude Code
我們在 OAO Studio 網站進行了實測,使用 agent-browser 驗證網頁功能:
✅ 測試流程
- 導航測試:成功開啟 www.oao.tw 並取得語義化 refs
- 互動測試:點擊 "AI 知識庫" 連結 (@e6),成功導航到目標頁面
- 截圖驗證:拍攝頁面截圖確認視覺正確性
- Trace 記錄:完整記錄操作過程、網路請求和 console 日誌
- 資料解析:使用 jq 解析 trace 檔案中的網路資料
實際使用限制
Bot 防護挑戰
在測試抓取 Medium 文章時,我們遇到了 Cloudflare 防護的挑戰:
- 簡單 403 Forbidden:agent-browser 可以繞過(因為使用真實瀏覽器)
- Cloudflare Challenge / Turnstile:即使是 agent-browser 也會被偵測並攔截,顯示 "Verify you are human" 頁面
⚠️ 解決方案
面對嚴格的反爬蟲網站,需要額外的對抗手段:
- 搭配第三方服務(如 Bright Data, Browserless)
- 使用 "Stealth" 插件(如
puppeteer-extra-plugin-stealth) - 在 Node.js SDK 層級整合這些插件(純 CLI 模式較難處理)
動態內容限制
對於高度依賴 Canvas 或極度複雜的 SPA 網站,Refs 系統可能無法捕捉所有互動細節。在這些情況下,傳統的 Playwright 可能仍是更好的選擇。
AI Agent 設計最佳實踐
- Token 節省優先:始終使用
snapshot -i -c獲取精簡資訊,避免將完整 HTML 餵給 LLM - 容錯機制:網頁載入是異步的。若操作失敗(元素未找到),應先執行
wait或reload再重試 - 無頭模式:在伺服器環境運行時,確保使用 Headless 模式並配置適當的 args(如
--no-sandbox) - Trace 記錄:在開發階段開啟 trace 記錄,便於除錯和分析 Agent 行為
總結與建議
agent-browser 是一個「AI 原生」的瀏覽器操作介面。它不追求 Playwright 的大而全,而是專注於「如何讓 LLM 以最少的 Token 代價理解並操作網頁」。
- AI Agent 開發者:這是目前最輕量且高效的選擇,開箱即用,82% Context 減少是實實在在的優勢
- QA 測試工程師:如果需要複雜的測試場景或底層控制,Playwright 仍是更好的選擇
- 數據抓取:適合抓取一般網站,但面對 Cloudflare 等嚴格防護時需要額外處理
- IDE 整合:如果需要在 IDE 中操作瀏覽器並存取完整 DevTools,Chrome MCP 更合適
隨著 AI Agent 技術的成熟,專為 AI 優化的工具鏈將成為主流。agent-browser 作為這個趨勢的先驅,已經證明了「AI 優先」設計理念的價值。如果你正在構建自主 Web Agent,不妨從 agent-browser 開始。
References 參考文獻
- Pulumi Blog - agent-browser vs Playwright MCP 實測比較
https://www.pulumi.com/blog/agent-browser-vs-playwright-mcp/ - AI Base - Vercel 推出 agent-browser 的報導
https://www.ai-base.com/article/vercel-agent-browser - GitHub - vercel-labs/agent-browser 官方 Repository
https://github.com/vercel-labs/agent-browser - 基於 Gemini 研究總結 - 技術架構與設計理念
- OAO Studio 實測經驗 - www.oao.tw 網站測試與 Cloudflare 防護測試