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

任务防护插件 akira399/dsh-guardian

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

预检插件声明并防循环递归,安全重启不中断任务

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/08·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 82 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件
查看扫描证据(共 3 处,展示前 3 条)
  • 写入本地文件
    lib/index.js:130
    mkdirSync(LOG_DIR, { recursive: true });
  • 写入本地文件
    lib/index.js:131
    appendFileSync(LOG_FILE, JSON.stringify(line) + "\n", "utf8");
  • 读取本地文件
    lib/preflight.js:106
    const source = readFileSync(file, "utf8");
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 预检缺失inject声明
  • 循环检测
  • 递归防护

DeepSeek Harness 任务保护插件:预检扫描器(抓出缺失的 inject 声明,这类声明会让宿主崩溃)、循环检测、递归防护,以及带安全重启助手的打断感知。绝不终止任务。

README

由 DeepSeek 最新模型翻译生成
dsh-guardian DeepSeek Harness(DSH)任务防护插件:把真实故障中总结的教训变成主动防护,防止任务意外中断、防止任务把系统带入自我递归或崩溃状态。永不终止任务,只做检测、引导与上报。 防护机制(对应四条教训) 1. 插件预检:防止“坏插件把宿主搞崩” 历史事故:插件用了 ctx.setInterval(timer 服务)却漏声明 inject: ["timer"] → Cordis 启动抛 cannot get property "timer" without inject → 整棵插件树崩溃、宿主宕机、会话中断。 防护:部署任何新插件前运行预检扫描器,静态分析 lib/index.js 的 ctx. 用法与 inject 声明是否一致: node /scripts/preflight.mjs - ✅ 通过:inject 声明完整(含 timer 类:ctx.setInterval/setTimeout/...) - ❌ 失败:列出缺失的服务名(timer/tools/settings...)并给出修复提示 - 智能识别:ctx.get("X") / ctx.inject(["X"], cb) 的嵌套获取不需要顶层声明;sctx./wctx. 作用域上下文不会被误判
展开完整文档(README 剩余 1 节)
dsh-guardian

DeepSeek Harness(DSH)任务防护插件:把真实故障中总结的教训变成主动防护,防止任务意外中断、防止任务把系统带入自我递归或崩溃状态。永不终止任务,只做检测、引导与上报。

防护机制(对应四条教训)

1. 插件预检:防止“坏插件把宿主搞崩” 历史事故:插件用了 ctx.setInterval(timer 服务)却漏声明 inject: ["timer"] → Cordis 启动抛 cannot get property "timer" without inject → 整棵插件树崩溃、宿主宕机、会话中断。

防护:部署任何新插件前运行预检扫描器,静态分析 lib/index.js 的 ctx. 用法与 inject 声明是否一致:

node /scripts/preflight.mjs

- ✅ 通过:inject 声明完整(含 timer 类:ctx.setInterval/setTimeout/...)
- ❌ 失败:列出缺失的服务名(timer/tools/settings...)并给出修复提示
- 智能识别:ctx.get("X") / ctx.inject(["X"], cb) 的嵌套获取不需要顶层声明;sctx./wctx. 作用域上下文不会被误判

也可在代码里直接调用:import { scanSource } from "dsh-guardian/preflight"。

2. 循环检测:防止任务原地打转同一工具调用(名称 + 参数指纹)在滑动窗口内重复 ≥ maxLoopRepeats 次 → 判定循环 → 注入换方向提示 + 记录 LOOP_DETECTED。

3. 递归防护:防止自我递归失控子代理/工作流嵌套深度(tool-workflow/agent-start→agent-end 计数)超过 maxSubagentDepth → 注入收敛提示 + 记录 RECURSION_DETECTED。

4. 中断感知:防止任务执行中被打断 GET /api/dsh-guardian/status 返回:
- 各会话的 running / busy / 嵌套深度 / 近期调用数
- safeToRestart:只要还有会话在运行就为 false——重启宿主前先查这里,避免把正在执行的任务连同宿主一起杀掉(本会话多次中断的根因)。

安全重启助手(强制机制):直接重启仍可能因疏忽打断任务,因此提供 scripts/safe-restart.ps1——它先查 safeToRestart,有会话在运行就拒绝重启(除非 -Force):

powershell -NoProfile -ExecutionPolicy Bypass -File \scripts\safe-restart.ps1
强制重启(仅在确实需要时):加 -Force

所有事件写入 $DSH_HOME/guardian/events.jsonl,状态路由可查最近 50 条。

安装

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:akira399/dsh-guardian

安装后重启 DSH。插件默认启用。

配置(settings.yaml 的 guardian 命名空间)

| 键 | 默认值 | 说明 |
| enabled | true | 总开关 |
| maxLoopRepeats | 5 | 同一工具+参数重复多少次判定循环 |
| loopWindowSize | 8 | 循环检测滑动窗口(最近 N 次工具调用) |
| maxSubagentDepth | 5 | 子代理/工作流嵌套深度上限 |
| cooldownMs | 30000 | 引导消息冷却间隔(防止刷屏) |
| policy | "auto" | auto(检测到即引导)/ report(仅记录) |
| loopMessage | 内置默认 | 循环时注入的换方向提示 |
| recursionMessage | 内置默认 | 递归超深时注入的收敛提示 |

示例:

guardian:
maxLoopRepeats: 4
maxSubagentDepth: 3

修改后热生效(无需重启)。

查看状态

- 事件日志:~/.dsh/guardian/events.jsonl(GUARDIAN_ARMED / LOOP_DETECTED / LOOP_STEERED / RECURSION_DETECTED / RECURSION_STEERED)
- 实时状态:GET http://127.0.0.1:3080/api/dsh-guardian/status(配置、会话看门状态、safeToRestart、最近 50 条事件)

与 dsh-stall-guard 的分工

| 插件 | 关注点 | 动作 |
| dsh-stall-guard | 静默:无事件 + 无在飞操作超时 | 诊断→修复→换方向阶梯引导 |
| dsh-guardian | 空转:有事件但在循环/递归 / 崩溃预防:插件注入预检 / 中断感知 | 循环/递归换向引导 + 预检 + safeToRestart |

两者都不终止任务,只通过注入 user/message 引导 Agent。

验证

pnpm verify

覆盖:语法、预检扫描器(真实插件通过 / 缺 timer·tools 的坏插件被拦截 / core-only 通过)、循环检测与冷却、递归深度防护、report 策略、safeToRestart 判定、事件落盘、隐私扫描。

许可

MIT © 2026 dsh-guardian contributors
预览分享卡片长什么样 ↓akira399/dsh-guardian
分享 · DeepSeek Harness Hub
akira399/dsh-guardian

预检插件声明并防循环递归,安全重启不中断任务

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