前言¶
在 DSH 里让智能体「改完代码再验一遍」,常见做法是口头约定:跑测试、看文件、对一下 HTTP。模型往往会跳过步骤,或把「大概过了」写成结论,难以和 CI 一样用退出码收口。
dsh-verify-gate 把独立项目 verify-gate 包装成 Agent 工具 verify_run:用 TOML 清单声明要查什么,执行后返回结构化报告,并按 exit 0/1/2 做门禁。下面介绍它是什么、怎么装、怎么用。
这是什么¶
dsh-verify-gate 由维护者 LosEcher 发布,在 SkillHub 插件目录 中归类为「工作流」。插件通过 Cordis patch 向 DSH 注入工具 verify_run,底层调用本机 verify-gate 二进制,按清单机械执行断言,而不是让模型自由发挥验证流程。
核心功能¶
verify_run 支持两类入参(二选一):
manifest:指向磁盘上的 TOML 清单路径manifestText:内联 TOML 文本
cwd 指定断言的基准工作目录。清单里可按类型配置检查项,README 中列出的类型包括:
| 类型 | 作用(据 README) |
|---|---|
file |
路径存在、内容包含、regex |
cmd |
命令退出码与标准输出 |
http |
状态码与 body |
git |
clean、branch 等 |
json |
字段断言 |
执行完成后返回结构化报告:总览 verdict,每项为 pass / fail / na,并带证据明细。设计目标是:验证从「散文行为」变为可重复的 exit 0/1/2 门禁——改完必跑、不过则 blocked。
安装与启用¶
验证门禁分两层:先装 verify-gate 二进制,再把 dsh-verify-gate 加入 DSH profile。
安装二进制(crates.io 或 GitHub Release):
cargo install verify-gate
安装插件(本地路径或 monorepo 依赖,以 README 为准):
dsh plugin --profile web add /path/to/dsplugins/dsh-verify-gate
若在 pnpm 工程里维护 profile,也可在 pnpm install 后把 dsh-verify-gate 写入 profile 的 package.json 的 dependencies,并配置 dsh.profile.bundles。
二进制查找顺序(资料原文):
cordis.patch.yml里verify-gate行的config.binary- 环境变量
$VERIFY_GATE_BIN - PATH 中的
verify-gate ~/.cargo/bin/verify-gate
若找不到二进制,工具会返回安装提示,避免拖垮整棵插件树。
改 host 代码后需重启 dsh web;verify_run 在新会话中才可见(与工具注入时序有关)。维护者给出的自检命令:
node --check index.mjs lib/tools.mjs
node test/preflight.mjs
pnpm dsh --profile web --dump-config | grep -A6 'verify-gate'
典型用法:内联 Manifest¶
下面示例来自 README,可直接作为 manifestText 内容,或保存为文件后用 manifest 引用:
[[check]]
name = "构建产物存在"
type = "file"
path = "target/release/verify-gate"
[[check]]
name = "测试通过"
type = "cmd"
cmd = "cargo test"
stdout_contains = "test result: ok"
timeout_secs = 180
Agent 调用 verify_run 时传入上述清单与合适的 cwd,即可在同一套规则下反复跑验证,结果便于日志与后续自动化对接。
适用场景与注意¶
适合谁
- 希望在 DSH 工作流里固定「改代码 → 跑清单 → 看 verdict」,而不是每次让模型即兴描述验证步骤
- 已有或愿意维护 TOML 断言(文件、命令、HTTP、git、json),并希望与 verify-gate CLI 行为一致
权限与安全
插件以当前 dsh 进程权限 执行 verify_run 中的命令与文件访问。安装前请阅读 GitHub 仓库 源码与 MIT 许可证,清单里的 cmd 会真实执行,勿在未审清单的情况下交给不可信输入。
SkillHub 为社区插件目录站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本插件是对 verify-gate 的桥接,星标与版本以仓库与目录页为准(当前 package 版本为 0.1.0)。
结尾¶
dsh-verify-gate 把声明式验证清单接到 DSH Agent 工具层:verify_run + TOML + 结构化报告 + 严格退出码,适合把工作流里的「验一下」写成可版本化的清单。