dsh-approval-first:DeepSeek Harness 先批准後編輯插件

前言

在 DeepSeek Harness (DSH) 中,當沙箱策略拒絕一次寫入操作時,模型通常需要發送第二次調用,並在請求中攜帶 sandbox_permissions 和 justification,用戶才能看到批准卡片。這種機制導致輪次浪費,且模型必須重複工具調用邏輯。

dsh-approval-first 插件通過影子工具機制,在沙箱策略拒絕寫入之前,直接向用戶展示批准卡片。這使得模型無需重複調用工具,用戶也能在第一次看到請求時進行審查。

插件介紹

定位:DeepSeek Harness (DSH) 插件,用於實現“先批准後編輯/寫入”的安全控制。

維護者:joao-paulo-santos

核心價值:攔截模型意圖,在策略允許前進行人工介入,減少模型無效重試,提供更清晰的審查對象(diff 而非模型生成的 prose)。

核心功能

  1. 影子工具攔截
    插件通過影子工具在模型重複調用前添加一個批准步驟。如果模型嘗試執行一個會被當前沙箱策略拒絕的突變,系統會先展示批准卡片,而不是讓模型發送帶有 sandbox_permissions 的第二次調用。

  2. 靜默與彈窗區分

    • 在策略內的寫入:保持靜默,行爲與 DSH 原生工具一致。
    • 在策略外的目標:獲得批准卡片,用戶首次看到請求。
  3. “先讀”門控
    系統檢查“先讀”門控。如果已發佈的 edit 工具會拒絕一個從未被讀取的文件(例如 edit requires reading "..." first),插件會自動退讓,讓模型走原生路徑並直接獲得 harness 的錯誤提示,避免浪費批准卡片。

  4. 漂移感應器
    由於影子工具是基於凍結副本工作的,插件在啓動時會進行校驗。如果 DSH 更新導致底層 edit 或 write 工具定義發生變化,漂移感應器會拒絕插件啓動,防止提供過時的行爲。

安裝與啓用

該插件需要在一個 DeepSeek Harness 的檢出目錄下安裝,並指定一個 profile(例如 web)。

  1. 克隆倉庫:
    git clone https://github.com/joao-paulo-santos/dsh-approval-first
  1. 從 Harness checkout 目錄安裝插件:
    pnpm dsh plugin --profile web add /path/to/dsh-approval-first
  1. 驗證配置組合成功:
    pnpm dsh --profile web --dump-config

安裝後,插件會自動激活,無需額外的配置文件。它適用於任何模式不是 danger-full-access 的會話。

工作原理

  • 註冊機制:影子工具註冊在代理(agent)級別,並跟隨會話的當前模式。在會話中途切換模式(例如從 read-only 切換到 workspace-write)時,影子工具會立即生效或停用。
  • 審查對象:批准卡片上顯示的審查對象是 diff(差異),而不是模型生成的文本描述。
  • 拒絕處理:如果用戶拒絕批准,結果是一個正常的拒絕結果(edit rejected by the user; file unchanged),而不是紅色的錯誤。

適用場景與注意事項

適用場景:
* 需要在沙箱限制下嚴格審查模型對文件系統的寫入操作。
* 希望在第一次嘗試寫入時獲得用戶批准,而不是等待模型重試。

注意事項:
1. 過渡性存根:該插件目前是一個過渡性存根,預期未來會被 DSH 原生的一輪升級機制取代。
2. 作用範圍:僅影響 edit 和 write 工具。Bash 命令保持其經典升級路徑。
3. 插件衝突:如果另一個插件已經爲某個代理影子了 edit 或 write 工具,該代理會被跳過,避免影子工具衝突。
4. 啓動條件:插件要求 profile 的默認模式不是 danger-full-access,否則不會激活。
5. 許可證:MIT 許可證。

總結

dsh-approval-first 通過在 DSH 生態中引入影子工具機制,優化了受限沙箱環境下的審批流程。它減少了模型的無謂重試,將審查對象聚焦於代碼差異,並在插件底層工具定義發生變化時提供保護。

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

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

小夜