前言¶
给编码智能体布置同一条任务,跑一次会得到一个看起来合理的补丁;换一次独立运行,可能得到更简单的修法、更好的测试,或者避开一个隐蔽的回归。多跑几个候选不难,难的是用同一把尺子比较它们,并且在比较之前先把明显过不了测试的候选淘汰掉。
DeepSeek Harness 的理念是「一切皆插件」,这类流程编排正适合做成插件。下面介绍的 dsh-llm-verifier 就把「生成多个候选 → 跑测试筛选 → LLM 排序 → 人工审批后应用」固化成一个工作流。
这是什么¶
dsh-llm-verifier 是由 Web0926 维护的 DeepSeek Harness 插件,当前处于 developer preview 阶段,许可证为 MIT。它对同一条编码任务运行 3 或 5 个候选,每个候选在独立的 detached Git worktree 中工作;随后先执行项目自身的确定性验证,把失败候选剔除,再对通过者用 llm-verifier 排序。整个过程中,原 checkout 在单独审批通过之前保持不变。
核心功能¶
- Best-of-3 或 Best-of-5:默认 3 个候选,高价值任务可用 5 个。
- Validation-first 选择:先跑确定性项目验证,失败候选不会进入模型排序。
- 高效排序:只剩 1 个通过者时按验证结果直接胜出;2 个通过者用 1 个 pivot;3–5 个用 2 个 pivot。
- 两道审批门:候选执行前一道,获胜补丁应用前另一道。
- 应用前完整性复查:再次检查仓库路径、base
HEAD、干净状态与 winner-patch 的 SHA-256。 - 可审计产物:报告包含排名、变更文件、耗时、进程状态、补丁哈希、verifier 请求与 token 用量,并产出
winner.patch。 - 凭据控制:验证进程不接收 DeepSeek API key;日志、错误、验证输出与文本 diff 按精确凭据值脱敏。
- 无自动 Git 变更:插件不 commit、push、stash、reset,也不自动应用补丁。
验证命令支持自动检测,显式指定的命令始终优先。省略 validationCommands 时,插件只接受唯一一种可识别的根项目类型:
| 根目录标记 | 命令 |
|---|---|
package.json、仅一个 JS 包管理器、含 test 脚本 |
该包管理器的 test 命令 |
pyproject.toml |
uv run pytest |
Cargo.toml |
cargo test |
go.mod |
go test ./... |
Makefile 且含 test 目标 |
make test |
如果同时命中多种项目类型、存在多个 JS 包管理器,或无法识别出受支持的类型,运行会快速失败并要求显式给出命令。
安装与启用¶
前置条件¶
- DeepSeek Harness
0.1.0-rc.7 - Node.js 24(engines 限定
>=24 <25)与 pnpm11.7.0 uv(Python>=3.9,<3.14由 uv 管理)- Git
- 可通过凭据引用
DEEPSEEK_API_KEY提供给 Harness 的 DeepSeek 凭据
构建并校验¶
插件的分发方式是从源码构建后的本地路径安装。先克隆仓库,安装依赖并跑一遍检查:
git clone https://github.com/Web0926/dsh-llm-verifier.git
cd dsh-llm-verifier
pnpm install --frozen-lockfile
uv sync --frozen --project python
pnpm run check
pnpm run check 会依次执行 typecheck、test 和 build,全部通过说明本地构建可用。
加入 Web profile¶
在插件目录内把它加入 Web profile,再用 list 确认:
dsh plugin --profile web add "$(pwd)"
dsh plugin --profile web list
典型用法¶
发起一次 Best-of-3¶
在一个干净且受信任的目标仓库中启动 Harness:
cd /path/to/a/clean-and-trusted-git-repository
dsh --profile web
然后用自然语言请求工具,例如:
Use verified_best_of with 3 candidates to fix the login retry bug and add regression tests.
Run pnpm test for validation. Do not apply the winner yet.
等价的工具输入是:
{
"task": "Fix the login retry bug and add regression tests",
"candidateCount": 3,
"validationCommands": ["pnpm test"]
}
verified_best_of 的参数中,task 必填,candidateCount 取 3 或 5(默认 3),validationCommands 省略时走自动检测。运行状态有 winner_selected、no_winner、failed 三种。工具返回 run ID、状态、合格候选、排名、报告路径、token 用量,以及(如有胜者)winner.patch 的本地路径。
审阅后应用胜者¶
审阅报告和补丁之后,显式调用 apply_verified_winner:
{
"runId": "<runId returned by verified_best_of>"
}
插件会先请求一次单独审批,通过后应用补丁,并重跑原验证命令。应用前会再次复查仓库路径、base commit 与补丁 SHA-256。
移除插件¶
不用时可以随时移除:
dsh plugin --profile web remove dsh-llm-verifier
适用场景与注意¶
这个插件适合对补丁质量要求较高、愿意多花算力换取更稳妥改动的仓库维护者,尤其是想系统比较多个候选修法的场景。
使用前注意以下几点:
- 当前是 developer preview,版本锁定较紧:DeepSeek Harness
0.1.0-rc.7、llm-verifier0.2.0、Node.js>=24 <25、pnpm11.7.0、Python>=3.9,<3.14;平台仅支持 macOS 和 Linux。 - 安全边界明确:公开版本只用于受信任仓库。验证命令会在宿主机上执行目标仓库的代码,本版本不是容器边界。
- 只接受正常、干净的 Git 仓库根;拒绝子模块、sparse checkout、linked worktree 与未提交更改。
- 候选编辑位于
$DSH_HOME/llm-verifier/runs/<runId>下的 detached worktree;候选 Harness 进程使用显式的workspace-write权限模式,不继承宿主的DSH_PERMISSION_MODE。 - 插件以当前 dsh 进程的权限运行,安装前建议先阅读源码与许可证(MIT),确认符合自己的安全要求。
小结¶
dsh-llm-verifier 把「多跑几个候选、用测试筛掉不合格的、再用模型排序、最后人工拍板」做成了带两道审批门的流程,原 checkout 全程不会被自动改动,产物可审计。项目地址与收录页如下:
- GitHub:https://github.com/Web0926/dsh-llm-verifier
- 社区目录收录页:https://www.skillhub.cn/plugins/Web0926/dsh-llm-verifier
其中 skillhub.cn 是社区维护的插件目录站点,与 DeepSeek、幻方没有官方从属关系。