前言¶
DeepSeek Harness(DSH)通過 bsk_* 工具暴露瀏覽器自動化能力,背後依賴一個本地 bsk 守護進程。在沙箱環境中,這個守護進程常被殺掉或無法連接,因爲沙箱會回收或禁止子進程。Windows 的 job object 限制子進程脫離,Linux 的 bubblewrap 沙箱會終止子命令。文檔建議將守護進程放在持久的主機上下文中,通過本地 IPC 與沙箱通信,這正是 DSH 插件託管守護進程的場景。
插件介紹¶
dsh-bsk-daemon 是一個 DSH bundle,負責管理 BrowserSkill 的 bsk 守護進程。它將守護進程作爲 DSH 的子進程運行:與 DSH 同生同滅,崩潰後自動重啓(有界),避免與其它守護進程混淆。插件由社區開發者 XFY9326 維護,面向 Windows、macOS 和 Linux,底層使用 Node.js 內置模塊(child_process、net、fs、os、path),無需平臺分支代碼。
核心功能¶
- 生命週期託管:守護進程隨 DSH 啓動,隨 DSH 停止;插件行在 DSH 設置的插件列表中顯示爲“bsk Daemon Supervisor / bsk 守護進程託管”。
- 崩潰重啓:守護進程崩潰後插件會自動重啓,並保持有限的重啓次數以避免無限循環。
- 進程歸屬:啓動後守護進程的父進程是 DSH 主進程;通過
bsk status --json可驗證。 - 跨平臺 IPC:Windows 使用命名管道(
\\.\pipe\bsk-daemon-*),macOS/Linux 使用 Unix 域套接字(~/.bsk/run/daemon.sock),插件統一使用net.connect()連接。 - 停止行爲:通過
bsk daemon stop命令停止;Windows job object 會在 DSH 被強制終止時回收守護進程;macOS/Linux 在 DSH 正常退出時停止,被強制終止時可能殘留,下次啓動會探測並複用。
安裝與啓用¶
從 GitHub Packages 安裝:
npm config set @xfy9326:registry https://npm.pkg.github.com
npm config set //npm.pkg.github.com/:_authToken $env:GITHUB_TOKEN
或交互式登錄:
npm login --scope=@XFY9326 --registry=https://npm.pkg.github.com
然後在 DSH agent 中安裝 bundle:
Install
@xfy9326/dsh-bsk-daemonfromhttps://npm.pkg.github.comwithplugin_managerinstall_bundle.
工具會將依賴寫入當前配置文件,應用 bundle 補丁,並返回 application: applied。安裝後可在 DSH 設置→插件中看到“bsk Daemon Supervisor / bsk 守護進程託管”行。
從本地 checkout 安裝:
git clone https://github.com/XFY9326/dsh-bsk-daemon.git C:\Tools\dsh-bsk-daemon
然後使用 plugin_manager install_bundle 指向該絕對路徑。
配置¶
插件在配置中插入一行,無顯式配置項,默認值如下:
| Key | Default | Meaning |
|---|---|---|
bskPath |
bsk |
可執行文件名或絕對路徑 |
bskHome |
$BSK_HOME 或 ~/.bsk |
daemon.json、IPC 端點和日誌所在目錄 |
args |
daemon start --foreground --daemon-idle 30d |
傳遞給 bskPath 的參數 |
如需覆蓋,可在安裝前編輯插件的 cordis.patch.yml:
- insert:
- id: bsk-daemon
name: '@xfy9326/dsh-bsk-daemon'
config:
bskPath: 'C:\Tools\bsk\bsk.exe'
bskHome: 'C:\Users\me\.bsk'
args: [daemon, start, --foreground, --daemon-idle, 30d]
注意:配置是整體替換;如不希望由 DSH 啓動守護進程(例如自行運行共享守護進程),應禁用該行。
驗證與用法¶
安裝後,通過以下命令驗證守護進程狀態:
bsk status --json
在 Windows 上檢查進程層級:
Get-CimInstance Win32_Process -Filter "Name='bsk.exe'" | Select-Object ProcessId, ParentProcessId, CommandLine
在 macOS/Linux 上:
pgrep -fl 'bsk daemon start --foreground'
查看日誌:
Get-Content "$env:USERPROFILE\.bsk\daemon.log.*" -Tail 20 # Windows
tail -n 20 ~/.bsk/daemon.log.* # macOS/Linux
預期結果:一個守護進程,其父進程爲 DSH 主進程,監聽迴環端口(默認 52800),且 daemon.json 中包含 sock_path 與 host_managed: true。
測試生命週期:
# 在插件背後重啓守護進程,插件應在幾秒內將其拉回
bsk daemon stop --json
Start-Sleep 5
bsk status --json
適用場景與注意¶
- 適合需要在沙箱中安全使用 BrowserSkill 的開發者,尤其是 Windows 沙箱或 Linux
bubblewrap等限制子進程的場景。 - 插件以當前 DSH 進程的權限運行,安裝前建議查看源碼與許可證。
- 依賴 DSH 0.2.x(帶 bundle 支持)和 Node.js >= 22;與 Cordis plugin API 4.x(
ctx.effect、standard-schemaConfig)兼容;需要 BrowserSkill 0.3.x。
結尾¶
dsh-bsk-daemon 將守護進程的生命週期與 DSH 綁定,讓瀏覽器自動化能力在沙箱中更可靠地可用。安裝後,守護進程成爲 DSH 的子進程,隨主進程啓動、停止與重啓,避免權限與連接問題。更多細節可查閱目錄頁與 GitHub 倉庫。