DeepSeek Harness 權限規則引擎:dsh-permissions

在 DeepSeek Harness(DSH)的使用場景中,精細控制工具調用和文件訪問範圍是保障環境安全的關鍵。DSH 提供了基礎的沙箱和審批機制,但在處理特定路徑匹配、命令前綴攔截等場景時,往往需要更細粒度的策略。dsh-permissions 插件提供了一個面向 Claude Code 風格的權限規則引擎,通過可視化編輯器管理規則,滿足這種精細化的安全控制需求。

插件定位

dsh-permissions 是一個規則引擎插件,爲 DeepSeek Harness 提供權限控制能力。它支持四級規則優先級、全局與工作區作用域疊加,以及可視化草稿式編輯。所有規則持久化存儲,並在運行時注入系統提示,讓模型知曉當前的權限限制。

核心功能

四級規則優先級

規則分爲四個優先級,從高到低依次爲:hard > deny > ask > allow。
* hard 規則:具有最高優先級,即使會話處於“全訪問”審批姿態(策略爲 never),hard 規則依然生效且不可豁免。
* deny 規則:直接攔截操作。
* ask 規則:根據會話的審批策略決定是否放行。
* allow 規則:跳過本插件的詢問,直接放行。

作用域與匹配

  • 作用域疊加:支持 global 全局規則和 workspace 工作區規則疊加。當兩者衝突時,deny 規則永遠勝出。
  • 通配符匹配:針對文件類工具(read/write/edit/glob/grep/read_image),支持路徑通配符匹配。例如,write(*.pem) 匹配以 .pem 結尾的路徑,write(.ssh) 匹配路徑中任意位置的 .ssh 片段(不區分大小寫,統一處理斜槓)。
  • 非文件工具:非文件工具按首參原文做前綴匹配;grep 工具額外匹配其 path 參數。

持久化與透明度

  • 規則存儲於 Harness 的 settings.yaml 中,重啓後保留。
  • 生效的規則會被注入到系統提示中(標記爲 [active-permission-rules]),模型可見完整規則原文,以便調整行爲。

可視化編輯器

插件提供瀏覽器端的設置頁面,支持草稿式編輯。所有修改在點擊“保存並應用”前不會生效,用戶可以隨時“放棄修改”恢復上次保存的狀態。內置 16 條安全默認值(hard 規則),保護 .ssh、.aws、.gnupg、AppData、.pem、.key、.env、.htpasswd 目錄及 deny: pwsh(rm -rf *) 命令。

安裝與啓用

使用官方安裝器進行安裝。

dsh plugin add dsh-permissions

安裝完成後,重啓應用。在設置頁面中會出現“權限”選項,點擊即可進入可視化編輯器。

典型用法

通過命令或文件操作工具的攔截示例如下:

攔截命令工具

pwsh: 攔截該工具的全部調用
pwsh(npm run): 首參以 npm run 開頭

攔截文件寫入

write(*.pem): 文件路徑以 .pem 結尾
write(*secret*): 文件路徑包含 secret
write(.ssh): 路徑任意位置出現 .ssh 片段
write(C:\users\*): 絕對路徑前綴

適用場景與注意

適用場景:
* 需要限制 AI 只能操作特定目錄或文件類型的開發者。
* 希望攔截危險命令(如 rm -rf *)或特定前綴命令的場景。
* 需要在工作區級別強制執行安全策略的情況。

注意事項:
* 安全邊界:插件只會收窄現有沙箱或審批姿態,絕不繞過 DSH 沙箱或 tools.guard 守衛。
* 錯誤反饋:當規則攔截操作時,會以工具錯誤的形式呈現給模型(例如 Error: 權限規則拒絕... 或 硬規則拒絕(高於 full access,不可豁免)...)。
* 設置端點:設置頁面的路由是插件自建的端點,未暴露在 DSH api-proxy 的 settings 白名單中。
* 草稿機制:所有修改均先進入草稿態,必須手動保存並應用才能對 AI 行爲產生實際影響。

總結

dsh-permissions 爲 DeepSeek Harness 提供了一套從全局到工作區的、可視化的權限管理方案。它通過嚴格的優先級設計和通配符匹配,讓開發者能夠以極低的成本構建細粒度的安全策略,同時保持與 DSH 沙箱機制的兼容性。

GitHub 倉庫 | 插件目錄

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

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

小夜