GRUST303/dsh-loop-guard ↗★ 0

dsh-loop-guard

检测单条消息内的文本死循环并注入提醒 适合需要防止模型输出陷入无限重复、提高长文本生成可靠性的场景。

包名
dsh-loop-guard
兼容性
待验证
Cordis 依赖范围
^4.0.1
版本
1.0.0
许可证
MIT
最近更新
2026年10月2日

同名包的其他仓库

安装

$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.357917 条真实消息实测误报率 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。