dsh-step-governor:DSH 步数熔断插件

前言

DeepSeek Harness(DSH)的插件生态里,长任务往往会出现「步数膨胀」:模型在十几步内反复重推同一结论,或者对同一目标反复换路径尝试。这类空转会消耗大量 token,且模型往往「知道自己在空转却停不下来」。

插件 dsh-step-governor 在步骤层面提供硬熔断能力:不依赖提示词劝导,而是通过机械计算判据剥夺继续空转的执行权。

插件定位

  • 类型:DSH 插件(admin-security 分类)
  • 维护者:JiewiW
  • 版本:0.1.4
  • 许可证:MIT

它是对 dsh-cot-anchor 的姊妹插件:cot-anchor 在单次生成内做软切,step-governor 在跨步骤做硬熔断。长任务账单的大头是「步数 × 每步膨胀的上下文重读」,步数治理正是针对这个杠杆。

两个熔断点

熔断 宿主钩子 动作
G1 步级 agent/pre-step {kind:"reject"},终止当前回合
G2 支线 tools/pre-execute {kind:"deny"},跳过工具调用并回填错误文本

G1-A 滑窗失速

近 8 步滑窗内出现连续 4 步无文本交付、无文件变更,且窗内成功工具占比 ≤ 0.25、reasoning 总量 < 160 字。后两个条件用来排除「安静干活」的正常步骤。

G1-B 指纹重现

同一段推理结论的指纹跨 6 步重现且其间无文件变更。专抓「每步都读到新东西、却在重推同一结论」。

G1-C 硬顶

单回合 60 步安全网。

G2-A 同一目标调用过载

同一调用目标(归一化后的文件 / URL / 命令 / 参数)尝试超过 3 次。

G2-B 连续失败

同一目标连续失败 2 次,与「同命令失败最多重试 2 次」纪律对齐。

目标键归一化(G2 用)

不同工具的键体组成如下:

  • read:文件路径 + offset/limit
  • grep:pattern + path
  • edit / write:文件路径 + 变更语料哈希
  • pwsh / bash / sh:管道首段全部参数 + 后续段哈希
  • 其他工具:依次取 file_path/path/url/command/pattern/script/query/name
  • 兜底:上述字段均取不到时,回退到全参数规范化 JSON 的哈希

工作模式

五档,灰度顺序 shadow → g2b → g2 → g1g2:

模式 行为
off 完全透传,不观测
shadow 观测并写结构化日志,永不拦截(默认)
g2b 仅 G2-B(连续失败)强制拦截
g2 G2-A + G2-B 拦截,G1 仍只观测
g1g2 G1 + G2 全部拦截(实验档,标记为 experimental)

安装与配置

安装命令:

dsh plugin --profile <你的profile> add github:JiewiW/dsh-step-governor#v0.1.3

加载成功时 stderr 会打印一行:

[dsh-step-governor] {"mode":"shadow","at":"loaded","thresholds":{...}}

配置项

插件加载后在 DSH 设置页出现「步数治理」卡片,14 项配置可直接改并持久化。也可用 GET/POST /plugins/step-governor/settings 读写(GET 返回完整 schema)。

环境变量

环境变量作为启动初始值,优先级最高(显式设置的键,设置页保存不会覆盖):

环境变量 对应配置 默认
DSH_GOVERNOR_MODE mode shadow
DSH_GOVERNOR_G1A_N g1aZeroSteps 4
DSH_GOVERNOR_G1B_K g1bFingerprintSteps 6
DSH_GOVERNOR_G1C_MAX g1cMaxStepsPerTurn 60
DSH_GOVERNOR_G2A_M g2aSameTargetCalls 3
DSH_GOVERNOR_G2B_F g2bConsecutiveFailures 2

能力边界

  • G2 的目标键归一化识别不了「换一种方法追同一个目的」(直连 → token → cookie → 本地缓存),那需要理解每步意图。
  • 「每步都成功、内容不重复、但整体在偏离任务」属于语义级空转,本插件不覆盖。
  • 熔断只让模型更早带着已有证据停手,不保证已交付内容正确。
  • 与 goal 自动续跑驱动并存时,pre-step 钩子的注册顺序仍属待核实项。

测试

项目提供纯逻辑断言 + 伪内核钩子集成断言,共 21+ 用例。shadow / g2b / g1g2 三档真实启动冒烟结果见 SMOKE-REPORT.md。

适用场景与注意

适合需要在长任务中控制步数膨胀、减少无效重算的场景。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。

实验期间建议用独立 profile + 独立端口运行,不要直接在日常 profile 开启强制档。

结语

dsh-step-governor 提供了步骤层面的硬熔断能力,通过滑窗、指纹、调用计数等机械判据,在长任务中拦截空转步数。其默认 shadow 模式保证零误杀,通过环境变量或设置页可逐步灰度到拦截档位。

  • 目录页:https://www.skillhub.cn/plugins/JiewiW/dsh-step-governor
  • GitHub:https://github.com/JiewiW/dsh-step-governor
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜