XiaoSHang05/dsh-loop-guard ↗★ 0
dsh-loop-guard
Repeat-output guard for DSH: watches the live assistant stream (thinking and text), catches verbatim loops and counting loops that differ only by a number, raises a manual-dismiss alarm, and cancels the runaway turn. 适合经常遇到模型陷入无限循环复读、需要自动打断并报警的用户。
同名パッケージの別リポジトリ
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:XiaoSHang05/dsh-loop-guardドキュメント
README 全文を読む ↗使用
- 默认监视全部会话,思考与输出分别检测。
- 「启用监控」控制全局开关;会话行可以暂停/恢复单独监控。
- 「重复次数」控制连续周期重复阈值,默认 5。
- 「重复行占比」控制独立的重复行检测,默认最近 8 行中 75% 是已出现的行。调高重复次数不会关闭这条规则,需要同时调整重复行占比。
- 「编号循环占比」控制编号循环检测(第三条规则),默认 0.6。它抓的是「同一句式、每行只换一个数字」这类复读,见下节。
- 命中后会显示会话、流、重复片段、次数与打断状态。报警不会自动消失,点击「知道了」才关闭;关闭请求失败时卡片保留。
- 提示音使用 WebAudio。浏览器可能要求先与页面交互才能播放声音;声音不可用不影响报警卡片或宿主打断。
- 配置
cancel: false可切换为只报警;alarm: false不显示卡片;sound: false关闭声音。 - 功能坞的客户端桥接可用时尝试注册入口;桥接不可用时仍可使用监控页和独立报警。
配置
监控页的修改先立即作用于本插件,再尽力通过宿主 Settings 持久化。若 Settings 缺席或写入失败,配置仅保存在内存中。会话级暂停/恢复名单和命中历史均为内存数据,重启后清空。历史最多 50 条,默认界面展示最新 20 条;命中历史标题右侧的「清除历史」清空全部记录——只清记录,不影响任何配置,也不会恢复已经被打断的回合。
| 配置键 | 默认值 | 含义 |
|---|---|---|
| enabled | true | 全局监控开关 |
| minRepeat | 5 | 连续周期重复阈值 |
| minUnit / maxUnit | 6 / 1024 | 搜索周期长度范围 |
| windowChars | 8192 | 各流保留的尾部窗口 |
| densityLines / densityRatio | 8 / 0.75 | 重复行窗口与占比 |
| structLines / structShare | 12 / 0.6 | 编号循环的行数与字母占比;structLines: 0 关闭该规则 |
| customPhrases | [] | 你自己填的句子,一行一句;空数组即关闭该规则(默认关闭) |
| customRepeat | 5 | 上面那些句子出现几次算循环 |
| cancel / alarm / sound | true | 自动打断、报警卡片、提示音 |
| scopeDefault | all | 默认全部监控;selected 仅监控显式选中的会话 |
checkEvery=32 是核心内部默认扫描步长,不是宿主 HTTP 配置字段。watchText、watchReasoning、excludedSessions 不属于本版配置 API。