前言¶
在開發 DeepSeek Harness 智能體時,讓 AI 具備網頁操作能力通常需要調用繁瑣的瀏覽器自動化接口,或者讓用戶手動操作多個窗口,這種方式效率較低。dsh-inapp-browser 插件提供了一個內置的瀏覽器面板,讓 AI 與用戶在同一個上下文中操作網頁,支持從打開網址、點擊交互到截圖讀取的完整流程。
這是什麼¶
dsh-inapp-browser 是一個客戶端插件,由開發者 alllllinnrann 維護。它利用 Chrome DevTools Protocol (CDP) 在 Better Sidebar 中渲染一個獨立的瀏覽器實例。默認情況下,該瀏覽器會啓動必應搜索頁面,且用戶的登錄資料會按聊天會話保存,互不干擾。
核心功能¶
插件提供了豐富的工具集,覆蓋了網頁瀏覽和交互的主要場景。
瀏覽控制¶
- 標籤管理:支持多標籤頁操作。通過
iab_tabs查看當前標籤列表,使用iab_select切換標籤,iab_close_tab關閉標籤(至少保留一個標籤)。 - 導航與刷新:支持
iab_open打開網址或搜索詞(支持 Bing、百度、Google 引擎),iab_back後退,iab_forward前進,以及iab_reload刷新頁面。 - 彈窗處理:提供
iab_dialog接口,用於確認或取消網頁的 JavaScript 彈窗(如 alert、confirm、prompt)。
頁面交互¶
- 點擊與輸入:支持鼠標點擊
iab_click(可指定左、右、中鍵),支持向聚焦控件輸入中文iab_type,以及拖拽操作iab_drag。 - 滾動與按鍵:支持頁面滾動
iab_scroll(可指定方向和位置),以及模擬鍵盤按鍵iab_key(支持組合鍵,如全選 Ctrl+A)。 - 等待機制:提供
iab_wait接口,在執行下一步操作前等待頁面加載,範圍 0-10000 毫秒。
信息讀取¶
- 頁面快照:調用
iab_snapshot可獲取當前頁面的網址、標題、文字內容、控件列表(含位置、標籤、是否在視口內)及視口尺寸。 - 高清截圖:調用
iab_screenshot可獲取當前頁面的圖片附件及視口信息。注意,截圖需要宿主支持圖片輸入的模型。
安裝與依賴¶
使用此插件前,需確保環境滿足以下版本要求:
- DeepSeek Harness:0.1.5-rc.2
- Node.js:22.19 或更高版本
- Better Sidebar:0.19.1 到 0.19.x
典型用法¶
以下爲插件提供的典型工具調用示例。工具會自動使用當前聊天會話,無需傳入聊天 ID。
打開網址並搜索
{
"name": "iab_open",
"arguments": {
"url": "https://www.bing.com",
"engine": "bing",
"newTab": false
}
}
輸入文字
{
"name": "iab_type",
"arguments": {
"text": "Hello World"
}
}
點擊座標
{
"name": "iab_click",
"arguments": {
"x": 100,
"y": 200,
"button": "left"
}
}
截圖
{
"name": "iab_screenshot"
}
配置與注意事項¶
環境變量¶
可以通過設置環境變量來定製瀏覽器路徑和數據目錄:
DSH_IAB_BROWSER_PATH:指定瀏覽器可執行文件路徑,默認自動查找 Edge、Chrome 或 Chromium。DSH_IAB_DATA_DIR:瀏覽器資料根目錄,默認爲${DSH_HOME}/storages/dsh-inapp-browser/。DSH_HOME:Harness 數據根目錄,默認爲用戶目錄下的.dsh。DSH_IAB_HOME_URL:新會話的首頁,默認爲https://www.bing.com/。
座標與按鍵規則¶
- 座標系統:
iab_click和iab_drag中的x、y參數爲網頁視口的 CSS 像素,不是側欄圖片縮放後的座標。如果模型端對截圖進行了縮放,需要換算回原始視口座標。 - 組合鍵:
iab_key中的modifiers使用位掩碼組合:Alt=1、Ctrl=2、Meta=4、Shift=8。例如,全選操作爲{"key": "a", "modifiers": 2}。
其他限制¶
- 截圖功能依賴支持圖片輸入的模型及宿主附件服務。
- 插件不接管用戶日常已經打開的瀏覽器,它運行在獨立的進程中,僅用於當前 Harness 聊天會話。
總結¶
dsh-inapp-browser 通過 CDP 協議爲 DeepSeek Harness 帶來了原生的瀏覽器控制能力。它解決了 AI 操作網頁時的上下文割裂問題,通過共享登錄態和可視化面板,大幅降低了網頁自動化開發的門檻。更多細節可查看 GitHub 倉庫。