dsh-plan-preset: 將 DSH Read-Only 映射爲 Plan 模式

前言

DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。在構建智能體工作流時,經常會遇到“調研階段”與“執行階段”權限需求不同的情況。DSH 原生的 Read-Only 預設雖然提供了基礎的安全保障,但在語義上不夠直觀,且無法強制阻斷權限升級申請。

這個插件旨在通過配置層的映射,將 DSH Web UI 中的 read-only 權限預設改造爲符合 OpenCode 風格的 Plan 模式。它不改變底層邏輯,而是通過 Cordis Patch 機制,統一了工作流的權限表現與審批策略。

這是什麼

這是一個名爲 dsh-plan-preset 的 DSH 插件。

  • 核心功能:把 DSH Web UI 的 read-only 權限預設映射爲 opencode 風格的 Plan 模式。
  • 維護者:23aisfvb
  • 分類:admin-security
  • 許可證:MIT

它解決的問題是:如何在保持 DSH 原有架構不變的前提下,通過簡單的配置變更,實現“只讀調研”與“計劃模式”的語義隔離,並杜絕無授權的權限越級。

核心功能

插件生效後,權限預設將發生以下變化:

  1. 顯示名稱:Web UI 的訪問模式控件將顯示爲 “Plan”(圖標保持盾牌樣式,原名稱 “Read Only” 被覆蓋)。
  2. 文件操作:只讀。允許讀取文件,但拒絕寫入、刪除或修改文件。
  3. 網絡搜索:可用。文件沙箱限制與網絡搜索功能解耦,即便處於只讀模式,Agent 依然可以使用網絡搜索能力。
  4. 權限申請:禁止。審批策略被設置爲 never。這意味着任何權限升級請求都會被自動拒絕,且拒絕即最終結果。

安裝與啓用

安裝過程涉及本地依賴配置與依賴安裝,請按順序執行。

  1. 修改 profiles/web/package.json:

    • 在 dependencies 字段中添加:"dsh-plan-preset": "file:E:/agent/deepseek_harness/Plugins/dsh-plan-preset"
    • 在 dsh.profile.bundles 字段中添加:"dsh-plan-preset"
  2. 進入插件目錄並安裝依賴:

    cd profiles/web && pnpm install
  1. 重啓 DSH Web 服務:
    dsh web

典型用法

安裝並重啓服務後,可以通過以下方式驗證配置或使用該模式。

驗證配置:
運行以下命令查看配置輸出,確認 permission 行已被覆蓋:

dsh --profile web --dump-config

在輸出中,應能看到 permission 行包含 read-only.name=Plan 以及 approval=never。

工作流實踐:
1. 啓動 Agent,默認處於 Plan 模式。
2. Agent 進行問答與文件調研,利用網絡搜索輔助分析,但無法修改任何文件。
3. 當 Agent 產出最終計劃或調研結論後,用戶手動切換權限模式(例如切換至 Full Access)。
4. Agent 獲得完整權限,開始執行具體的寫文件操作。

適用場景與注意

  • 實現原理:這是一個純組合補丁,不包含任何運行時代碼。它通過 cordis.patch.yml 覆蓋了 dsh-base 中的 permission 行配置,其餘預設(如 workspace-write)不受影響。
  • 升級兼容性:Cordis 的 Patch 機制採用整行覆蓋。如果 DSH 主程序升級,導致默認的 permission 行預設發生變化(例如新增了其他預設或調整了字段),本插件的配置可能會被新的默認配置遮蔽。建議在 DSH 升級後,務必運行 dsh --profile web --dump-config 進行覈對。

總結

dsh-plan-preset 是一個輕量級的配置補丁插件。它不依賴複雜的運行時代碼,僅通過修改配置映射,即可幫助團隊在 DSH 中建立更清晰的工作流權限體系。對於需要嚴格區分“調研/計劃”與“執行”階段的智能體開發場景,該插件提供了一個標準化的解決方案。

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

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

小夜