dsh-guardian:DSH 任务防护插件

前言

DSH 的插件体系把能力拆到多个插件里,但插件声明不完整、任务原地循环、子代理嵌套过深、宿主重启打断会话等问题,都会影响正在执行的任务。

akira399/dsh-guardian 针对这些情况提供检测和引导:它不直接终止任务,而是通过注入 user/message 引导 Agent 调整方向,同时提供预检、状态查询和事件日志入口。

这是什么

dsh-guardian 是 DeepSeek Harness(DSH)任务防护插件,由 akira399 维护,许可证为 MIT,版权标注为 MIT © 2026 dsh-guardian contributors

它的定位是:通过插件预检、循环检测、递归防护与中断感知做检测和引导,永不终止任务。package.json 声明运行环境为 node >=20

核心功能

插件预检

插件预检用于检查插件源码中的服务声明是否与用法一致。它会静态分析 ctx.<服务> 用法与 inject 声明是否一致,可识别缺失 timertoolssettings 等服务,并给出修复提示。

预检命令如下:

node <dsh-guardian>/scripts/preflight.mjs <插件目录或 index.js>

也可以在代码中调用:

import { scanSource } from "dsh-guardian/preflight";

循环检测

循环检测关注同一工具调用是否反复发生。

当同一工具调用,按“名称 + 参数指纹”判断,在滑动窗口内重复达到 maxLoopRepeats 时,插件会判定为循环,然后注入换方向提示,并记录 LOOP_DETECTED

递归防护

递归防护关注子代理和工作流嵌套深度。

当子代理或工作流嵌套深度超过 maxSubagentDepth 时,插件会注入收敛提示,并记录 RECURSION_DETECTED

中断感知

中断感知通过状态路由提供当前会话的运行信息。

状态路由会返回:

  • running
  • busy
  • 嵌套深度
  • 近期调用数
  • safeToRestart

其中 safeToRestart 用于判断当前是否适合重启。资料中的安全重启助手会先查这个字段:如果存在运行中会话,则拒绝重启,除非使用 -Force

事件日志与状态查询

事件会写入 guardian/events.jsonl。资料中给出的本地查看路径为:

~/.dsh/guardian/events.jsonl

状态路由可以查询最近 50 条事件。

不终止任务

dsh-guardian 的核心行为是引导,而不是终止。

它通过注入 user/message 引导 Agent 调整方向,不会主动结束任务。

安装与启用

由于插件以当前 dsh 进程权限运行,安装前建议先检查源码与许可证。

确认环境满足 node >=20 后,执行安装命令:

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

插件默认启用。修改 guardian 配置后热生效,无需重启。

典型用法

运行插件预检

对某个插件目录或入口文件做预检:

node <dsh-guardian>/scripts/preflight.mjs <插件目录或 index.js>

在代码中调用预检

如果需要在自己的工具链里做静态检查,可以导入预检模块:

import { scanSource } from "dsh-guardian/preflight";

查看状态

状态路由如下:

GET /api/dsh-guardian/status

资料中也给出了具体地址示例:

GET http://127.0.0.1:3080/api/dsh-guardian/status

返回内容包括 runningbusy、嵌套深度、近期调用数和 safeToRestart,并可查询最近 50 条事件。

安全重启助手

安全重启脚本会先检查 safeToRestart。如果仍有会话运行,它会拒绝重启,除非使用 -Force

命令示例:

powershell -NoProfile -ExecutionPolicy Bypass -File <dsh-guardian>\scripts\safe-restart.ps1

资料中仅说明强制重启可加 -Force,未给出完整命令。

配置示例

settings.yaml 中的 guardian 配置示例如下:

guardian:
  maxLoopRepeats: 4
  maxSubagentDepth: 3

修改 guardian 配置后热生效,无需重启。

查看事件日志

事件日志路径示例:

~/.dsh/guardian/events.jsonl

资料中事件日志路径同时出现 $DSH_HOME/guardian/events.jsonl~/.dsh/guardian/events.jsonl,两者关系未明确。

运行验证

资料中给出的验证命令:

pnpm verify

适用场景与注意

适合需要管理 DSH 插件、检查插件声明、观察长任务状态,并希望在重启前确认会话是否安全的人。

使用注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • dsh-guardian 只做检测和引导,不终止任务。
  • 资料未确认插件分类与星标数。
  • 目录页链接来自线索,未抓取目录页正文。
  • safe-restart.ps1 的强制重启资料仅说明可加 -Force,未给出完整命令。

结尾

dsh-guardian 的价值在于把 DSH 任务运行中常见的风险点做成可检查、可观察、可引导的防护路径:插件预检、循环检测、递归防护、中断感知,以及安全重启检查。它不提供任务终止动作,而是通过提示和事件记录帮助 Agent 和开发者保持任务可控。

GitHub:
https://github.com/akira399/dsh-guardian

目录页(线索,未抓取正文):
https://www.skillhub.cn/plugins/akira399/dsh-guardian

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye