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

失败熔断 FenrirCait/dsh-fail-guard

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

同一工具连续失败时叫停并让模型报告原因

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
  • 写入本地文件
    lib/index.js:115
    appendFileSync(logPath(), `${new Date().toISOString()} ${msg}\n`);
  • 写入本地文件
    index.js:115
    appendFileSync(logPath(), `${new Date().toISOString()} ${msg}\n`);
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DSH 插件:同一工具连续失败 N 次后就让智能体停下,推送四段式停止指令,不再重试。

README

由 DeepSeek 最新模型翻译生成
dsh-fail-guard 同一工具连续失败 N 次之后叫停,推一条四段式停手指令(试过什么 / 完整错误原文 / 初判原因 / 需要用户做什么),让它来报告,而不是再试第四种命令写法。 为什么需要外部打断 思考里的复读(「做。做。做。」)一般不是模型退化,是连续试错留下的:同一件事失败、换参数、再失败,没有新信息,同一个「该动手了」被反复重下。 提示词层的规则(「连续失败两次就停手」)在这种状态下无效——那时候模型读的不是提示词,是它自己的 thinking。 所以打断必须来自外部。 实测依据:一份 74 轮的会话里,前 67 轮短句行占比在 7–48% 波动,从连续十几步失败那一刻断崖跳到 81.6%,之后 85.9% / 89.1% / 91.4%。 安装 dsh plugin --profile desktop add dsh-fail-guard 重启一次。cordis.patch.yml 通过 dsh.bundle manifest 自动应用,不用手写 profile 配置。 配置 在 插件 → dsh-fail-guard → 详情 里改。字段标了 .volatile(),保存即生效,不用重启。
展开完整文档(README 剩余 1 节)
dsh-fail-guard

同一工具连续失败 N 次之后叫停,推一条四段式停手指令(试过什么 / 完整错误原文 / 初判原因 / 需要用户做什么),让它来报告,而不是再试第四种命令写法。

为什么需要外部打断

思考里的复读(「做。做。做。」)一般不是模型退化,是连续试错留下的:同一件事失败、换参数、再失败,没有新信息,同一个「该动手了」被反复重下。

提示词层的规则(「连续失败两次就停手」)在这种状态下无效——那时候模型读的不是提示词,是它自己的 thinking。 所以打断必须来自外部。

实测依据:一份 74 轮的会话里,前 67 轮短句行占比在 7–48% 波动,从连续十几步失败那一刻断崖跳到 81.6%,之后 85.9% / 89.1% / 91.4%。

安装

dsh plugin --profile desktop add dsh-fail-guard

重启一次。cordis.patch.yml 通过 dsh.bundle manifest 自动应用,不用手写 profile 配置。

配置

在 插件 → dsh-fail-guard → 详情 里改。字段标了 .volatile(),保存即生效,不用重启。

| 键 | 默认 | 含义 |
| threshold | 2 | 连续失败几次后叫停 |
| sameToolOnly | true | 按工具分别计数;关掉则所有工具共用一个计数 |
| stopText | 内置 | 推给模型的那条指令 |
| stopSummary | 内置 | 界面上显示的一行摘要 |
| debug | false | 把事件、计数、叫停写进日志文件 |
| logFile | <插件目录>/fail-guard.log | 日志路径 |

也可以直接写 cordis.patch.yml:

- id: dsh-fail-guard
config:
threshold: 3

判定

一条 tool/result 满足任一条件就算失败:message.isError === true,或 meta.opsShell.exitCode 存在且非零。两条都要看——退出码为 1 的 shell 命令不会被标 isError,而有些工具级错误不带退出码。计数按「会话 + 工具」分组,任何一次成功都清零。

边界

- 不中止刚失败的那次调用(已经发生了)
- 不判断「算不算真失败」,任何非零退出都算
- 不重置对话,停手指令只是多一条用户消息
- 不是限流器:叫停后继续失败会重新计数,再达阈值会再叫停一次

许可证

MIT
预览分享卡片长什么样 ↓FenrirCait/dsh-fail-guard
分享 · DeepSeek Harness Hub
FenrirCait/dsh-fail-guard

同一工具连续失败时叫停并让模型报告原因

这是你的仓库?认领条目

回到顶部