dsh-yolo-mode:爲 DSH 沙箱升權申請增加 LLM 自動審批

前言

在 DSH 的智能體會話中,會話從當前沙箱模式升級到更高權限時,通常需要人工審批。若每次都由人確認,流程會被頻繁打斷;若直接放開,又缺少判斷依據。dsh-yolo-mode 是面向這個場景的 DeepSeek Harness 插件:在審批策略爲 ask 且會話處於可介入的沙箱模式時,用大模型對升權申請做自動裁決,並把不確定或異常路徑回退爲拒絕或轉人工。

這是什麼

dsh-yolo-mode 由 SeverusZh 維護,許可證爲 MIT。

它的定位是:在 DSH 的 ask 審批環節加入一個 LLM-powered auto-approval 層,對 workspace-write 會話中的 danger-full-access / workspace-write 升權申請進行裁決,降低重複審批的人工成本,同時保留拒絕與轉人工路徑。

核心功能

下面按能力介紹。

在特定審批場景介入

插件只在以下條件下介入:

  • 審批策略爲 ask
  • 會話沙箱模式位於 modes 中,默認 modes 爲 ['workspace-write']

在這個範圍內,插件會對 danger-full-access / workspace-write 升權申請調用裁判模型。

內置預設

內置預設包括:

  • off
  • strict
  • balanced
  • permissive
  • yolo
  • custom

默認預設爲 balanced。插件不默認啓用 permissive 或 yolo。

自定義權限層級

levels 支持按目標模式設置策略,也支持通過 tools.<toolName> 對具體工具設置策略,並可配置 error 與 unsure 回退。

一個示例如下:

levels:
  workspace-write: judge
  danger-full-access: judge
  error: delegate
  unsure: delegate
  tools.pwsh: delegate
  tools.write: allow

這段配置把 workspace-write 和 danger-full-access 都交給裁判模型處理;當裁判出錯或不確定時轉人工;pwsh 工具轉人工;write 工具允許。

裁判提示詞

每個預設都有默認裁判提示詞。judge.systemPrompt 留空時,會按當前預設自動選用。

設置面板

插件提供設置面板「YOLO 審批」頁,可以在線修改:

  • 預設
  • 生效模式
  • 裁判模型
  • 層級表

審計日誌

每次裁決都會落一條 JSONL 審計日誌。狀態彈窗支持打開日誌,方便查看具體裁決記錄。

fail-closed

以下異常路徑不會直接放行:

  • 超時
  • 非法輸出
  • 模型不可用
  • 併發溢出

這些情況會回退爲拒絕或轉人工。

安裝與啓用

先安裝插件包。若從 npm 安裝,運行:

dsh plugin --profile web add dsh-yolo-mode

若從本地路徑安裝,運行:

dsh plugin --profile web add <項目絕對路徑>

插件聲明 Node.js 版本要求爲:

>=20

安裝後,如需覆蓋配置,先打開:

$DSH_HOME/profiles/web/cordis.patch.yml

然後按 id 覆蓋 yolo-mode 的 config。例如指定預設和裁判模型:

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    preset: balanced
    judge:
      provider: <provider>
      model: <model>

這裏 judge.provider 與 judge.model 需要同時非空,裁判模型纔會啓用。

經過上面的步驟,重啓 DSH 並刷新瀏覽器後生效。

安裝注意事項

  • 不要再用 - insert: 添加 yolo-mode 或 yolo-mode-bridge,否則啓動會報 duplicate loader entry id: yolo-mode。
  • 本地 link: 開發時,checkout 需位於 $DSH_HOME/profiles/ 下,或倉庫自帶 node_modules,否則可能報 ERR_MODULE_NOT_FOUND。

典型用法

使用默認預設

安裝後默認使用 balanced。如果只想先觀察審計日誌,可以暫不調整 preset。

指定裁判模型

在 cordis.patch.yml 中填入 provider 和 model。示例中的 <provider> 和 <model> 需要替換爲你當前 DSH 可使用的模型配置值:

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    preset: balanced
    judge:
      provider: <provider>
      model: <model>

按目標模式和工具細分策略

如果希望按目標模式和工具細分策略,可以在 yolo-mode 的 config 中提供 levels:

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    levels:
      workspace-write: judge
      danger-full-access: judge
      error: delegate
      unsure: delegate
      tools.pwsh: delegate
      tools.write: allow

這段配置把 workspace-write 和 danger-full-access 交給裁判模型,把 pwsh 轉人工,把 write 允許;裁判出錯或不確定時也轉人工。

適用場景與注意

適合:

  • DSH 會話中頻繁出現沙箱升權審批,希望用模型判斷替代部分人工確認
  • 需要保留拒絕、轉人工和審計日誌,而不是無審計地全部放行
  • 使用 web profile,並願意按 cordis.patch.yml 覆蓋插件配置

注意:

  • 插件作爲 DSH 插件在本地運行,會以當前 dsh 進程可獲得的權限工作。安裝前建議先檢查源碼、依賴和 MIT 許可證。
  • 它只在 ask 審批策略和指定 modes 下介入。
  • judge.provider 與 judge.model 需要同時配置,否則裁判能力不會啓用。
  • 本地 link: 開發路徑要滿足 Node 模塊解析要求,否則可能遇到 ERR_MODULE_NOT_FOUND。

鏈接

GitHub 倉庫:

https://github.com/SeverusZh/dsh-yolo-mode

社區目錄頁未列出具體 URL;如需檢索,可在 DSH 社區插件目錄中搜索:

dsh-yolo-mode
羽毛球分组比赛记分
小程序二维码

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

小夜