DeepSeek Harness (DSH) 的默认沙箱通常允许 Agent 运行命令(如 bash 或 pwsh)来读写文件或访问网络,这增加了失控的风险。在开发或调试智能体时,需要一种机制在关键操作发生前确认意图。下面介绍一个插件,它会在选定的工具执行前强制暂停并等待用户明确的批准或拒绝。
是什么¶
这是一个 DeepSeek Harness 插件,由 J0ss077 维护,属于工作流类别。它的作用是在 Agent 调用配置列表中的工具时,强制暂停并等待用户明确的批准或拒绝,防止未经授权的命令执行。
核心功能¶
- 审批拦截:拦截选定的工具,在执行前等待用户批准。
- 默认监控:默认监控列表包含
bash和pwsh。 - 单次审批:每次调用都需要单独审批,批准一次不等于获得授权。
- 子代理转发:将子代理的审批请求转发到顶层会话,由主会话用户统一决策。
安装与启用¶
使用 web 配置文件安装插件(该配置默认包含审批服务):
dsh plugin --profile web add @j0ss077/dsh-always-require-tools-approval
安装后需重启 DSH GUI。如果使用其他 Profile,需确保该 Profile 已配置审批服务。
典型用法¶
- 编辑配置文件
~/.dsh/settings.yaml,添加或修改tools列表:
always-require-tools-approval:
tools: ["bash", "pwsh", "node"]
- 当 Agent 调用
bash时,流程会暂停,提示:
Approve this tool execution? - 选择 Approve 则执行该次调用;选择 Reject 则拒绝并通知 Agent。
适用场景与注意¶
- 适用场景:需要严格控制 Agent 执行 Shell 命令或敏感工具的场景,如调试复杂的自动化脚本。
- 安全模型:采用“一次一票”机制,批准一次仅对应一次执行。如果拒绝或没有审批渠道,工具将被拒绝(Fail closed),不会自动批准。
- 未监控工具:不在监控列表中的工具不受影响,由下一个插件处理。
- 前置要求:需确保使用的 DSH Profile 配置了审批服务(如 web profile),且 Node.js 版本需 >= 22.19。
- 权限说明:插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
结语¶
通过这个插件,可以将 Agent 的命令执行权收归用户控制,在安全性和灵活性之间建立一道明确的审批关卡。更多细节请查阅项目仓库与插件目录。