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. 适合经常遇到模型陷入无限循环复读、需要自动打断并报警的用户。

パッケージ
dsh-loop-guard
互換性
未検証
バージョン
0.2.0
ライセンス
MIT
最終更新
2026/10/13

同名パッケージの別リポジトリ

インストール

$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 条;命中历史标题右侧的「清除历史」清空全部记录——只清记录,不影响任何配置,也不会恢复已经被打断的回合。

配置键默认值含义
enabledtrue全局监控开关
minRepeat5连续周期重复阈值
minUnit / maxUnit6 / 1024搜索周期长度范围
windowChars8192各流保留的尾部窗口
densityLines / densityRatio8 / 0.75重复行窗口与占比
structLines / structShare12 / 0.6编号循环的行数与字母占比;structLines: 0 关闭该规则
customPhrases[]你自己填的句子,一行一句;空数组即关闭该规则(默认关闭)
customRepeat5上面那些句子出现几次算循环
cancel / alarm / soundtrue自动打断、报警卡片、提示音
scopeDefaultall默认全部监控;selected 仅监控显式选中的会话

checkEvery=32 是核心内部默认扫描步长,不是宿主 HTTP 配置字段。watchText、watchReasoning、excludedSessions 不属于本版配置 API。