DSH(DeepSeek Harness)智能體在執行任務時,常出現模型自然停止或僅給出虛假完成聲明,而未實際運行倉庫的測試、構建、Lint 或類型檢查的情況。dsh-completion-gate 是一個 DeepSeek Harness 插件,它作爲一個邊界,防止智能體在沒有機器證據的情況下關閉任務。
該插件由 AGSQ11 維護,採用 MIT 許可證。它通過組合“過早停止防護”和“生產就緒門禁”兩個機制,確保只有當工作確實完成且已通過機器驗證時,任務才允許結束。
核心功能¶
過早停止防護¶
當模型自然停止,且最新輸出中包含強烈的未完成信號時,插件會介入。這類信號包括但不限於:“Now I need to inspect…”、“Next I will run…”、“I still need to…”等。
插件會調度一次新的 agent.followup() 調用,要求智能體繼續未完成的任務。恢復消息示例爲:
PREMATURE STOP RECOVERY:
Continue the unfinished task.
Execute the pending investigation or implementation now.
Do not summarize or claim completion yet.
該恢復鏈由 prematureStopMaxContinuations 限制,防止無限循環。
生產就緒門禁¶
一旦代碼發生變化,根智能體必須提供機器證據和結構化的最終審查,輪次才允許正常關閉。插件支持自動檢測常見項目的檢查命令:
| 生態 | 檢測 / 檢查命令 |
|---|---|
| Node.js | package scripts (test, build, lint, typecheck) |
| Python | pytest, Ruff, Mypy |
| Go | go test ./..., go vet ./... |
| Rust | cargo test --all-targets, cargo check --all-targets |
| 任意項目 | 自定義檢查 |
若 requireTests 啓用,未檢測到可執行測試命令的項目將被視爲阻塞。
工作區指紋¶
完成證據綁定到當前倉庫狀態的 SHA-256 指紋。該指紋包含:
- 會話基線 Git HEAD;
- 會話期間創建的提交;
- 暫存的更改;
- 未暫存的更改;
- 未跟蹤的文件。
這意味着一個乾淨的樹並不證明智能體未做更改(代碼可能已被提交)。若代碼在檢查或證明後發生變化,指紋改變,舊證據失效。
新增代碼警報¶
插件會掃描新增代碼行,檢測 TODO、FIXME、HACK、XXX,以及特定的安全迴歸模式(如硬編碼憑據、禁用 TLS 驗證、chmod 777 等)。這作爲迴歸警報,而非對 SAST 工具的替代。
完成證明¶
機器檢查無法證明所有需求。智能體可在最終完成前調用 completion_gate 工具,提供綁定當前工作區指紋的證明。
示例:
{
"action": "attest",
"reviewed_files": [
"src/engine.ts",
"tests/engine.test.ts"
],
"review_summary": "Reviewed the complete diff, error paths, state transitions and backwards compatibility.",
"acceptance_criteria": [
{
"criterion": "Risk sizing uses ATR",
"evidence": "Unit tests cover ATR-derived risk sizing and the full test suite passes."
},
{
"criterion": "Existing behavior remains compatible",
"evidence": "Regression tests and typecheck pass; changed call sites were reviewed."
}
],
"unresolved_issues": []
}
控制中心配置¶
在 DeepSeek Harness 界面中進入 Settings → Completion Gate。控制中心既是運行時儀表盤,也是持久化配置編輯器。
行爲設置¶
- Enable Completion Gate:總開關。
- Mode:
Strict:門禁失敗時引導智能體回退,阻止正常完成。Advisory:收集證據,但失敗不強制額外步驟。
- Gate subagents:默認爲
false。只有根智能體擁有最終生產就緒權。子智能體被允許正常完成其委託的任務。 - Premature-stop guard:恢復自然停止。
- Max recovery follow-ups:單次過早停止恢復鏈的安全上限。
機器證據設置¶
- Auto-detect checks:自動檢測項目檢查。
- Require tests/build/lint/typecheck:當可用時要求執行。
- Block new TODO/FIXME markers:阻止新增此類標記。
- Security regression scan:掃描安全模式。
執行限制¶
- Check timeout:單個命令的最大執行時間。
- Stored command output:每個檢查保留的最大清洗後失敗輸出。
自定義檢查¶
可在 UI 中添加任意自定義檢查。配置示例:
Name: integration-tests
Category: test
Command: npm run test:integration
Required: yes
典型用法¶
在使用自主編排或 Phoenix 模型故障轉移時,推薦保持 gateSubagents 爲 false。若項目需要嚴格的子智能體管控,可在控制中心顯式開啓。
該插件以當前 DSH 進程權限運行。安裝前應檢查源碼與許可證。
總結¶
dsh-completion-gate 提供了基於證據的生產就緒檢查,通過過早停止防護和門禁機制,有效防止智能體在不完整或未驗證的狀態下結束任務。
插件目錄:https://www.skillhub.cn/plugins/AGSQ11/dsh-completion-gate
源碼倉庫:https://github.com/AGSQ11/dsh-completion-gate