流式输出陷入复读时自动熔断,省下数万 token
28.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Aclypea/dsh-repetition-guard.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 64 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求client/index.js:22
const res = await fetch(STATS_API, { method: "GET", cache: "no-store" });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 检测流式输出复读
- 自动熔断复读输出
- 节省token消耗
README
由 DeepSeek 最新模型翻译生成dsh-repetition-guard
DSH(DeepSeek Harness)的模型输出复读熔断插件。模型流式输出陷入循环(单字刷屏、短句复读、低多样性长文本)时,在线终止流,抛结构化错误码 MODEL_REPETITION_LOOP,交给 DSH 现有的 agent/request-error → retry 流程处理,避免几万 output tokens 打水漂。
几个特点:
- 纯插件实现,不改 DSH 源码。卸载即移除,DSH 更新不丢补丁
- 挂在官方 llm/stream waterfall 上,所有 provider 和包装路由都过它
- 对 vision-toolkit- 前缀路由启用更激进的局部防护(P2)
- 自带静态加载 / 历史回放 / 误杀测试
背景
长会话、超大上下文下,上游模型会真实陷入语言循环。见过单字「课」重复几千次,也见过 执行 / send / Create 这种短句无限循环,单步浪费 10 万+ 字符、数万 output tokens。DSH 核心没有通用的在线复读熔断,只能等 max-tokens 或人工取消;流空闲超时也救不了——模型一直在吐 token,永远不算 idle。诊断细节在 docs/dsh-repetition-diagnosis.md。
展开完整文档(README 剩余 1 节)
dsh-repetition-guard
DSH(DeepSeek Harness)的模型输出复读熔断插件。模型流式输出陷入循环(单字刷屏、短句复读、低多样性长文本)时,在线终止流,抛结构化错误码 MODEL_REPETITION_LOOP,交给 DSH 现有的 agent/request-error → retry 流程处理,避免几万 output tokens 打水漂。
几个特点:
- 纯插件实现,不改 DSH 源码。卸载即移除,DSH 更新不丢补丁
- 挂在官方 llm/stream waterfall 上,所有 provider 和包装路由都过它
- 对 vision-toolkit- 前缀路由启用更激进的局部防护(P2)
- 自带静态加载 / 历史回放 / 误杀测试
背景
长会话、超大上下文下,上游模型会真实陷入语言循环。见过单字「课」重复几千次,也见过 执行 / send / Create 这种短句无限循环,单步浪费 10 万+ 字符、数万 output tokens。DSH 核心没有通用的在线复读熔断,只能等 max-tokens 或人工取消;流空闲超时也救不了——模型一直在吐 token,永远不算 idle。诊断细节在 docs/dsh-repetition-diagnosis.md。
两层防护:
- P1 通用熔断:包一层流的 text/reasoning delta,命中立即终止上游迭代,产出 MODEL_REPETITION_LOOP
- P2 Vision Toolkit 局部防护:vision-toolkit- 这类图片输入包装路由复读概率高,命中前缀时换成更积极的检测参数,熔断更早
隐私声明见 PRIVACY.md:本仓库是公开的,已移除所有真实会话、个人信息和机器路径,测试样本是匿名合成数据。
检测模式
核心在 lib/repetition-guard.js,零依赖、纯 ESM,node / 浏览器都能跑。5 种模式:
- exact-suffix-loop:精确后缀循环,短窗口逐周期重复
- token-density:短 token 在窗口里占比异常,单字/短词刷屏
- repeated-lines:同一行/句反复出现
- stalled-action:一直在输出动作标记但没有新信息(默认关,P2 对 vision 路由开)
- low-diversity:N-gram shingle 多样性过低,长文本复读
防误杀方面:只看 text/reasoning delta,不碰工具参数流;滚动窗口有界(默认 16 KiB);阈值保守,代码、表格、PPT/XML 结构、长文、引用列表都不触发(见 test/misdetect.test.mjs)。
安装
本地安装(推荐)
在仓库根目录执行 powershell -ExecutionPolicy Bypass -File scripts/install-local.ps1
脚本做的事:把插件复制到 ~/.dsh/dsh-repetition-guard → 在 profile 的 node_modules 建 Junction → 改 profiles/desktop/package.json(dependencies 加 link: 依赖、bundles 加条目,改前自动备份)。之后重启 DSH 生效。
卸载:
powershell -ExecutionPolicy Bypass -File scripts/install-local.ps1 -Uninstall
手动注册
改 ~/.dsh/profiles/desktop/package.json:
"dependencies": {
"dsh-repetition-guard": "link:C:/Users//.dsh/dsh-repetition-guard"
},
"dsh": {
"profile": {
"bundles": [ "...", "dsh-repetition-guard" ]
}
}
再把插件目录放到 ~/.dsh/dsh-repetition-guard,profile 的 node_modules 下建 Junction 指向它。
配置
默认配置直接能用。想调的话,在 profile 的 cordis.patch.yml 里覆盖 repetition-guard 条目(和别的插件一样),或看下表:
| 配置项 | 默认 | 说明 |
| enabled | true | 总开关 |
| checkEveryChars | 96 | 每累计多少字符检测一次 |
| minRun / minCoveredChars | 12 / 96 | 循环最少重复次数 / 最少覆盖字符 |
| maxChars | 16384 | 滚动窗口上限 |
| detectStalledAction | false | 停滞动作检测(通用默认关) |
| vision.enabled | true | P2 局部防护开关 |
| vision.providerPrefixes | ["vision-toolkit-"] | 命中即启用局部防护的前缀 |
| vision.densityRatio | 0.5 | P2 的密度比,比通用值(0.58)更激进 |
| vision.lowDiversityChars | 2048 | P2 的低多样性窗口,比通用值(3072)更小 |
| vision.detectStalledAction | true | P2 开启停滞动作检测 |
使用
- 熔断命中后:DSH 显示结构化错误(模式、重复次数、覆盖字符数),重试策略决定 retry / 切模型 / 终止,retry 会清掉旧草稿
- 设置 → 复读熔断 页面能看到累计统计(请求总数、熔断次数、按 provider 分布)
- 只读接口 GET /api/repetition-guard/stats,插件卸载即消失
测试
静态加载 + 单元 + 误杀测试,纯 node 即可,不需要 DSH
node test/static-load.test.mjs
node test/misdetect.test.mjs
历史回放:把 DSH 会话存档(.jsonl.zstd)按步喂给 guard,看哪些步骤会熔断需要 node 22+(node:zlib 原生 zstd)
node test/replay.test.mjs
目录结构
dsh-repetition-guard/
├── lib/
│ ├── index.js # 插件入口(llm/stream 挂载 + 统计 API) │ ├── repetition-guard.js # P1 核心算法(零依赖 ESM) │ └── vision-guard.js # P2 局部防护参数解析 ├── client/index.js # 前端设置页(熔断统计) ├── test/ # 静态加载 / 回放 / 误杀测试 ├── docs/dsh-repetition-diagnosis.md # 诊断报告(P0/P1/P2/P3) ├── examples/dsh-anomaly-samples.txt # 匿名测试样本 └── scripts/ └── install-local.ps1 # 本地安装/卸载
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Aclypea/dsh-repetition-guard
流式输出陷入复读时自动熔断,省下数万 token
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目