前言¶
在 DeepSeek Harness (DSH) 的開發中,智能體經常需要調用文件系統工具。直接使用 del、rm 或 Remove-Item 等命令會導致文件永久丟失,難以恢復。即使使用 sdelete 或 shred 等安全擦除工具,也容易造成不可逆的破壞。該插件通過攔截破壞性命令,強制刪除操作走系統回收站,並在空間不足時暫停執行。
插件簡介¶
該插件名爲 dsh-plugin-recycle-bin,由開發者 Xylocarpro 維護,屬於 admin-security 類別。它運行在 Windows 平臺,通過依賴 DSH 宿主提供的 @deepseek-ai/* 運行時工作。其核心價值在於爲智能體提供了一個“安全刪除”的兜底機制。
核心功能¶
- 強制刪除走回收站:提供
file_trash工具,調用Microsoft.VisualBasic的SendToRecycleBin方法,確保文件進入回收站。 - 攔截磁盤刪除命令:攔截
del、rm、Remove-Item、erase、rd、rmdir、deltree、find -delete、unlink等命令。 - 攔截安全擦除命令:攔截
sdelete、shred、srm、cipher /w、wipe等試圖永久擦除數據的命令。 - 攔截清空回收站:禁止執行清空回收站的命令。
- 容量不足停手:刪除前檢查剩餘空間,若低於閾值則停止操作並詢問用戶。
- 查看回收站狀態:提供
trash_status工具,用於查看回收站容量和支持情況。 - 注入安全提示:向系統提示注入
safety:recycle-bin區段,引導模型正確使用工具。
安裝與啓用¶
使用 DSH 插件管理器導入發佈包,並在配置中啓用插件。示例配置如下:
# cordis.patch.yml
- insert:
- id: recycle-bin
name: 'dsh-plugin-recycle-bin'
config:
enabled: true
blockDestructiveCommands: true
forbidEmptyRecycleBin: true
forbidWipe: true
minFreeBytes: 104857600
reserveBytes: 52428800
典型用法¶
插件主要提供兩個工具接口:
- file_trash:用於刪除文件或目錄。
file_trash(paths: ["C:\\Project\\draft.md", "C:\\Project\\old-temp"])
返回值可能爲 `deleted`、`skipped`、`blockedFull` 或 `message`。
- trash_status:用於查看指定路徑的回收站狀態。
trash_status(path: "C:\\Project")
適用場景與注意事項¶
適用場景:需要嚴格控制智能體文件操作權限,防止誤刪或惡意清空數據的 Windows 環境開發。
注意事項:
1. 平臺限制:僅支持 Windows 平臺,依賴 Microsoft.VisualBasic。
2. 環境依賴:依賴 DSH 宿主解析提供 @deepseek-ai/* 運行時。
3. 已知邊界:持久 shell 會話、PTC/run_code 直接調用、第三方工具可能繞過攔截。
4. 許可證:MIT 許可證。