前言¶
DeepSeek Harness (DSH) 的生態以插件化著稱,開發者可以通過掛載不同的能力來擴展智能體的行爲。在進行網頁自動化任務時,如何讓 AI 代理複用已有的登錄狀態、在真實環境中操作,並處理登錄攔截、驗證碼或原生彈窗,是常見的痛點。dsh-browser-playwright-codex 插件通過 Playwright 提供了一套解決方案,它不依賴無頭模式,而是驅動一個可見的瀏覽器窗口,並將控制權在遇到障礙時交還給用戶。
插件定位¶
這是一個聯網工具類插件,由開發者 miqian-nomad 維護。它的核心作用是讓 AI 能夠利用用戶已有的瀏覽器登錄賬號,在真實網頁上執行表單填充、列表抓取和多標籤頁操作。插件運行在一個可見的瀏覽器窗口中,用戶可以隨時接管操作,遇到需要人工介入的環節(如驗證碼)時,它會自動停止並等待指令。
核心功能¶
該插件提供了以下能力:
- 賬號複用與狀態保持:利用 Playwright 的 Profile 機制,插件可以使用用戶已經登錄的賬號進行後續操作。即使窗口關閉或 Harness 重啓,只要 Profile 未變,登錄狀態通常得以保持。
- 可見窗口與焦點管理:瀏覽器窗口會在桌面上顯示,用戶可以看到 AI 的操作過程。在窗口最小化時,插件不會搶奪系統的焦點,允許用戶在後臺繼續使用電腦。
- 交互中斷與等待:遇到登錄頁面、兩步驗證、驗證碼或原生彈窗(alert/confirm/prompt)時,插件會自動停止並報告狀態,等待用戶通過
browser_dialog等工具進行干預,而不是盲目點擊。 - 穩定元素引用:通過
browser_snapshot獲取頁面快照後,插件會爲可見元素分配ref編號。這種引用方式比 CSS 選擇器更穩定,引用失效時會快速失敗並提供解釋。 - 多標籤與截圖:支持 Tab 的管理、切換、打開和關閉,支持頁面截圖,以及結構化數據提取(需啓用對應能力)。
安裝與啓用¶
安裝該插件需要指定一個 Harness Profile。插件已發佈至 npm(自 v0.5.1 起),也可以直接從倉庫安裝。
dsh plugin --profile <name> add dsh-browser-playwright-codex
安裝後,插件會自動掛載相關工具。需要注意的是,默認情況下 browser_evaluate(JavaScript 執行)和 browser_cdp(Chrome DevTools Protocol)這兩個強力工具是未註冊且禁用的,這有助於降低安全風險。
典型用法¶
安裝完成後,無需額外配置即可開始使用。插件默認工具前綴爲 browser_。
以下是一些常見的使用場景:
- 抓取列表:讓 AI 打開特定網頁,並提取前五條故事的標題和鏈接。
Open https://news.ycombinator.com and list the titles of the first five stories with their links.
- 查詢訂單:訪問需要登錄的站點,提取最近一次訂單的配送地址。
Go to my orders page on <site> and tell me the delivery address on the most recent order.
- 表單填寫與預覽:填寫聯繫表單,但在提交前停止,展示已填寫的內容。
Fill in this contact form, but stop and show me the filled form before you submit it.
注意事項¶
使用該插件時,有幾個關鍵點需要注意:
- 必須先獲取 Snapshot:任何基於
ref的操作(點擊、填充等)必須先運行browser_snapshot來獲取有效的元素引用。 - 引用失效:
ref是基於文檔上下文的,如果頁面結構變化,引用會失效,插件會快速報錯並說明原因,避免點錯元素。 - 不可逆操作:提交表單、支付、刪除或發送消息屬於不可逆操作,建議在執行前先閱讀表單內容,或讓 AI 在執行前停止。
- 安全限制:出於安全考慮,
browser_evaluate存在嚴重發現已被關閉。如需啓用高級功能,需在部署層面開啓相應的 Capability。
結語¶
dsh-browser-playwright-codex 解決了智能體在真實網頁環境中操作時的狀態同步與可視化問題。它通過可見窗口和中斷機制,降低了自動化調試的難度。如果你需要在 DSH 環境中處理複雜的登錄流程或需要人工確認的場景,這是一個值得嘗試的工具。