deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Web0926/dsh-llm-verifier
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DeepSeek Harness 开发者预览插件:让 3 个或 5 个相互隔离的 Harness 候选完成同一项编码任务,先执行项目测试,再使用 llm-verifier 选择最佳补丁。原项目只会在用户第二次明确授权后被修改。
本项目是独立插件,不依赖、不修改。
0.1.0-rc.7uv 管理llm-verifier:固定 0.2.0verified_best_of输入:
{
"task": "修复用户登录失败的问题并补充测试",
"candidateCount": 3,
"validationCommands": ["pnpm test"]
}
candidateCount 只能为 3 或 5,省略时为 3。validationCommands 可省略。插件只在仓库根目录自动识别一种项目类型。apply_verified_winner输入:
{
"runId": "verified_best_of 返回的运行编号"
}
应用前会重新检查仓库路径、HEAD、清洁状态和补丁 SHA-256,并要求第二次授权。应用后重新执行原验证命令,但不会暂存、提交、推送、stash 或 reset。
本机安装使用 Node.js 24:
export PATH="/opt/homebrew/opt/node@24/bin:$HOME/.local/bin:/opt/homebrew/bin:$PATH"
node --version
dsh --version
pnpm --version
当前开发基线分别为 Node.js 24.19.0(也写入 .node-version)、DSH 0.1.0-rc.7 和 pnpm 11.7.0。
安装依赖并构建:
cd /path/to/dsh-llm-verifier
pnpm install --frozen-lockfile
uv sync --frozen --project python
pnpm run check
加入 Web profile:
dsh plugin --profile web add "$(pwd)"
dsh plugin --profile web list
启动 Harness:
cd 需要处理的干净 Git 仓库
dsh --profile web
在对话中要求 Harness 调用 verified_best_of。看到报告后,只有确认要采用获胜方案时才调用 apply_verified_winner。
卸载插件:
dsh plugin --profile web remove dsh-llm-verifier
默认配置:
| 配置 | 默认值 |
|---|---|
defaultCandidateCount |
3 |
candidateProfile |
headless |
credentialRef |
DEEPSEEK_API_KEY |
verifierModel |
deepseek-v4-flash |
nEvaluations |
2 |
maxVerifierWorkers |
8 |
verifierEffort |
high |
verifierMaxTokens |
32768 |
candidateTimeoutMs |
1200000 |
validationTimeoutMs |
600000 |
runTimeoutMs |
2700000 |
maxVerifierTraceBytes |
524288 |
stateDirectory |
$DSH_HOME/llm-verifier |
可在 Web profile 的 cordis.patch.yml 覆盖整段配置:
- id: llm-verifier
config:
defaultCandidateCount: 3
candidateProfile: headless
credentialRef: DEEPSEEK_API_KEY
verifierModel: deepseek-v4-flash
nEvaluations: 2
maxVerifierWorkers: 8
verifierEffort: high
verifierMaxTokens: 32768
candidateTimeoutMs: 1200000
validationTimeoutMs: 600000
runTimeoutMs: 2700000
maxVerifierTraceBytes: 524288
stateDirectory: $DSH_HOME/llm-verifier
nEvaluations 允许 1–4,maxVerifierWorkers 允许 1–16,verifierEffort 允许 low、high 或 max。verifierModel 必须以 deepseek- 开头,其他提供商会在输入边界直接被拒绝。
显式命令优先。没有显式命令时:
| 根目录标识 | 命令 |
|---|---|
package.json + 唯一包管理器 + test script |
对应包管理器的 test |
pyproject.toml |
uv run pytest |
Cargo.toml |
cargo test |
go.mod |
go test ./... |
带 test target 的 Makefile |
make test |
同时匹配多个类型、存在多个 JavaScript 包管理器或无法识别时,插件会立即报错,要求显式提供命令。
$DSH_HOME/llm-verifier/runs/<runId>。ctx.credentials 每次操作重新解析。workspace-write,不继承宿主的 DSH_PERMISSION_MODE。reset 自动回滚;现场会保留给用户检查。Git worktree 用于隔离候选改动,不等同于独立容器。候选工具依赖 DeepSeek Harness 的 workspace-write 沙箱;验证命令仍会执行仓库中的项目代码,因此只应在可信仓库中使用,并应仔细检查首次授权展示的命令。
Best-of-3 在默认三项标准、两次重复下约产生 36 个 verifier 请求;Best-of-5 约产生 72 个。实际请求数受合格候选和缓存影响,并记录在报告中。
每次运行保留:
$DSH_HOME/llm-verifier/runs/<runId>/
├── artifacts/
├── manifest.json
├── report.md
├── winner.patch
└── apply-result.json # 仅在应用后存在
临时 worktree 在候选阶段结束后删除。清理失败会在报告中列出残留路径。
报告和清单会记录插件版本、候选启动/完成/通过/排名数量、明确名次、进程退出码、耗时、diff stat、补丁路径与 SHA-256、完整日志路径、二进制文件的路径/大小/哈希、Verifier 实际请求数和 Token 用量。发送给 Verifier 的单候选材料超过上限时,报告会标记截断,并指向未截断的本地文件。
pnpm run typecheck
pnpm test
pnpm run build
python3 -m py_compile python/verifier_bridge.py
自动测试不调用真实 DeepSeek API。真实 Best-of-3 / Best-of-5 会产生费用,应由用户在明确知情后手动执行。
测试覆盖 Best-of-3 的 3/2/1/0 个合格候选和 Best-of-5 的 5/4/3/2/1/0 个合格候选,以及补丁篡改、凭据脱敏、Verifier 故障、应用后测试失败、二进制补丁、输入截断和残留进程清理。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。