dsh-loop-guard
纯文本死循环断路器:检测单条 assistant 消息内部的重复退化并注入破环提醒,自带设置页。 适合需要防止模型输出陷入无限重复、提高长文本生成可靠性的场景。
같은 패키지 이름의 다른 저장소
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GRUST303/dsh-loop-guard配置
配置通过 profile 插件行的 config 段提供:
- id: loop-guard
name: dsh-loop-guard
config:
preset: balanced # conservative | balanced | aggressive
repeatDensity: 0.35 # 主判据:窗口重复密度阈值
window: 12 # 滑动窗口行数
lineRepeatThreshold: 6 # 单行重复次数(需同时满足占比 ≥ 50%)
contextLineRepeatThreshold: 20 # 历史污染阈值
minChars: 120 # 短于此长度的消息不参与判定
crossStepThreshold: 3 # 跨步重复次数
debug: false # 写入调试日志
改完重启 profile 生效。
档位对照
| 档位 | 密度阈值 | 适用场景 |
|---|---|---|
| 保守 | 0.5 | 误报率最低。适合大量输出表格 / 代码的场景,宁可漏报也不打断正常输出 |
| 平衡(默认) | 0.35 | 7917 条真实消息实测误报率 0.03%,不漏任何一种已观察到的循环形态 |
| 激进 | 0.25 | 最早介入,轻微重复也会提醒。适合长任务 / 无人值守,代价是提醒更频繁 |
关于图形设置页
插件声明了官方 Config(schemastery schema),DSH 的 Settings 服务会据此派生配置项;
客户端也注册了设置页(settings.plugins.tab 槽位)。
在实测的 DSH 0.1.7-rc.2 上,该设置页没有被渲染出来。 已确认的部分:
插件出现在 Web 端 boot manifest 里、dsh.client 声明正确、client bundle 可正常
加载(HTTP 200)。但 tab 不出现,根因未定位。
这不影响核心功能 —— 防循环完全由 host 端承担,与设置页无关。
请使用上面的 config 段配置。如果你定位到了原因,欢迎提 PR。