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 聲明是否一致,可識別缺失 timer、tools、settings 等服務,並給出修復提示。

預檢命令如下:

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

返回內容包括 running、busy、嵌套深度、近期調用數和 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

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

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

小夜