dsh-repeat-guard
流式输出退化拦截:检测碎片复读,掐断本次生成并提醒模型直接执行工具调用
一句话定位
流式输出退化拦截:检测碎片复读,掐断本次生成并提醒模型直接执行工具调用
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add dsh-repeat-guard@0.3.3
兼容的 DSH 版本
>=0.2.1-0 <0.3.0-0
作者与热度
xiaozhuyuqing · ★ 13 · 更新于 2026-10-26
关于这个插件
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 ... ...
---
同分类对比
同一分类下 Star 最高的 5 个,便于横向比较。
| 插件 | 作者 | Star | 版本 | 更新 |
|---|---|---|---|---|
| Mole | tw93 | 74.5K | 0.0.0 | 2026-11-10 |
| DeepSeek-Reasonix | esengine | 36.1K | 0.0.0 | 2026-11-10 |
| dsh-desktop | anywhere-labs | 35.6K | 0.4.1 | 2026-11-06 |
| awesome-dsh-plugin | awesome-dsh-plugin | 24.1K | 0.1.0 | 2026-11-10 |
| dsh-market | dsh-market | 11.8K | 1.73.17 | 2026-11-09 |