前言¶
給編碼智能體佈置同一條任務,跑一次會得到一個看起來合理的補丁;換一次獨立運行,可能得到更簡單的修法、更好的測試,或者避開一個隱蔽的迴歸。多跑幾個候選不難,難的是用同一把尺子比較它們,並且在比較之前先把明顯過不了測試的候選淘汰掉。
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、幻方沒有官方從屬關係。