前言¶
在 DSH / 智能體開發中,agent 經常需要知道當前頁面、讀取頁面請求、執行簡單瀏覽器操作。已有做法通常是手動複製頁面文本給 agent,或另寫腳本調用瀏覽器。下面介紹 dsh-chrome:一個把完整 dsh web UI 嵌入 Chrome side panel 的插件,並讓本地 dsh agent 讀取當前頁面、按需捕獲 HTTP 流量、驅動瀏覽器。
這是什麼¶
stuarthu/dsh-chrome 是 DeepSeek Harness(DSH)的瀏覽器 companion,許可證爲 MIT,package.json 版本爲 0.1.3。
它面向本地受信環境,要求:
- 本地
dsh web運行,默認地址爲http://127.0.0.1:3080 - Chrome
118+ - Node
>=18 - 可選 peerDependencies:
@deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm
插件分兩部分:
- 加到 dsh web profile 的 host plugins
- 加載到 Chrome 的擴展文件
其中 host plugins 包含:
bridge.js:WS bridgebrowser-tools.js:agent tools + redactionpage-injector.js
核心功能¶
側邊欄嵌入完整 dsh web UI¶
Chrome side panel 內嵌完整 dsh web UI,包括 sessions、settings、approvals、tasks、goals、workspaces。
side panel 頂欄提供:
- bridge status
- 手動 Stop capture
- 通過 Settings 修改 dsh address
自動感知當前頁面¶
切換標籤或導航後,插件會把 http(s) 頁面的 URL、標題和正文文本注入最近活躍 session。SPA 路由變化也會觸發。
頁面變化檢測包括:
- tab 切換
- 主幀導航
- SPA 路由變化
檢測約 2 秒去抖;滾動不觸發;只計 active tab;bridge 重連時重發當前頁面。
自動注入的頁面正文上限爲 1,000,000 字符。
按需捕獲 HTTP 流量¶
捕獲是 opt-in,並且只作用於活動標籤。
啓動捕獲:
browser_start_capture
讀取捕獲結果:
browser_capture_requests
捕獲記錄活動標籤請求的方法、URL、狀態、請求體和響應體。HTTP headers 不捕獲,因此 Cookie、Set-Cookie、Authorization 頭不會到達模型。
捕獲保留滾動最後 500 條;每個請求/響應體和自動注入頁面體上限爲 1,000,000 字符。
停止捕獲會停止記錄,但保留已記錄內容直到標籤關閉。讀取捕獲結果不做 intent-gate,同一瀏覽器的其他 dsh session 可讀取。
瀏覽器控制¶
提供以下瀏覽器工具:
browser_navigate
browser_click
browser_open_tab
讀取或操控頁面狀態的瀏覽器工具(包括捕獲)僅作用於 active tab;browser_list_tabs 和 browser_open_tab 是自然例外。
browser_get_page 的按需讀取限制約爲 40,000 可見文本和最多 400 鏈接。
browser_click 不重試;若點擊結果丟失,工具會報告無法確認點擊是否生效。
工具級 intent unlock¶
dsh-chrome 免審批,但狀態變更操作受工具級 intent unlock 限制:僅在當前輪真實消息包含指定瀏覽意圖詞時允許。
注入的當前頁面消息標註爲 untrusted data,且 intent-unlock gate 會阻止頁面內容觸發狀態變更操作。這些是 best-effort 防護,不是硬保證。
安裝與啓用¶
先做 host plugins 安裝,再做 Chrome 擴展安裝。
添加 host plugins¶
爲 dsh web profile 添加 dsh-chrome host plugins:
dsh plugin --profile web add dsh-chrome
這一步會把 bridge、browser tools、page injector 註冊到 dsh web profile。隨後刷新瀏覽器。
加載 Chrome 擴展¶
運行擴展安裝命令,打印擴展目錄:
npx dsh-chrome install
接着在 Chrome 中加載擴展:
- 打開
chrome://extensions - 開啓 Developer mode
- 點擊 Load unpacked,選擇打印目錄
- 點擊 dsh-chrome 工具欄圖標打開 side panel
經過上面的步驟,可以在 side panel 中查看 bridge status,並使用完整 dsh web UI。
升級¶
升級包後,重新運行:
npx dsh-chrome install
並在 chrome://extensions 重新加載擴展。
如需確認擴展目錄,可以運行:
npx dsh-chrome path
卸載¶
刪除擴展目錄:
npx dsh-chrome uninstall
隨後在 chrome://extensions 移除擴展。
移除 dsh host plugins:
dsh plugin --profile web remove dsh-chrome
典型用法¶
在 side panel 中打開 session 後,可以直接向 agent 發出類似指令:
open the xx pageclick the login buttoncapture this page's requests
side panel 頂欄用於查看狀態和手動控制:
- bridge status:查看 dsh 連接狀態
- Stop capture:手動停止捕獲
- Settings:修改 dsh address
安全與適用場景¶
dsh-chrome 僅限受信本地使用。bridge 和 browser tools 會賦予本地 dsh agent 讀取頁面、捕獲流量、驅動瀏覽器的能力。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
默認會對 secret-shaped URL query 參數、請求體和響應體中的 token 進行掩碼。如需捕獲未掩碼的 raw 流量,可設置:
redactCredentials: false
redaction 是 best-effort,不保證覆蓋所有情況。捕獲流量應視爲敏感內容,只在受信站點啓用捕獲。
注入頁面標註爲 untrusted data,intent-unlock gate 也會限制頁面內容觸發狀態變更操作,但這些仍屬於 approval-free 模式下的 best-effort 防護,不是絕對保證。
結尾¶
dsh-chrome 把 dsh web UI、當前頁面感知、HTTP 流量捕獲和基礎瀏覽器控制放到同一個 Chrome side panel 中,適合在受信本地環境中爲 dsh agent 增加瀏覽器上下文。
社區目錄頁:https://www.skillhub.cn/plugins/stuarthu/dsh-chrome
GitHub:https://github.com/stuarthu/dsh-chrome