DeepSeek Harness (DSH) 采用插件化架构,允许用户通过配置文件扩展功能。在某些场景下,开发者需要 GPU 访问权限以运行模型推理,但又必须严格限制对文件系统的写入操作。dsh-full-with-approval 插件通过引入“全计算访问 + 写入审批”的混合模式,填补了这一空白。
插件简介¶
由 zjuhbh 维护的 DSH 配置文件插件。它不修改 DSH 核心包,而是通过挂载层引入第四个权限预设 full-with-approval。其核心价值在于:在保持 danger-full-access 沙箱模式(支持 GPU、网络、设备)的同时,对工作区外的写入或对受保护文件的写入增加了一次性审批机制。
核心功能¶
- 全计算访问:激活该预设后,会话沙箱模式为
danger-full-access,进程运行无限制,CUDA、GPU、设备及网络访问均不受阻。 - 写入操作审批:当执行
write或edit操作时,如果目标是工作区外文件或工作区内受保护文件(默认为.git/**、.env*),系统会通过交互式提示请求一次性审批。未通过或取消审批则操作失败。 - Shell 修改审批:通过
bashGuard启发式规则,检测 shell 命令中是否有修改文件外部的证据(如重定向>,chmod,rm,python -o等)。仅包含读取操作(如cat,ls)的命令可无提示执行。 - 非侵入式设计:插件通过
cordis.patch.yml挂载,不影响 DSH 核心代码。
安装与启用¶
在 DSH profile 目录下执行以下命令安装:
dsh plugin --profile web add ./dsh-full-with-approval
安装完成后,重启或刷新 Web UI 以加载插件。也可以使用绝对路径或 npm 包名进行安装。
使用方法¶
- 激活预设:在命令行输入
/permission full-with-approval,或在 Web UI 的权限选择器中选择“Full With Approval”。 - 执行操作:当尝试写入受保护文件或外部文件时,系统会弹出审批窗口。
- 切换预设:随时可以切换回
workspace-write、danger-full-access或read-only预设,审批机制随之生效。
配置项¶
通过覆盖 cordis.patch.yml 中的配置,可以调整受保护路径和审批规则:
- id: full-with-approval
config:
# POSIX 相对路径的通配符匹配,或绝对路径
protectedPaths:
- ".git/**"
- ".env*"
# 除了平台临时目录外,绝对路径的额外可写根目录(不会触发审批)
extraWritableRoots: []
# 是否启用 Shell 守卫层(默认 true)
bashGuard: true
# 强制触发审批的额外子字符串
extraBashTokens: []
已知限制与注意事项¶
- 图标缺失:Web UI 的图标来自核心客户端的值键表,插件新增的预设无法提供自定义图标。
- 代码执行不检查:
run_code/ code-mode 执行不被检查文件效应,仅检查原生write/edit和 shell 命令。 - 路径边界判定:使用规范路径进行比对,Windows 8.3 等符号链接别名可能导致边界判定具有建议性,内核层面的沙箱限制仍是权威。
- Shell 限制机制:Shell 写入受启发式限制而非内核限制,命令可通过动态路径构建、
cd后相对写入等方式规避检查。
该插件适用于需要在 DSH 环境中获得 GPU 能力但又必须严格管控文件写入权限的管理场景。使用前请务必检查源码与许可证。