dsh-tool-guard:DeepSeek Harness 全局工具屏蔽與防護插件

前言

DeepSeek Harness (DSH) 採用插件化架構,但有時需要在宿主平面層面統一控制工具的可見性與調用權限,而無需依賴特定預設。dsh-tool-guard 正是爲此設計的全局工具屏蔽插件。它通過三層機制(呈現層過濾、執行層硬性否決、自我保護閘)實現這一目標,並提供 WebUI 編輯器以支持熱重載配置。

插件介紹

名稱:dsh-tool-guard
維護者:Tisitan
許可證:MIT

這是一個預設無關的全局工具屏蔽插件。它不綁定任何 preset,在統一的插件層按規則攔下不該被模型看見或調用的工具。插件包含呈示層過濾、執行層硬性否決、自我保護閘以及 WebUI 編輯器。

核心功能

  1. 預設無關的全局工具屏蔽:不依賴特定預設,在宿主平面進行統一攔截。
  2. 呈現層過濾:通過 system-prompt / assemble 機制,讓模型“看不見”被屏蔽的工具。
  3. 執行層硬性否決:通過 tools.guard 在調用真正到達時兜底拒絕。
  4. 自我保護閘:對 read / write / edit / bash 等核心工具提供保護,防止被屏蔽。
  5. WebUI 編輯器:提供 /dsh-tool-guard RPC 通道,支持通過圖形界面即時熱更配置。

安裝與啓用

  1. 克隆倉庫並安裝依賴:
git clone https://github.com/Tisitan/dsh-tool-guard.git
cd dsh-tool-guard
npm install
npm test
  1. 將倉庫路徑鏈接到 DSH 的 web profile:
    在 ~/.dsh/profiles/web/package.json 的 dependencies 中添加:
"dsh-tool-guard": "link:<絕對路徑>"

在同一文件的 dsh.profile.bundles 數組中追加:

"dsh-tool-guard"
  1. 安裝依賴並重啓 DSH:
    在 ~/.dsh/profiles/web 目錄下運行:
pnpm install

重啓 DeepSeek Harness。

配置方式

插件提供兩種配置路徑,語義完全一致,均支持熱重載。

1. WebUI 配置

啓動後,在 DSH Web 設置頁 →「工具屏蔽」卡片中操作。通過 /dsh-tool-guard RPC 通道進行讀寫,保存後即時生效。

2. 手動編輯 YAML

編輯 ~/.dsh/settings.yaml 中的 dsh-tool-guard.denyTools 數組。

注意:配置平面永不鎖死,修改保存後即會觸發熱重載更新。

注意事項

  1. Loader 來源限制:帶有 dsh.client 的插件在全局只允許一個 loader 來源。如果在 home 層掛載,必須移除 dsh.client 以避免雙 loader 來源導致啓動失敗。
  2. 保護閘不可屏蔽:read / write / edit / bash 由自我保護閘兜住,不可屏蔽也攔不掉。
  3. 日誌位置:日誌文件位於 $DSH_HOME/dsh-tool-guard.log 或 ~/.dsh/dsh-tool-guard.log(環境變量 DSH_TOOL_GUARD_LOG 可覆蓋)。
  4. 掛載方式:支持全局掛載(web profile bundle 單點掛載)和局部掛載(寫入特定 preset 的 agent.cordis.yml)。

參考資源

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

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

小夜