dsh-gpt-perm-strip:移除 GPT 系列模型多餘 sandbox 權限字段的 DSH 插件

前言

DSH 支持以插件方式擴展工具調用行爲。下面介紹一個社區插件:dsh-gpt-perm-strip

在 DSH 中,工具調用參數可能包含 sandbox_permissionsjustification。DSH 對 sandbox escalation 的要求是:這些權限字段必須嚴格寬於當前會話。相同或更窄的字段會直接失敗,例如:

sandbox escalation to "danger-full-access" is not strictly wider than this call's current "danger-full-access" mode

GPT 系列模型有時會在當前會話已有相應權限時,仍發送這些字段。dsh-gpt-perm-strip 是一個僅針對 GPT 系列模型運行的 DeepSeek Harness 插件,它在工具執行前移除不嚴格寬於當前會話的 sandbox_permissions / justification

這是什麼

dsh-gpt-perm-stripFengLingYaaa 維護,包名爲 dsh-gpt-perm-strip,許可證爲 MIT,倉庫版本爲 0.1.0

它解決的是 GPT 系列模型在工具調用中攜帶“非升級型”sandbox 權限字段時,觸發 DSH sandbox escalation 檢查失敗的問題。插件只處理 GPT 系列模型,不改變非 GPT 模型的權限參數。

核心功能

下面是該插件已覈實的行爲邊界。

  • model id 而不是 provider 匹配 GPT 系列模型。README 中給出的匹配示例包括 gpt-4ogpt-5.6-solchatgpt-4o-latestopenai/gpt-4.1ft:gpt-4o:…
  • 在 DSH sandbox escalation check 前,移除不嚴格寬於當前會話的 sandbox_permissions / justification
  • 保留真實權限升級,例如從 workspace-writedanger-full-access,以及從 read-onlyworkspace-write
  • 通過 includeOpenAiReasoningo1 / o3 / o4 視爲 GPT 系列;該配置默認開啓。
  • 除非配置 extraModelPatterns,否則忽略 Grok 和 DeepSeek。
  • 由於 tools/pre-execute 不能重寫凍結參數,插件包裝每個工具的 execute,並傳入移除多餘字段後的克隆參數對象。
  • permission / permissions 只有在值爲已知 sandbox mode 時,才被視爲 sandbox 字段。
  • 持久 tool/call 記錄仍會顯示模型最初輸出的內容;插件隻影響執行前進入 DSH 檢查的參數對象。

安裝與啓用

插件運行環境要求 Node >=22,可選 peer dependency 爲 @deepseek-ai/cordis >=4.0.0

如果從 GitHub 安裝,先執行下面命令。該命令會把指定 GitHub 倉庫作爲 DSH 插件添加到 web profile:

dsh plugin --profile web add github:FengLingYaaa/dsh-gpt-perm-strip

如果本地查看源碼或做改動,可以按下面步驟安裝:

git clone https://github.com/FengLingYaaa/dsh-gpt-perm-strip.git
cd dsh-gpt-perm-strip
pnpm install
pnpm test
pnpm build
dsh plugin --profile web add .

注意:該插件會在當前 dsh 進程內包裝工具執行邏輯。安裝前應檢查源碼、依賴和許可證。本文給出的信息以倉庫資料爲準。

配置

下面是 README 中給出的默認配置。

字段 默認值 含義
includeOpenAiReasoning true o1 / o3 / o4 視爲 GPT 系列
extraModelPatterns [] providermodelprovider/model 追加正則匹配
injectPrompt true 爲 GPT 系列相關運行上下文注入提醒
logStrips true 將每次移除記錄爲 [gpt-perm-strip] stripped …

默認情況下,Grok 和 DeepSeek 會被忽略;只有添加 extraModelPatterns 後,纔可能納入額外模型。

典型行爲

下面是同一插件在不同會話權限下的結果。

當前會話權限 GPT 工具參數 結果
danger-full-access sandbox_permissions: danger-full-access 移除,調用繼續
workspace-write sandbox_permissions: workspace-write 移除
workspace-write sandbox_permissions: danger-full-access 保留,屬於真實升級
read-only sandbox_permissions: workspace-write 保留,屬於真實升級
非 GPT 模型 任意權限字段 保持不變

也就是說,插件只移除“相同或更窄”的 sandbox 權限字段;如果字段代表從當前會話到更高權限的升級,則保留給 DSH 的 escalation 檢查處理。

適用場景與注意

適合以下場景:使用 GPT 系列模型,當前 DSH 會話已經具備某些 sandbox 權限,且模型仍會發送 sandbox_permissions / justification。它可以幫助避免相同權限字段觸發 escalation 失敗,同時保留真實升級。

需要注意:

  • 它只針對 GPT 系列模型,不處理 Grok、DeepSeek,除非通過 extraModelPatterns 顯式擴展。
  • 它不會改寫模型輸出本身;持久 tool/call 記錄仍會顯示模型最初輸出的內容。
  • 它是社區插件,不是 DeepSeek 或幻方官方應用商店中的官方應用;安裝前建議自行審查源碼。
  • DSH 的插件機制允許擴展工具調用行爲,但權限清理仍應放在可審計的配置與源碼範圍內。

結尾

dsh-gpt-perm-strip 的作用範圍較小:它只在 GPT 系列模型執行工具調用前,移除不嚴格寬於當前會話的 sandbox_permissions / justification,從而減少因相同或更窄權限字段導致的 escalation 失敗,同時保留真實權限升級。

GitHub 倉庫:https://github.com/FengLingYaaa/dsh-gpt-perm-strip

社區目錄頁:本次已覈實資料未提供可直接列出的目錄頁 URL;可按插件名 dsh-gpt-perm-strip 在 DSH 社區目錄中檢索。

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

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

小夜