前言¶
DSH 的理念是「一切皆插件」。对智能体开发者来说,插件通常要先读仓库,再执行安装。这里有一个顺序问题:如果安装命令先执行,插件里的安装钩子可能已经运行;等安装后扫描文件时,已经晚了。
dsh-provenance 针对这个顺序问题。它在 DeepSeek Harness 插件安装前检查即将安装的 tarball 是否与已读源码一致,并在代码运行前给出 ok、review 或 block 的结果。
这是什么¶
dsh-provenance 是 Darren Tang 维护的 DSH 插件,许可证为 MIT。它做安装前的供应链来源检查,不执行被审计包,也不替代代码行为扫描。
运行要求是 Node.js >=22.19.0。README 说明它没有运行时依赖;@deepseek-ai/cordis 和 @deepseek-ai/dsh-tools 是可选 peer dependencies。
核心检查¶
下面介绍它检查的几类来源问题。
来源固定性¶
检查安装说明符是否指向不可变内容。可重解析的名称或分支,可能在同一名称下解析到不同内容。
注册表完整性¶
比对收到的字节与注册表发布的 digest。
安装钩子¶
检查在 dsh plugin add 过程中会执行的安装钩子。这类代码可能在安装后扫描之前运行。
构建来源¶
通过 SLSA attestation 检查制品是否能关联到特定 commit 和 CI workflow。它解析 attestation payload,但不做 sigstore 签名验证。
制品与源码比较¶
比较已发布文件与指定 commit 的上游源码,并检测发布时是否新增了文件。
如果没有已发布文件可以匹配,它会报告 diff.nothing-verified,而不是报告 0 mismatch。
使用方式¶
dsh-provenance 为 DSH agent 注册两个工具:
provenance_preflight:安装前审计一个来源provenance_verify:检查某个 profile 中已安装的插件
它也提供 CLI。CLI 的 preflight 和 verify 模式支持 --json 和 --strict,可用于 CI。
退出码:
0:ok 或 notice1:--strict下需要 review2:block
安装与启用¶
作为 DSH 插件:
dsh plugin --profile web add dsh-provenance
作为独立 CLI:
npm install -g dsh-provenance
启用前确认 Node.js >=22.19.0,并检查源码和 MIT 许可证。DSH 插件一般以当前 dsh 进程权限运行,因此建议先审后装。
典型用法¶
安装前检查¶
先做 preflight:
dsh-provenance preflight some-plugin@1.2.3
dsh-provenance preflight github:owner/repo
dsh-provenance preflight some-plugin --json
检查已安装插件¶
再对某个 profile 做 verify:
dsh-provenance verify --profile web
CI 门禁¶
在 CI 中使用 --strict:
dsh-provenance preflight some-plugin@1.2.3 --strict
dsh-provenance preflight github:owner/repo#<sha> --strict
安装拦截¶
在 DSH 会话中,dsh-provenance 会拦截安装尝试:如果来源没有先在会话中通过 preflight,它会拒绝安装。需要时,应先用 provenance_preflight 审计该来源,再重试安装。
如果这个安装拦截影响流程,可以用以下配置关闭:
{ guardInstalls: false }
边界与注意事项¶
它的边界比较明确:
- 不验证 sigstore 签名;只解析 attestation payload,不做密码学验证。
- 不能验证构建产物;
lib/、dist/和压缩文件会报告为unverifiable,不会报告为match。 - 干净报告不等于安全证明;只表示当前规则没有发现问题。
- 不是代码行为扫描器;它检查代码从哪里来,不判断代码做什么。
- 不是 runtime ledger;不观察、不记录安装后的行为。
- 不执行被审计包;archive 在内存中解析。
结尾¶
dsh-provenance 的价值是把“源码是否一致”这个问题提前到安装前处理。它可以和代码行为扫描配合使用:前者回答来源是否对得上,后者回答代码行为是否可信。
GitHub 仓库:https://github.com/Darren-Tang/dsh-provenance