dsh-process-guard:防止 DSH 主機與瀏覽器被誤殺的進程防護插件

前言

DeepSeek Harness 的 Web GUI 運行在瀏覽器客戶端,底層服務器是 node 進程。智能體在執行任務時,常通過 shell 命令(如 Get-Process chrome | Stop-Process -Force)清理臨時進程。這種“按名稱批量殺進程”的模式極易誤傷 DSH 自身進程,導致 GUI 窗口消失、連接中斷,會話被標記爲 interrupted。dsh-process-guard 旨在攔截這些危險的命令模式,確保智能體只能通過顯式 PID 或受控的 PassThru 句柄來終止進程。

核心功能

此插件作爲 DSH 的一個 bundle,在 shell 工具調用執行前進行攔截檢查。

  1. 攔截危險模式:拒絕通過鏡像名稱、通配符、進程組或未過濾枚舉來終止進程的命令。這防止了智能體通過 taskkill /IM chrome.exe /F 或 killall chrome 等方式誤殺 DSH 服務器或瀏覽器。
  2. 保留安全操作:允許顯式指定 PID 的終止命令(如 Stop-Process -Id 42),也允許通過 -PassThru 獲取的進程對象調用 .Kill() 方法。
  3. 系統提示注入:自動貢獻一段簡短的系統提示,讓模型在生成代碼前就知曉該約束。
  4. 零依賴:插件本身沒有運行時依賴。

安裝與啓用

插件安裝通過 DSH 的 profile 管理工具完成。

dsh plugin --profile web add dsh-process-guard

安裝後,需要重啓 dsh web 使配置生效。可以通過以下命令確認 layer 已正確疊加:

dsh --profile web --dump-config   # 查找 "# == dsh-process-guard" layer

如果本地開發,也可以直接安裝目錄或 git URL,無需構建步驟:

# 安裝本地目錄
dsh plugin --profile web add /path/to/dsh-process-guard

# 安裝 git 倉庫
dsh plugin --profile web add git+https://github.com/CetOeil/dsh-process-guard.git

前置要求:當前 harness 的 dsh-tools 必須暴露 ctx.tools.guard() 方法。本插件已驗證與 dsh 版本 0.1.5-rc.3 兼容。

典型用法

插件通過拒絕或允許特定的命令模式來運行。

允許的操作:
* 直接通過 PID 終止:

    Stop-Process -Id 42
  • 通過 -PassThru 獲取並終止自己啓動的進程:
    $p = Start-Process chrome -PassThru
    # ... 其他操作
    $p.Kill()

拒絕的操作:
* 通過名稱批量終止:

    Get-Process chrome | Stop-Process -Force
  • 使用通配符或工具別名:
    taskkill /IM chrome.exe /F
    killall chrome
    pkill -f chrome

配置說明

插件默認配置是安全的,位於 cordis.patch.yml 中。你可以通過覆蓋該配置來調整行爲。

默認模式爲 deny(直接攔截)。若需改爲詢問模式,可在 profile 的 cordis.patch.yml 中添加配置:

- id: process-guard
  name: dsh-process-guard
  config:
    mode: ask                 # 'deny' (默認) 或 'ask'
    announce: true            # 是否添加系統提示
    enabled: true

主要配置項說明:

配置項 默認值 說明
mode deny deny 直接攔截命令;ask 將命令發送到審批流程。
enabled true 設置爲 false 可完全禁用檢查。
tools common shell tool names 需要檢查的 shell 工具名稱列表。
protectedImages cross-platform browsers + harness/terminal hosts 必須被保護的鏡像名稱列表。
safeFilterAllows false 默認拒絕通過 CommandLine 過濾器允許的命令。

注意:tools 和 protectedImages 會替換默認列表,使用 additionalTools 和 additionalProtectedImages 來追加。

適用場景與注意

此插件適合需要在瀏覽器環境中運行、且智能體可能需要清理臨時進程的 Harness 項目。它特別適用於使用 headless Chrome 或 Edge 進行自動化截圖驗證的場景。

注意:
* 插件以當前 DSH 進程的權限運行,因此必須確保 Harness 版本支持 ctx.tools.guard()。
* 使用 sudo killall 或 wmic 等命令也會被攔截。
* 該插件採用 MIT 許可證。

總結

dsh-process-guard 是一個針對 DSH 生態的安全加固插件。它通過在 shell 工具層面對命令進行預檢,解決了智能體因“殺錯進程”導致會話中斷的常見痛點。配合 dsh 0.1.5-rc.3 及以上版本使用,可以顯著提升智能體在複雜環境中的穩定性。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜