dsh-verify-gate:把 Agent 验证改成声明式门禁

前言

在 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。

二进制查找顺序(资料原文):

  1. cordis.patch.yml 里 verify-gate 行的 config.binary
  2. 环境变量 $VERIFY_GATE_BIN
  3. PATH 中的 verify-gate
  4. ~/.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 + 结构化报告 + 严格退出码,适合把工作流里的「验一下」写成可版本化的清单。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜