dsh-tools-toggle:在 Web Settings 一鍵開關 DSH 模型工具

前言

DeepSeek Harness(DSH)會給智能體掛上一套固定的工具面:預設、插件帶來的 bash、web_search、web_fetch 等都會進入每次請求。工具越多,提示裏佔的 token 越多,模型也越容易去碰未必需要的工具。若只想做一段離線會話、收窄任務範圍,或做一次「關掉某個工具是否更好」的對比,過去往往要手改 profile patch 再重啓。

下面介紹 pinion05 維護的客戶端插件 dsh-tools-toggle(npm 包名 @npmc_5/dsh-tools-toggle,版本 0.1.0,MIT 許可證)。它在 DSH Web 的 Settings → Tools 裏爲繼承來的工具提供開關;關掉後工具會從模型視角整體消失——不僅是不能執行,連 schema、描述和 lookup 都不會再出現,從而省掉相關 token。

這是什麼

dsh-tools-toggle 是掛載在 DSH Web 設置頁的插件,分類屬客戶端(platform: web)。維護者爲 pinion05。它解決的是:在不手改配置文件的前提下,用 UI 維護一份「禁用工具」列表,並在新建智能體時通過 dsh-tools 的 restrict 機制生效。

核心功能

Settings 裏的工具目錄

插件在原生 Settings → Tools 增加一節,列出當前 profile 下繼承來的全部工具(含 preset-plane 工具)。每一行顯示名稱、一行描述,並提供搜索框和「僅顯示已禁用」篩選。界面支持韓語與英語 locale。

配置持久化

切換開關會向插件 host 路由 POST,由 settings 服務把 deny 列表寫入插件 Loader 配置項,並落到 profile patch 的用戶層,升級後仍保留。寫入串行化,避免快速連點疊在過期配置上;讀取會等待未完成寫入(read-your-writes)。

通過 restrict 隱藏工具

Host 側在每個智能體創建時調用一次 agent.ctx.tools.restrict({ deny })。被禁用的工具會同時失去 schema、lookup 與執行能力;模型側不再「知道」該工具存在。若模型仍猜測工具名調用,會收到乾淨的 UNKNOWN_TOOL 拒絕。

這一時機與 prefix cache 有關:restriction 會改寫面向模型的工具數組(屬於請求前綴的一部分),若在進行中的會話裏改 deny 列表會破壞 provider 的 prefix 緩存,因此只在創建智能體時應用,運行中的會話 deliberately 不改動。

  • 新會話(含新 subagent)採用當前開關狀態。
  • 已有會話保持原有工具面與緩存,直到自然結束。
  • Host 重啓後以新 agent 恢復會話時,會應用重啓前做過的開關變更(伴隨一次不可避免的 re-prefill)。

設計上不會誤傷的部分

  • 與作用域相關的內部機制默認不可切換(例如 subagent 委託的結構化輸出管線、保留的 PTC run_code 傳輸),多智能體流程可繼續跑。
  • 開關狀態在 UI 配置裏,即便全部關掉,Settings 頁仍可用,可隨時恢復。
  • 禁用 bash、read、write、edit 時會彈出一次性確認對話框。

安裝與啓用

插件爲純 ESM,無構建步驟;peer 依賴(cordis、dsh-tools、dsh-host-webserver 等)從 DSH 安裝樹解析。engines.dsh 要求 >=0.2.0-rc.1 <0.3.0-0。

官方 README 給出的安裝步驟如下:

git clone https://github.com/pinion05/dsh-tools-toggle.git
dsh plugin --profile web add ./dsh-tools-toggle

執行後刷新 DSH Web,打開 Settings → Tools。

典型用法

  1. 完成上述安裝並刷新 Web 端。
  2. 若目錄爲空,先按提示開啓一次會話——工具名稱來自 live agent 的快照,首個會話前頁面會提示需要 session。
  3. 在 Settings → Tools 搜索或篩選工具,將不需要的項關閉;對核心讀寫/終端類工具按提示確認。
  4. 新建會話(或新建 subagent)後,被禁工具不再出現在模型請求中;要恢復則重新打開開關並再開新會話。

說明:當前爲 profile 級 單一 deny 列表,不支持按會話覆蓋;重新啓用屬於策略放寬,僅通過 UI 操作,不提供 agent 側工具。

適用場景與注意

適合誰: 需要在不刪插件、不改手寫 patch 的前提下臨時縮小工具面;做離線或減噪會話;對比某工具是否值得保留的開發者。

侷限(README 明示):

  • 僅對新會話生效,進行中的對話不會因切換而變——這是 prefix-cache 保護,不是缺陷。
  • 工具目錄依賴至少一次會話才能完整展示。
  • 無 per-session 覆蓋(後續可能擴展)。

安全與權限: 插件以當前 DSH 進程權限運行,配置寫入本機 profile。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,自行確認是否符合環境要求。社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;DSH 生態奉行「一切皆插件」,本插件爲社區貢獻,非官方應用商店條目。

結尾

dsh-tools-toggle 把「關掉某些繼承工具」收成 Web 設置裏的一鍵操作,並通過創建時 restrict 讓禁用結果同時作用於 schema、查找與執行。需要試用時,可從社區目錄頁或 GitHub 獲取倉庫,按官方命令裝入 web profile 後,在 Settings → Tools 管理 deny 列表,並以新會話驗證效果。

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

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

小夜