前言¶
在 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 许可证。