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

死循环自愈 terry2010/dsh-loop-recover

DeepSeek Harness
terry20104 天前有提交已提供中文文档扫描:含敏感能力

检测模型死循环并剪枝压缩上下文,自动续跑原任务

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · other
装得上吗
实装验证未通过(runtime_smoke_failed),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(runtime_smoke_failed · 2026/10/29) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 61 处,展示前 28 条)
  • 读取本地文件
    main.js:104
    const value = JSON.parse(readFileSync(join(root, DESKTOP_RUNTIME_FILE), "utf8"));
  • 删除本地文件
    main.js:2914
    unlink(options) {
  • 写入本地文件
    main.js:3323
    await rename(temp, filename);
  • 写入本地文件
    main.js:3350
    await mkdir(dirname(filename), {
  • 写入本地文件
    main.js:3356
    await writeFile(temp, content, {
  • 删除本地文件
    main.js:3362
    await rm(temp, { force: true });
  • 写入本地文件
    main.js:3411
    mkdirSync(dir, { recursive: true });
  • 读取本地文件
    main.js:3413
    if (!existsSync(manifestPath)) {
  • 写入本地文件
    main.js:3420
    writeFileSync(manifestPath, JSON.stringify(manifest, void 0, 2) + "\n");
  • 读取本地文件
    main.js:3423
    if (!existsSync(patchPath)) writeFileSync(patchPath, PROFILE_PATCH_TEMPLATE);
  • 写入本地文件
    main.js:3423
    if (!existsSync(patchPath)) writeFileSync(patchPath, PROFILE_PATCH_TEMPLATE);
  • 读取本地文件
    main.js:3425
    if (!existsSync(workspacePath)) writeFileSync(workspacePath, PROFILE_PNPM_WORKSPACE);
  • 读取本地文件
    main.js:3438
    if (!existsSync(owned)) return;
  • 删除本地文件
    main.js:3440
    for (const link of symlinksUnder(join(dir, "node_modules"))) if (pointsInto(link, ownedModules)) unlinkSync(link);
  • 删除本地文件
    main.js:3441
    rmSync(owned, {
  • 读取本地文件
    main.js:3449
    if (!existsSync(modules)) return links;
  • 删除本地文件
    main.js:3621
    unlinkSync(lockPath);
  • 删除本地文件
    main.js:3631
    unlinkSync(lockPath);
  • 执行外部命令来自配置/变量
    main.js:3794
    const child = spawn(this.node, [
  • 发起网络请求
    main.js:8230
    const response = await fetch(url, { redirect: "manual" });
  • 发起网络请求
    main.js:8291
    const response = await fetch(target, init);
  • 执行外部命令来自配置/变量
    main.js:9344
    child = spawn(shell, ["-ilc", DUMP], {
  • 发起网络请求
    main.js:9604
    const response = await this.request(url, {
  • 写入剪贴板
    main.js:10041
    await clipboard.writeText(url);
  • 读取剪贴板
    main.js:10042
    if (await clipboard.readText() !== url) throw new Error("desktop policy: clipboard did not retain download address");
  • 发起网络请求
    main.js:10131
    return this.browserSession.fetch(url.href, {
  • 发起网络请求
    main.js:12195
    welcomeBackend = await connectDesktopWelcome(ready.url, (input, init) => net.fetch(input, init), async () => (await session.defaultSession.cookies.get
  • 写入剪贴板
    main.js:12986
    await clipboard.writeText(platformLoginUrl(state.attempt.authorizeUrl));
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-compaction@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-session-format-v3-to-v4@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-loop-recover English README DeepSeek Harness 插件:检测模型死循环 → 流内剪枝 → 压缩上下文 → 自动续跑任务。 与只会"打断"的插件不同:循环内容不进会话日志,中毒上下文被检查点摘要物理替换,模型在干净上下文上继续跑同一个任务——不用开新会话。 真机已验证完整链路:检测 → 剪枝 → 压缩(97 条 shadow)→ 续跑 → 任务 completed。 工作流 模型进入死循环 → 流内检测命中 → 剪枝:循环尾巴不写入 session log → 压缩:旧上下文被 surfaceOp replace 整体 shadow,只留检查点摘要 → whenIdle → followup() 注入续跑消息 → 任务继续 检测能力 | 层 | 抓什么 | | periodic | abc123×N 字面复读 | | ngram | 64 字符块复现 3+ 次(措辞不同的语义打转) | | anchor | 大段内容整体重写 | | charrun | sssssss 单字符坍缩(实义字符 ≥128,---- 等符号不误伤) | | pool | 短句散布重复(叙事型打转,真实长任务验证) | | intent | web_search 换措辞搜同一主题 → steer 纠正 | 三种模式
展开完整文档(README 剩余 1 节)
dsh-loop-recover

English README

DeepSeek Harness 插件:检测模型死循环 → 流内剪枝 → 压缩上下文 → 自动续跑任务。

与只会"打断"的插件不同:循环内容不进会话日志,中毒上下文被检查点摘要物理替换,模型在干净上下文上继续跑同一个任务——不用开新会话。

真机已验证完整链路:检测 → 剪枝 → 压缩(97 条 shadow)→ 续跑 → 任务 completed。

工作流

模型进入死循环 → 流内检测命中 → 剪枝:循环尾巴不写入 session log → 压缩:旧上下文被 surfaceOp replace 整体 shadow,只留检查点摘要 → whenIdle → followup() 注入续跑消息 → 任务继续

检测能力

| 层 | 抓什么 |
| periodic | abc123×N 字面复读 |
| ngram | 64 字符块复现 3+ 次(措辞不同的语义打转) |
| anchor | 大段内容整体重写 |
| charrun | sssssss 单字符坍缩(实义字符 ≥128,---- 等符号不误伤) |
| pool | 短句散布重复(叙事型打转,真实长任务验证) |
| intent | web_search 换措辞搜同一主题 → steer 纠正 |

三种模式

| mode | 行为 |
| rescue(默认) | 中断 + 剪枝 + 压缩 + 自动续跑 |
| cut | 中断 + 剪枝,不续跑 |
| observe | 只记日志不干预(建议先跑观察误伤率) |

maxConsecutiveRescues(默认 3)防止无限套娃;正常输出自动重置计数。

安装(桌面版)

dsh plugin --profile desktop add github:terry2010/dsh-loop-recover
注意:桌面 app 跑的是 desktop profile,不是 web

重启 app 后,插件列表里出现 loop-recover 即生效。

⚠️ 冲突说明(必须二选一,否则会互相干扰)

| 插件 | 冲突原因 |
| dsh-agent-loop-guard / @mrweicodes/dsh-loop-guard | 同时包装 llm/stream:循环触发时两个插件各自截断输出、各发各的 block-end——流被双重切断,session 记录错乱,任务直接失败 |
| dsh-client-auto-continue | 重复唤醒:任务暂停时它和本插件的 followup 各自发续跑消息,模型收到两条冲突指令,行为不可预期 |
| dsh-session-shift | 职责重叠:它的上下文压力接续(≥60% 自动开新会话)和本插件的压缩续跑会叠加触发——一边压缩一边开新会话 |

建议:想试本插件,先把上面三个都禁用;确认稳定后再决定保留哪个组合。

配置(cordis.patch.yml)

- id: loop-recover
config:
mode: rescue # rescue | cut | observe
watch: both # both | reasoning | text
maxConsecutiveRescues: 3
retryTemperature: 1.0 # 续跑请求换采样参数,打破确定性复读 retryReasoningEffort: low retryRequests: 1 compactOnRescue: true # 续跑前压缩上下文 detector: runMinChars: 128 # 单字符刷屏阈值 ngramSize: 64 anchorSize: 512 poolMinRepeats: 4 # 散布短句重复阈值 intentEnabled: true

开发

npm install
npm test # 46 个单测+集成测
npm run check # 插件加载冒烟

真实死循环样本回归:test/fixtures-real-loop.txt(Ornith 长上下文实采)。

License

MIT。检测器/意图检测 vendor 自 dsh-loop-detector(viego-qiin),剪枝/续跑机制移植自 dsh-loop-rescue(citydirector),压缩接力参考 rice-patrol(LeeLizuoLiu)。
预览分享卡片长什么样 ↓terry2010/dsh-loop-recover
分享 · DeepSeek Harness Hub
terry2010/dsh-loop-recover

检测模型死循环并剪枝压缩上下文,自动续跑原任务

回到顶部