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