前言¶
在 DeepSeek Harness(DSH)里,插件可以扩展智能体的工作方式。对编码类任务来说,风险常常不在于“能不能跑命令”,而在于连续改文件、改代码、跑验证时,缺少明确的任务边界、审批记录和可回查的证据。
dsh-safe-workflow 是一个独立的 DSH 插件,用于让编码工作流更受控、更可验证:它会在模型调用工具前加入策略检查,并在执行过程中留下任务合同、审批、检查点和验证记录。
下面介绍它的能力、本地安装方式、一个典型用法,以及它不是沙箱的限制。
这是什么¶
dsh-safe-workflow 是一个 DeepSeek Harness 插件,维护者是 cnwutianhao,许可证为 MIT。
它的目标不是替代 DSH 的沙箱,而是在 DSH 工作流中加入更明确的约束:任务合同、路径规则、审批门、检查点、验证记录和尽力而为的文件快照。
核心能力¶
插件向模型暴露一个工具:safe_workflow。它支持以下操作:
start:创建任务合同;status:查看当前活动合同;checkpoint:对选定工作区状态做快照;restore:恢复某个检查点;verify:运行验证命令并记录输出;close:关闭合同。
插件还会安装两个 DSH 原生策略监听器:
tools/pre-execute:在变更类工具执行前检查路径规则,并请求审批;tools/execute:在变更发生前创建自动的、尽力而为的检查点。
插件会把状态写入当前会话工作区下的 .dsh-safe-workflow/ 目录:
.dsh-safe-workflow/
contract.json
audit.jsonl
checkpoints/
其中:
contract.json:保存活动任务合同和验证记录;audit.jsonl:以追加方式记录会话、工具和检查点证据;checkpoints/:保存检查点清单和复制的文件。
安装与启用¶
插件说明给出的安装方式是本地 DSH source checkout 插件安装,使用 PLUGIN_DIR 指向插件目录;未提供 npm registry 安装命令。
先完成插件构建,然后在 DSH checkout 中执行:
DSH_DIR=/path/to/deepseek-harness
PLUGIN_DIR=/path/to/dsh-safe-workflow
cd "$DSH_DIR"
pnpm dsh plugin --profile web add "$PLUGIN_DIR"
安装后,插件会出现在 DSH 插件列表中,并启用在 Web profile。你可以通过 DSH 插件列表或配置输出来确认。
典型用法¶
一个示例任务可以这样描述:
Start a safe workflow titled "Fix parser regression".
Goal: fix the parser regression without changing public APIs.
Acceptance checks: run npm test and npm run typecheck.
Only allow changes under src/ and test/.
Require approval before bash, write, edit, or str_replace_editor.
这里把任务目标、验收命令、允许修改的路径、需要审批的工具都写进合同。
实现完成后,可以让智能体运行 safe_workflow verify 执行验收;只有验收通过时,再运行 safe_workflow close 关闭合同。
当某个会修改状态的工具即将执行时,审批门会说明请求操作,由你选择批准或保持合同不变。
适用场景与注意¶
它适合希望给 DSH 编码任务增加显式边界的使用场景:限制路径、要求审批、留下验证和检查点记录。
需要特别注意:它是 workflow guard,不是进程沙箱。插件运行在宿主进程中,拥有宿主进程权限。它提供策略、证据和尽力而为的文件快照,但不承诺对任意 shell 副作用、网络操作、数据库或未包含在检查点中的文件做原子回滚。
如果用于生产环境,建议:
- 审查插件源码;
- 固定插件版本或 commit;
- 如需要,将
.dsh-safe-workflow/放在敏感仓库之外; - 保持 DSH 正常的沙箱和审批层启用。
参考¶
- 目录页:https://www.skillhub.cn/plugins/cnwutianhao/dsh-safe-workflow
- GitHub:https://github.com/cnwutianhao/dsh-safe-workflow