DSH 插件市场DeepSeek Harness 社区插件目录

dsh-degeneration-kit

未验证 记忆与上下文 ★ 22 0.0.0

DSH 防退化套件|不止打断,还会清创:把退化的思考块从模型可见历史里折叠掉,下一轮不再回传。复读分两型——A 型同一句死磕、B 型短句轮换(最难抓,实测英文 8 块全漏)。两个插件一套闭环,缺一个都会漏。

一句话定位

DSH 防退化套件|不止打断,还会清创:把退化的思考块从模型可见历史里折叠掉,下一轮不再回传。复读分两型——A 型同一句死磕、B 型短句轮换(最难抓,实测英文 8 块全漏)。两个插件一套闭环,缺一个都会漏。

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add 'git+https://github.com/walksls/dsh-degeneration-kit.git#fd7bbf66f47246e0159608c6c2319c389ee69bd7'

兼容的 DSH 版本

未声明

作者与热度

walksls · ★ 22 · 更新于 2026-10-30

关于这个插件

DSH 防退化套件 —— ⚠️ 两个插件,两个都得装才完整

[English](README.en.md) | 中文

> 上下文越长,模型越容易陷进「我要做 X」的空转(复读),而且回合看起来还是成功的,

> 不加检测根本发现不了(本机实测:24 个真退化块里 18 个回合正常结束,只在思考里烂)。

>

> 这个仓库里有两个插件,各治一半:

>

> - 少产生 —— thinking-guard:把退化的思考块从模型可见的历史里折叠掉,不让它每轮重放;

> - 清库存 —— dsh-auto-checkpoint:到水位压缩(把已经累积的污染整体清掉),或换一个新会话。

>

> 缺一个都会漏(理由见下表后面的三条)。只装一个也比裸奔强,但要真想彻底解决,两个都要装。

复读长什么样:两种形态,判据完全不同

「复读」不是一种东西。我们把本机 493 个会话日志里全部 reasoning 块按同一个口径过了一遍

(ra = 同一段里同一句的最高重复次数),它们分成两类:

| | A 型 · 同一句死磕 | B 型 · 短句轮换 |

|---|---|---|

| 重复次数 | 10³–10⁴ | 20–200 |

| 上下文 | 短(29k–42k) | 长,随长度单调上升 |

| 典型样子 | (读×3369、做×1024、「好」×10848 | Let me write it. → Go. → Now. → OK. |

| 读起来像 | 正常思考:有主语、有下一步动作、句句合规,信息量为 0 | 正常推进 —— 最难认出来的就是它 |

| 多不多 | 罕见(中文单元全机 5 例) | 常见 |

| 跟模式的关系 | 只在「强制中文思考」的模式里见过(其它 31 个会话:0 例) | 无关 |

⚠️ 两条容易搞反的:

  • 「中文更容易退化」是体感,不是数据。 成立的是「最严重的案例全是中文」(差 1–2 个数量级);

按数量算,最常见的是英文碎片型。体感记住的是最扎眼的那一个,不是最多的那一个。

  • 中文那 5 例全部出现在同一个模式里,所以「是中文的锅」还是「那套格式约束的锅」,

我们分不开 —— 别把相关当因果。

B 型为什么特别难抓:判据原本要求「单个单元占窗口句数 ≥20%」,而轮换让每个短词只占 ~15%,

没有一个够门槛 ⇒ 整块放行。实测:英文为主的 8 个块全被这道门拦掉。

这就是第二把尺子 rotationGuard 存在的原因(细节见 [thinking-guard/README.md](thinking-guard/README.md))。

为什么复读会自己喂自己:DSH 会把历史里的 reasoning 块原样回传上游。

所以一条复读不只是一步出错 —— 它留在上下文里,之后每一步都再发一遍,

模型读到的是「我刚才一直在重复这个」。thinking-guard 折叠的就是它。

为什么是两个、而且两个都需要

| 插件 | 干什么 | 时机 |

|---|---|---|

| thinking-guard | 把退化的思考块从模型可见的历史里折叠掉 | 当场(下一次 pre-step,趁它还没被反复回传) |

| dsh-auto-checkpoint | 到水位压缩(清掉累积污染),或换一个新会话 | 事后 |

三条理由,缺一条都会留下漏洞:

1. 折叠管不到一次生成内部。 一条复读正在生成的时候它拦不住 —— 只能等下一步再剪。那一步的污染已经产生、已经回传过一次。

2. 只有压缩能清"库存"。 多次漏检攒下来的污染块,折叠一块块剪很慢;压缩能一次性把累积的压下去(本机实测:一个会话 12 次压缩,凡有累积污染时压缩后都下降,最强一次 43 → 0,此后零复发)。

3. 压缩之间还有步子。 只装压缩的话,两次压缩之间的每一步仍在被污染重放 —— 那正是折叠负责的那一段。

⇒ 一句话:折叠 = 少产生,压缩 = 清库存。两个都在,才是闭环。

> 💡 两个插件之间有一处联动(2026-10-15 补):thinking-guard 里的急停阀当场掐断复读之后,

> dsh-auto-checkpoint 会顺带压一次 —— 不看水位阈值,也不看那会话在面板上选的处理方式。

> 阀清的是"正在喷的那一段",压缩清的是"历史累积",接得上。

> ⚠️ 这一步要有阀才有(只装 dsh-auto-checkpoint 的话没有);想关掉只能全局改常量

> AUTO_COMPACT_ON_VALVE_ABORT(默认 true)再重启,详见 [auto-checkpoint/README.md](auto-checkpoint/README.md)。

实测:一个会话跑满 23 亿 token 也没崩

这是一个真实会话的用量面板:383 轮、9,227 步、累计 23.2 亿 token(缓存命中 99.6%),

上下文占用仍然只有 24%。

原因不神秘:dsh-auto-checkpoint 到水位就压缩或换会话,不让历史无限堆积;

thinking-guard 把退化的思考块折叠掉,不让它每一轮重放。

⚠️ 这张图只说明会话没崩,不构成「它比别的方案更快更省」的证明。

装(3 分钟)

→ 看 [INSTALL.md](INSTALL.md)(两条命令 + 验证方法 + 常见问题)

它不解决什么(以及配套推荐)

这套件治的是「别崩」:模型陷进复读,或者上下文里堆了污染,它当场掐掉、把库存清掉。

它不治「别失忆」。三件事分开看:

| 你怕丢的 | 压缩会不会弄丢 | 归谁管 |

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
EverOS EverMind-AI 13.9K 0.0.0 2026-11-10
billion-context ranxianglei 5.9K 0.1.213 2026-11-10
dsh-context bowenliang123 4.8K 0.83.1 2026-11-10
memsearch zilliztech 2.9K 0.0.0 2026-11-10
dsh-mnemon omdsh-dev 957 0.5.43 2026-11-08