前言¶
在 DeepSeek Harness(DSH)裏用內置瀏覽器加載網頁時,工具需要一個真實的 Electron 窗口。默認情況下,這個窗口會頂到最前並搶走鍵盤焦點,你在別的應用裏打字、看文檔的流程會被打斷。若你只是希望 Agent 在後臺照常加載頁面、執行腳本或截圖,並不想每次都被瀏覽器窗口「拽」回來,就需要單獨處理窗口行爲。
dsh-quiet-browser 是社區維護的 DSH 插件,分類爲聯網工具。它不改動 dsh-builtin-browser 和 DSH 本體,而是在 Windows 上用守護進程監聽窗口事件,把標題以 dsh-browser 開頭的瀏覽器窗口壓到最底層,並設爲不可激活,從而儘量不搶焦點、不遮擋你正在用的窗口。
這是什麼¶
- 名稱:dsh-quiet-browser(倉庫 Yyhy110421/dsh-quiet-browser)
- 維護者:Yyhy110421
- 定位:DSH 窗口行爲插件;內置瀏覽器繼續工作,窗口儘量不蓋住前臺、不搶鍵盤焦點
- 平臺:僅 Windows(宿主通過 PowerShell + Win32 API 操作窗口)
社區插件目錄見 SkillHub 插件頁。目錄站與 DeepSeek / 幻方無官方從屬關係,安裝前建議自行查看倉庫源碼與 MIT 許可證;插件隨當前 DSH 進程權限運行。
核心功能¶
下面介紹插件在資料中明確寫到的能力。
- 只處理 DSH 瀏覽器窗口:僅匹配標題以
dsh-browser開頭的窗口,不碰 DSH 主窗口、微信、資源管理器以及你自開的 Chrome / Edge。 - 功能不因「靜默」而失效:窗口仍存在,頁面照常加載、點擊、執行 JS、截圖;截圖優先走 CDP,原生
capturePage失敗時會自動回退,資料中寫明實測dsh_browser_screenshot正常。 - 不搶焦點:爲窗口加上
WS_EX_NOACTIVATE;若瀏覽器仍搶到前臺,守護進程會嘗試把上一個用戶窗口切回(SetForegroundWindow,失敗再試SwitchToThisWindow)。 - 不遮擋普通窗口:通過
SetWindowPos(HWND_BOTTOM)把瀏覽器壓到所有普通窗口下面。 - 可隨時開關:DSH 設置 → 靜默瀏覽,可啓用或暫停;暫停後會去掉「不激活」樣式,瀏覽器恢復普通行爲,便於手動接管或處理驗證碼。
安裝與啓用¶
先做插件安裝,再重啓 DSH。
- 在 DSH 中打開 設置 → 插件管理器。
- 從下列來源之一安裝(命令須與倉庫 README 一致):
github:Yyhy110421/dsh-quiet-browser
若本機已有倉庫副本,也可用本地路徑(實體拷貝):
file:<本倉庫的絕對路徑>
- 安裝完成後 重啓 DSH 生效。
說明:file: 安裝是實體拷貝,改源碼後需卸載再裝纔會更新;update 僅支持 npm 註冊表插件,本插件不發佈到 npm。
配置¶
配置文件路徑:$DSH_HOME/data/quiet-browser.json;未設置 DSH_HOME 時使用 ~/.dsh。
{
"enabled": true,
"pollMs": 200
}
- enabled:是否啓用;也可在設置頁切換。
- pollMs:兜底輪詢間隔(毫秒,範圍 50–5000),默認 200。窗口創建、顯示或切前臺時由 WinEvent 鉤子立即處理,輪詢僅作兜底。
工作方式(便於排查)¶
經過上面的安裝步驟後,插件隨 DSH 啓動隱藏的 PowerShell 守護進程(lib/quiet-browser.ps1),大致流程如下:
- 使用
SetWinEventHook監聽前臺切換、窗口顯示、標題變化。 - 命中目標窗口時添加
WS_EX_NOACTIVATE,並調用SetWindowPos(HWND_BOTTOM)。 - 插件卸載或暫停時,守護進程清除
WS_EX_NOACTIVATE,窗口恢復正常。
開發與自測時,可在倉庫目錄執行(資料原文):
# 查看當前目標窗口與「不激活」狀態
powershell.exe -NoProfile -ExecutionPolicy Bypass -File lib/quiet-browser.ps1 -Action status
# 前臺運行守護進程(Ctrl+C 退出)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File lib/quiet-browser.ps1 -Action watch -PollMs 100
宿主部分零第三方依賴;窗口操作集中在 lib/quiet-browser.ps1(Add-Type + Win32 API)。
適用場景與注意¶
適合誰:在 Windows 上長期開着 DSH、頻繁讓 Agent 用內置瀏覽器抓頁或操作 DOM,又不希望瀏覽器窗口反覆蓋住 IDE、終端或聊天窗口的開發者。
已知限制(以 README 爲準):
- 瀏覽器窗口創建瞬間可能仍有一幀閃動,顯示後守護進程會立即壓回。
- 按窗口標題匹配;若有其他程序故意使用
dsh-browser標題,也會被壓到底層。 - 瀏覽器被壓在最底層後,正常情況下可能被 DSH 主窗口擋住;需要目視頁面時,在設置裏暫停或等任務結束。
- 僅 Windows。
結尾¶
dsh-quiet-browser 用獨立守護進程調整 DSH 內置瀏覽器窗口的 Z 序與激活策略,在不改瀏覽器工具本身的前提下,減輕「彈窗搶焦點」對日常操作的干擾。需要進一步瞭解能力、限制與安裝方式時,可查閱 SkillHub 目錄頁 與 GitHub 倉庫。