前言¶
在 DeepSeek Harness(DSH)裏使用 BrowserSkill 時,本地 bsk 守護進程要麼長期駐留(佔用數百 MB 內存),要麼走按需啓動。按需路徑在 Windows 上的 DSH 宿主裏會失敗:宿主運行在禁止子進程脫離的 Job Object 內,首次調用瀏覽器工具常直接報錯 Access is denied. (os error 5),且不易看出原因。
社區插件 dsh-bsk-daemon(維護者 like999888999-ui,分類:聯網工具)針對上述場景:在 DSH 內讓 bsk 守護進程按需啓動、空閒後退出,並在 Windows 上繞過 Job Object 限制。當前版本 0.2.0,MIT 許可證,GitHub 星標爲 0。
這是什麼¶
dsh-bsk-daemon 是 DSH 桌面 profile 下的 Cordis 插件,不替代 BrowserSkill 本身,而是接管 bsk 守護進程的生命週期。Windows 上通過計劃任務與 wake shim 啓動守護進程(由 taskeng 拉起,脫離宿主 Job Object);macOS / Linux 上使用普通 detached 進程,無需 shim。空閒約 15 分鐘(可配置)後守護進程自動退出,無瀏覽器調用時不應長期佔內存。
核心功能¶
- 按需啓停:空閒無駐留;瀏覽器工具調用時自動喚醒;空閒超時後退出。
- 修復 Windows
os error 5:用bsk-shim.exe與無觸發器的計劃任務bsk-daemon擁有守護進程,避免 DSH 宿主內 detached spawn 被拒絕。 - Agent 工具:
bsk_status(狀態)、bsk_setup(重建 shim 並重新註冊任務,冪等)、bsk_wake(手動喚醒)、bsk_stop(立即停止)。 - 非 Windows 平臺:僅提供狀態與生命週期工具,不創建 shim 或計劃任務。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前建議在 GitHub 查看源碼與 LICENSE,確認可接受後再加入 profile。
1. 安裝本插件
dsh plugin --profile desktop add github:like999888999-ui/dsh-bsk-daemon
2. 若尚未安裝 BrowserSkill 的 DSH 插件
dsh plugin --profile desktop add @wxg-prc-cpg/browser-skill-dsh-plugin
3. 完全退出 DSH 後重新啓動
首次加載會執行一次 setup:編譯 shim 並註冊計劃任務。隨後讓 browser-skill 指向 shim——在 profile 的 cordis.patch.yml(例如 ~/.dsh/profiles/desktop/cordis.patch.yml)中增加:
- id: browserskill
config:
bskPath: 'C:\Users\<you>\.local\bin\bsk-shim.exe'
將 <you> 換成實際用戶名。再次重啓宿主後,瀏覽器工具調用會透明處理守護進程生命週期。
若不想改 bskPath,可在一批瀏覽器工作前由 Agent 調用一次 bsk_wake,效果相同,多一步手動喚醒。
環境要求(來自 README):Node.js ≥ 22.13.0;已安裝 bsk CLI(見 BrowserSkill 文檔);Windows 上 setup 階段需要系統自帶的 .NET Framework 編譯器 csc.exe(Windows 8 及以後通常已有)。
典型用法¶
驗證安裝
請 Agent 調用 bsk_status。健康安裝示例(Windows):
{
"platform": "win32",
"strategy": "windows-task",
"bskExists": true,
"shimExists": true,
"taskExists": true,
"running": false,
"pid": null
}
空閒時 running: false 是預期行爲。觸發一次瀏覽器調用後應變爲 running: true 並帶有 pid。
插件自身配置
可在同一 profile 的 cordis.patch.yml 中配置 id: bsk-daemon,或通過設置頁修改。常用字段:
| 字段 | 默認值 | 含義 |
|---|---|---|
bskPath |
空(自動探測) | bsk 二進制路徑 |
taskName |
bsk-daemon |
計劃任務名稱 |
daemonIdle |
15m |
守護進程空閒保留時長 |
sessionIdle |
5m |
單會話空閒超時 |
autoSetup |
true |
插件加載時運行 setup |
autoWake |
true |
瀏覽器工具運行前預熱守護進程 |
shimPath |
空(~/.local/bin/bsk-shim.exe) |
shim 輸出路徑 |
示例:
- id: bsk-daemon
config:
daemonIdle: 30m
autoWake: false
升級 bsk 後若 shim 或任務異常,可調用 bsk_setup 重建。
適用場景與注意¶
適合誰:在 DSH desktop profile 上使用 browser-skill、且希望在 Windows 上避免首次瀏覽器調用因 os error 5 失敗的用戶;希望守護進程不長期駐留、接受冷啓動約 4–8 秒的用戶。
平臺差異:Job Object 問題爲 Windows 特有;macOS / Linux 上本插件機制基本不用,但工具仍可用。
侷限(README 明確列出):不安裝 BrowserSkill 的 Chrome/Edge 擴展;Windows 冷啓動有延遲;csc.exe 僅在構建 shim 時需要,已生成的 bsk-shim.exe 可獨立運行。
排錯要點
- 插件已加載但沒有
bsk_*工具:0.1.0 曾缺inject: ['tools'],已在 0.1.1 修復;請使用當前發行版。 - 仍出現
os error 5:檢查bskPath是否仍指向bsk.exe而非 shim,或計劃任務缺失;運行bsk_setup後用bsk_status確認shimExists與taskExists爲 true。 - 守護進程不退出:用
bsk_status查看browsers[].session_count,陳舊會話會拖到sessionIdle才釋放。
卸載
dsh plugin --profile desktop remove dsh-bsk-daemon
schtasks /Delete /TN bsk-daemon /F
亦可刪除 ~/.bsk/ 下的 bsk-daemon-launch.vbs 與 bsk-daemon.xml。
結尾¶
dsh-bsk-daemon 把 BrowserSkill 的 bsk 守護進程放進 DSH 的可控生命週期:Windows 上用計劃任務與 shim 解決無法 detached 啓動的問題,其它平臺提供一致的查詢與啓停工具。DeepSeek Harness 生態強調「一切皆插件」;社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
- 目錄頁:https://www.skillhub.cn/plugins/like999888999-ui/dsh-bsk-daemon
- 源碼與文檔:https://github.com/like999888999-ui/dsh-bsk-daemon