dsh-trash:DeepSeek Harness 回收站插件

DeepSeek Harness (DSH) 的插件化架構允許 Agent 獲取最高權限(如 danger-full-access)。當模型執行 Remove-Item、rm、del 等刪除命令時,通常意味着永久性破壞,缺乏安全回退機制。dsh-trash 插件通過攔截刪除操作,將其轉換爲可恢復的移動操作,爲 Agent 提供誤刪保護。

這是一個由 LeonSone 維護的 DSH 插件,核心價值在於將所有刪除行爲納入一個可恢復的垃圾存儲區。它支持 pwsh、bash 和 run_code 工具,默認回收站位置爲 $DSH_HOME/trash,零運行時依賴。

核心功能

  • 攔截刪除命令:在 pwsh、bash 和 run_code 工具的 tools/pre-execute 階段攔截 Remove-Item、rm、del、rd、unlink、fs.unlink、os.remove、shutil.rmtree 等命令,拒絕執行並引導使用回收站工具。
  • 提供回收站工具:提供 trash、trash-list、trash-restore、trash-purge 四個工具。
  • 默認路徑:回收站位置默認爲 $DSH_HOME/trash,每個條目包含 data/(保留原文件名)和 meta.json(記錄原路徑、時間戳、大小)。
  • 跨卷支持:支持跨卷移動,若無法重命名則自動降級爲複製。
  • 零依賴:僅使用 Node.js 內置模塊,無額外運行時依賴。

安裝與啓用

使用官方安裝命令添加插件:

dsh plugin --profile web add github:LeonSone/dsh-trash

安裝後需重啓 dsh web 或 headless runner 以加載插件。

典型用法

插件加載後,模型行爲自動改變:

  • 移入回收站:調用 trash(paths=[...]) 將文件/目錄移動到回收站。
  • 查看回收站:使用 trash-list(path?) 列出條目(支持路徑過濾)。
  • 恢復文件:使用 trash-restore(entry_id=...) 或 trash-restore(path='...') 恢復。
  • 永久刪除:唯一真正刪除的路徑是 trash-purge(confirm: true)。

適用場景與注意事項

  • 安全策略:插件採用 Fail-safe 設計,傾向於誤報(攔截包含刪除命令的字符串)而非漏報,防止真實刪除發生。短別名(如 rm、del)僅在命令位置匹配,cat /tmp/rm 等場景不會被攔截。
  • 覆蓋保護:恢復文件時若目標存在,會先將目標備份到回收站,確保無數據丟失。
  • 運行權限:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

總結

dsh-trash 通過攔截標準刪除命令並提供 trash-purge 作爲唯一齣口,爲 Agent 提供了安全刪除的兜底機制。更多細節與源碼請查閱:GitHub。

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

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

小夜