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

双坍缩守卫 ganaha-HUD/dsh-guard-suite

DeepSeek Harness
ganaha-HUD11 天前有提交已提供中文文档扫描:未发现敏感能力

拦截重复刷屏与文本收缩,保障输出稳定

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ganaha-HUD/dsh-guard-suite
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 11 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-guard-suite 一次安装,两种坍缩都管。 | 方向 | 表现 | 引擎 | | 膨胀(expansion) | 同一句话重复几万次,137 万字符刷屏 | vendor/repeat(dsh-guard-repeat-output 2.1.7,原样 vendored) | | 收缩(shrink) | 文本与动作一起变少,语气和断言密度不变 | vendor/collapse(dsh-guard-collapse 0.1.0) | 一、为什么是"套件",不是"合并源码" 三个选项摆出来对比过: | 方案 | 做法 | 问题 | | A. 源码合并 | 把 repeat 的 1,393 行搬进一个 index.js | 要 fork 一个生产验证过的插件。它经过 1,546 个会话校准、12 次真实拦截、0 失败;重写等于拿这些换一个本地分支,且上游更新再也拿不到 | | B. npm 套件依赖 | 新包 dependencies 引用两个包 | 本地安装不走 npm,依赖不会自动落地;桌面版又只能用界面装,链路太长 | | C. ▸ 本方案 | 一个目录,两个引擎原样 vendored 在 vendor/,apply 里组合 | 唯一代价:升级上游要手动替换 vendor/repeat 目录 | 选 C:装起来是一个包,跑起来是两套引擎,改起来互不影响。
展开完整文档(README 剩余 1 节)
dsh-guard-suite

一次安装,两种坍缩都管。

| 方向 | 表现 | 引擎 |
| 膨胀(expansion) | 同一句话重复几万次,137 万字符刷屏 | vendor/repeat(dsh-guard-repeat-output 2.1.7,原样 vendored) |
| 收缩(shrink) | 文本与动作一起变少,语气和断言密度不变 | vendor/collapse(dsh-guard-collapse 0.1.0) |

一、为什么是"套件",不是"合并源码"

三个选项摆出来对比过:

| 方案 | 做法 | 问题 |
| A. 源码合并 | 把 repeat 的 1,393 行搬进一个 index.js | 要 fork 一个生产验证过的插件。它经过 1,546 个会话校准、12 次真实拦截、0 失败;重写等于拿这些换一个本地分支,且上游更新再也拿不到 |
| B. npm 套件依赖 | 新包 dependencies 引用两个包 | 本地安装不走 npm,依赖不会自动落地;桌面版又只能用界面装,链路太长 |
| C. ▸ 本方案 | 一个目录,两个引擎原样 vendored 在 vendor/,apply 里组合 | 唯一代价:升级上游要手动替换 vendor/repeat 目录 |

选 C:装起来是一个包,跑起来是两套引擎,改起来互不影响。

二、共存是测出来的,不是猜的

两个插件都挂 agent/pre-step,所以必须先回答"会不会打架"。实测(mock host,同一 ctx):

listeners: llm/stream=1 agent/request-error=1 agent/pre-step=2
commands : collapse-repair, collapse-report, guard-cleanup

冲突点确实存在:同一 step 上,两个守卫各注入一条通知 → 消息数 2 → 3,模型收到两条互相矛盾的指令。

修法是加互通规则:collapse 在注入前检查是否已有任何 plugin:dsh-guard-* 通知,有就退让。

修复前:plugin:dsh-guard-collapse | plugin:dsh-guard-repeat-output | user (叠加) 修复后:plugin:dsh-guard-repeat-output | user (不叠加)

修复后又跑了全量回放:1,384 步 → 5 次干预(4 次模拟执行 + 1 次空想),T134 仍在列。

三、分工

| 层 | 引擎 | 触发时机 | 动作 |
| 流式 | repeat | 生成过程中 | 截断 + 丢弃 + 重发 |
| 步级 | collapse | 下一步开始前 | 注入一条动作指令 |

两者顺序:repeat 先注册,流包装在外层;collapse 在内层,看到的是已经被 repeat 准入的消息。

四、命令

| 命令 | 来源 | 作用 |
| /guard-cleanup | repeat | 清掉历史里的巨型重复块 |
| /collapse-report | collapse | 最近 12 步的工具/证据/断言比 + 未验证断言 |
| /collapse-repair | collapse | 遮掉历史里的空转步(只碰无 tool-call 的消息) |

五、安装

node install.mjs # 先看会改什么
node install.mjs --apply # 真的装

然后重启 DSH,在日志里确认三行:

[guard-repeat-output] active (...)
[guard-collapse] active (...)
[guard-suite] active: guard-repeat-output@2.1.7 + guard-collapse@0.1.0

少一行就是没加载。

六、配置

所有选项透传给两个引擎,写法不变:

- id: guard-suite
config:
repeat: { ... } # dsh-guard-repeat-output 的配置
collapse: { ... } # dsh-guard-collapse 的配置

默认值见 cordis.patch.yml,每一项都在原包文档里有说明。

六点五、对上游的补丁

vendored 的 repeat 2.1.7 不是原样照抄:审计发现 4 个缺陷,已修并留档。

| # | 缺陷 | 影响 |
| P1 | maxTruncationsPerTurn 是死配置(计数器从不递增、从不读取) | 每轮续写预算从未生效,多 step 轮次可无限注入 |
| P2 | pre-step 的 backstop 不查预算 | 即使 P1 修了,这条路径仍会把续写塞回去 |
| P3 | 模型不匹配时静默放行 | 无法区分「没触发」和「没运行」 |
| P4 | maxTruncationsPerTurn: 0 被拒绝 | 想禁用只能靠另一个开关 |

详见 PATCHES.md,含 3 个不修的已知盲区与调参建议。
升级上游时必须重新应用补丁并跑 test/patch-regression.mjs。

七、局限

1. vendored 不自动跟随上游。repeat 出了 2.2.0,要手动替换 vendor/repeat 并回归测试。
2. 两个引擎的阈值是各自校准的,合在一起不等于联合最优。改一个可能影响另一个的观感。
3. stop 不是 kill:collapse 的注入只是"要求换动作",模型仍可能嘴上答应、继续空转。真正的兜底是 /collapse-report 让你看见数字。
4. 未在真实 DSH 里加载验证(需要重启)。mock 与回放都过了,但"能装进去并跑"仍是 U。

许可

MIT。vendor/repeat 来自 dsh-guard-repeat-output 2.1.7(MIT,作者 Mcd0LUO),原样保留其 LICENSE。
预览分享卡片长什么样 ↓ganaha-HUD/dsh-guard-suite
分享 · DeepSeek Harness Hub
ganaha-HUD/dsh-guard-suite

拦截重复刷屏与文本收缩,保障输出稳定

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部