前言¶
在 DeepSeek Harness(DSH)里跑多阶段任务时,如果只在提示词里约定“先做 X,再做 Y”,检查点仍然依赖模型自觉遵守。dsh-stage-gate 把阶段验收做成模型可调用的工具:模型可以打开一个 stage gate、提交验收项、查看当前会话里所有 gate,并在必要时关闭 gate。
下面介绍这个插件的定位、能力、安装方式和注意事项。
这是什么¶
changingwang/dsh-stage-gate 是一个面向 DeepSeek Harness 的 stage-gate 治理插件,由 changingwang 维护,许可证为 MIT。
它注册四个模型可调用工具到 ctx.tools:
gate_opengate_checkgate_listgate_close
这些工具用于在同一 agent session 内做验收检查。状态保存在内存中,作用范围是当前 agent session;harness 重启后状态会重置。
核心能力¶
创建验收门¶
gate_open(gateId, title, stage?, items) 创建一个 stage gate,并带上验收清单,初始状态为 open。
检查验收项¶
gate_check(gateId, items) 对指定 gate 做验收检查。每个验收项可以使用 met、unmet 或 n/a,也可以附带 evidence。
查看当前会话里的 gate¶
gate_list() 列出当前 session 中的所有 gate,以及它们的生命周期状态。
关闭 gate¶
gate_close(gateId, reason?) 关闭指定 gate。关闭后,默认情况下再调用 gate_check 会被拒绝,除非设置了 allowReopen。
安装与启用¶
该插件要求:
- DeepSeek Harness
>=0.1.0-rc.5 - 模型 keys 已配置
- DeepSeek provider 已配置
- 仅用于 Web profile,因为这些工具是面向模型可见的
安装并启用步骤如下:
dsh plugin --profile web add dsh-stage-gate
dsh web
安装后,gate_open、gate_check、gate_list、gate_close 会作为工具暴露给模型。
典型用法¶
先创建 gate,再检查验收项,最后关闭 gate。工具签名如下:
gate_open(gateId, title, stage?, items)
gate_check(gateId, items)
gate_list()
gate_close(gateId, reason?)
gate_check 的 items 中每一项需要表达验收结果,可使用 met、unmet 或 n/a,也可以提供 evidence。
如果需要禁止关闭后的 gate 再次被 gate_check,可以在 profile 的 cordis.patch.yml 中覆盖配置:
- id: tool-stage-gate
config:
allowReopen: false
allowReopen 默认是 true。当设置为 false 时,对 closed gate 调用 gate_check 会抛出:
Error: gate "<id>" is closed
适用场景与注意¶
适合这些情况:
- 使用 DeepSeek Harness 的 Web profile
- 需要模型在多阶段工作中显式创建和检查验收门
- 只关心当前 session 内的验收状态
- 接受 gate 状态在 harness 重启后重置
需要注意:
- Gate 状态是 in-memory 的,按 agent session 作用域管理
- 该包故意不写自定义 session events
- 仅适用于 Web profile,工具是模型可见的
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证
- 许可证为 MIT © 2026 changingwang
资源¶
- 社区目录页:https://www.skillhub.cn/plugins/changingwang/dsh-stage-gate
- GitHub:https://github.com/changingwang/dsh-stage-gate