久久一级二级,日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕,中文字慕五区,欧美日韩精品一级,9干视频在线,一线在线不卡免费,亚洲天堂久久在线观看,亚洲天堂激情一区,丁香激情四月

?? MCP生態(tài)

agent-browser與playwright-mcp對比:AI瀏覽器自動(dòng)化選型核心差異解析

發(fā)布時(shí)間:2026-04-18 分類: MCP生態(tài)
摘要:為什么選 agent-browser 而不是 playwright-mcp直接上手的差異你寫一個(gè) AI Agent,要操作瀏覽器——比如填表、點(diǎn)按鈕、抓數(shù)據(jù)。playwright-mcp 和 agent-browser 都能做,但體驗(yàn)完全不同。playwright-mcp 是把 Playwright 的能力“套殼”進(jìn) MCP 協(xié)議:它暴露的是底層瀏覽器操作(click, fill, wait...

封面

為什么選 agent-browser 而不是 playwright-mcp

直接上手的差異

你寫一個(gè) AI Agent,要操作瀏覽器——比如填表、點(diǎn)按鈕、抓數(shù)據(jù)。playwright-mcpagent-browser 都能做,但體驗(yàn)完全不同。

playwright-mcp 是把 Playwright 的能力“套殼”進(jìn) MCP 協(xié)議:它暴露的是底層瀏覽器操作(click, fill, wait_for_selector),返回的 JSON 帶大量元信息(如 DOM 樹快照、事件監(jiān)聽器列表、樣式計(jì)算結(jié)果)。這些對調(diào)試瀏覽器本身有用,但對 AI Agent 來說,90% 是噪音。

agent-browser 反過來:它不暴露瀏覽器細(xì)節(jié),只暴露語義動(dòng)作和結(jié)構(gòu)化結(jié)果。比如你讓 Agent “提交登錄表單”,它返回:

{
  "success": true,
  "redirect_url": "https://app.example.com/dashboard",
  "extracted": {
    "username": "alice",
    "last_login": "2024-05-20T08:32:11Z"
  }
}

沒有 CSS 選擇器路徑,沒有 frame 層級,沒有未渲染的 shadow DOM 節(jié)點(diǎn)。只有你真正需要的數(shù)據(jù)。

關(guān)鍵維度對比

特性playwright-mcpagent-browser
輸出格式龐大 JSON,含 DOM 快照、樣式、事件等精簡語義化 JSON,只含動(dòng)作結(jié)果與提取字段
元素定位手寫 CSS/XPath,需反復(fù) inspect 元素自然語言描述 + 自動(dòng)匹配(如 “右上角頭像圖標(biāo)”)
協(xié)議設(shè)計(jì)Playwright 命令直映射,MCP 封裝層薄原生 MCP Action/Tool 定義,無冗余抽象
會話管理每次調(diào)用新建 BrowserContext,狀態(tài)不保留支持跨請求會話上下文(cookies、localStorage、history)
性能啟動(dòng) Chromium 實(shí)例約 1.2s,內(nèi)存常駐 300MB+復(fù)用進(jìn)程,冷啟動(dòng) < 200ms,常駐內(nèi)存 < 80MB
移動(dòng)端/云支持需手動(dòng)配置 viewport、userAgent、touch 事件內(nèi)置 mobile preset,自動(dòng)適配 viewport 和手勢模擬
流式響應(yīng)僅支持 polling,延遲高且易丟幀WebSocket 原生流式輸出(如頁面加載中實(shí)時(shí)吐文本塊)

具體場景怎么體現(xiàn)

1. 構(gòu)建客服 Agent

playwright-mcp 實(shí)現(xiàn)“查看用戶訂單歷史”:

  • goto 訂單頁
  • wait_for_selector 等加載完成
  • query_selector_all 找所有 .order-item
  • 對每個(gè) item inner_text() 提取內(nèi)容
  • 手動(dòng)解析日期、金額、狀態(tài)字段
  • 最后拼成 JSON 返回

agent-browser

{
  "tool": "browser.extract",
  "input": {
    "url": "https://shop.example.com/orders",
    "schema": {
      "orders": [
        {
          "id": "text in .order-id",
          "date": "text in .order-date",
          "status": "text in .order-status"
        }
      ]
    }
  }
}

它自動(dòng)處理等待、重試、字段提取、類型轉(zhuǎn)換(如把 "May 20, 2024" 轉(zhuǎn)成 ISO 時(shí)間)。

2. 電商比價(jià)工具

你需要在 5 個(gè)網(wǎng)站抓同款商品價(jià)格。playwright-mcp 要為每個(gè)站點(diǎn)寫?yīng)毩⒌?selector 邏輯,維護(hù) 5 套 XPath;agent-browser 只需統(tǒng)一 schema:

{
  "price": "number in [data-testid='price'] or .price or .current-price"
}

它內(nèi)置 selector fallback 鏈和容錯(cuò)重試,失敗時(shí)返回 {"price": null, "error": "timeout"},而不是拋出異?;蚩ㄋ?。

3. 調(diào)試真實(shí)發(fā)生什么

playwright-mcp 報(bào)錯(cuò)常見于:

  • TimeoutError: waiting for get_by_test_id("submit-btn") failed
  • Error: Element is not attached to the DOM

你得開 DevTools,切到 Elements 面板,手動(dòng)驗(yàn)證 selector 是否還有效。

agent-browser 報(bào)錯(cuò)帶上下文:

{
  "error": "element_not_found",
  "hint": "Button '提交' not visible; found 2 elements matching 'submit' but both are disabled",
  "screenshot": "data:image/png;base64,..."
}

截圖直接嵌在響應(yīng)里,不用切窗口。

怎么開始

  1. 安裝:

    pip install agent-browser
  2. 啟動(dòng)服務(wù):

    agent-browser --port 8000
  3. 發(fā)送一個(gè)請求(curl 或 Python requests):

    curl -X POST http://localhost:8000/v1/tools/browser.navigate \
      -H "Content-Type: application/json" \
      -d '{"url": "https://example.com", "wait_for": "text in h1"}'
  4. 查看文檔:agent-browser.readthedocs.io —— 重點(diǎn)看 browser.extractbrowser.interact 的 schema 定義。

不需要改現(xiàn)有 MCP client,只要把 tool call 的 nameinputagent-browser 規(guī)范發(fā)過去就行。

返回首頁
原平市| 闽侯县| 曲水县| 都兰县| 古浪县| 茂名市| 汤原县| 江北区| 满城县| 武城县| 芷江| 安远县| 湟源县| 平顺县| 灵宝市| 玉溪市| 锡林郭勒盟| 武陟县| 高碑店市| 红安县| 遂宁市| 大港区| 桦甸市| 武夷山市| 枣阳市| 康马县| 肃北| 长岭县| 安图县| 阿巴嘎旗| 桦甸市| 芮城县| 密山市| 临西县| 沧源| 彭阳县| 荃湾区| 凯里市| 梅州市| 阿坝县| 泸州市|