🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

复读打断 xiaozhuyuqing/dsh-repeat-guard

DeepSeek Harnessv0.3.3
xiaozhuyuqing8 天前有提交已提供中文文档扫描:未发现敏感能力

解决大模型用你的 token 唱歌的糟糕问题

37.6/100
综合分
12
GitHub 星标
887
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-repeat-guard
npm 源 · dsh-repeat-guard 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-repeat-guard @ 0.3.3
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 08:34:48

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 打断大模型循环输出

告诉你的 deepseek-v4.1-flash:「闭嘴!别循环了!」

README

由 DeepSeek 最新模型翻译生成
dsh-repeat-guard 解决大模型用你的 token 唱歌的糟糕问题 我们发现部分模型(尤其是 deepseek v4.1 flash)很容易在长上下文时进入复读状态。 dsh 社区中称呼这种情况为「唱歌」,典型的表现如下所示: Let me do it. Let me run. Let me go. Let me do it. ... 如果在预设或者 AGENTS.md 中约束使用中文思考,则会变成如下的场景: 好。 做。 开始。 做。 嗯。 做。 我必须开始工作了。 好。 做。 ... 配合 deepseek v4.1 flash 高达 300tok/s 的恐怖输出速率,模型可能会以极为可观的速度消耗 token,而不产生任何有效输出。 这通常比较隐蔽,尤其是用户没有注意模型的思考过程的时候。用户实际上只会看到思考过程快速闪过很短的句子,回答好像很正常。 在上下文长度达到 300k 以上的时候,该现象会变得十分频繁。 不仅如此,我们也观察到 deepseek v4.1 flash 有着这样的倾向:已经思考到需要工具调用的时候,输出一个短句,接下来又进入另一个方向的复杂思考过程。如下所示: 我已经收集到了足够的信息,接下来开始操作。先修改xxx文件。 做。 但是我还发现仓库里有其它的内容。注意到用户提到xxxxx ... 显然这不是我们想要的行为。
展开完整文档(README 剩余 1 节)
dsh-repeat-guard

解决大模型用你的 token 唱歌的糟糕问题

我们发现部分模型(尤其是 deepseek v4.1 flash)很容易在长上下文时进入复读状态。
dsh 社区中称呼这种情况为「唱歌」,典型的表现如下所示:

Let me do it.
Let me run.
Let me go.
Let me do it.
...

如果在预设或者 AGENTS.md 中约束使用中文思考,则会变成如下的场景:

好。
做。
开始。
做。
嗯。
做。
我必须开始工作了。
好。
做。
...

配合 deepseek v4.1 flash 高达 300tok/s 的恐怖输出速率,模型可能会以极为可观的速度消耗 token,而不产生任何有效输出。

这通常比较隐蔽,尤其是用户没有注意模型的思考过程的时候。用户实际上只会看到思考过程快速闪过很短的句子,回答好像很正常。

在上下文长度达到 300k 以上的时候,该现象会变得十分频繁。

不仅如此,我们也观察到 deepseek v4.1 flash 有着这样的倾向:已经思考到需要工具调用的时候,输出一个短句,接下来又进入另一个方向的复杂思考过程。如下所示:

我已经收集到了足够的信息,接下来开始操作。先修改xxx文件。
做。
但是我还发现仓库里有其它的内容。注意到用户提到xxxxx ...

显然这不是我们想要的行为。既然模型已经清楚下一步的工作是什么,就应该直接开始工具调用。

我们还注意到上述问题只出现于思考过程而不出现于回答内容。

此插件的功能

此插件致力于解决上述模型复读和无端长思考的问题。它会持续检测模型的输出。如果思考过程出现了一个白名单中的短句且单独成段,且模型在输出这个短句后既然有继续思考的意图,我们就会强行中断对话,并发送一句提醒,让模型直接开始下一轮的输出。

例如

[深度思考] 直接检查服务器状态和崩溃日志。

关键:先看最新日志和 crash-reports。

执行。 <--打断

[复读拦截] 你上一段思考退化成了碎片复读(反复输出"好。"一类的空话),已被系统截断。
请直接继续执行下一步,不要再输出任何确认语、寒暄或空话。

[深度思考] 直接调用工具,检查服务器状态和崩溃日志。

[tool calls]
ssh -o ConnectTimeout=10 -o BatchMode=yes ...
...

工作原理

逐 chunk 观察 reasoning-delta,检查思考文本。

独立段命中白名单时,向模型传递中断请求,掐断模型输出的片段,并补充结束标志,伪装成正常结束的思考过程。

向模型发送一条注入提示词,以恢复 agent-loop。

用户会通过注入提示词这个步骤看到大模型被中断的过程,因此步骤可能会变得很多。这是不得不付出的代价。

虽然我们可以将下一步思考的过程接到上一轮打断的位置以伪装成什么都没发生过的样子,但是一方面这种做法有风险,另一方面不是很有利于缓存命中。更何况,这也能帮助用户判断插件是否在正常工作。

dsh 0.1.7 以后,注入条目被折叠,所以其实也看不到注入过程了。

可配置选项

在 设置 → 复读打断 里查看,保存后生效,无需重启。

| 项 | 含义 |
| 累计拦截 | 掐断次数(有清零按钮) |
| 拦截短句 | 触发打断的白名单,需要加上标点 |
| 连续命中次数\* | 连续命中的阈值,如果为 2 就需要连续出现两个短句才触发 |
| 行内重复检测\* | 打开后"好。好。好。"这种挤在一行里的重复也算命中。 |
| 续跑指令 | 截断后推给模型的提示词 |
| 折叠行摘要 | 注入段用户可见的简要信息 |

\* 连续的意思是中间没有长段。如果配置成 2 就只会拦截循环,默认配置连一个短句后的分支思考过程也会拦下。

\* deepseek 不存在行内重复问题,这个选项是为 qwen 35B 这样的模型准备的。

安装到 dsh

dsh plugin --profile web add dsh-repeat-guard

兼容性:0.3.3 起要求 dsh 0.2.1 及以上,超出范围会直接拒绝加载并移除条目。
dsh 0.1.7 及更早版本请装 0.2.1:

dsh plugin --profile web add dsh-repeat-guard@0.2.1

许可

MIT,见 LICENSE。
预览分享卡片长什么样 ↓xiaozhuyuqing/dsh-repeat-guard
分享 · DeepSeek Harness Hub
xiaozhuyuqing/dsh-repeat-guard

解决大模型用你的 token 唱歌的糟糕问题

回到顶部