DeepSeek Harness 插件

dsh-stall-guard

DeepSeek Harness watchdog plugin with a monitor → judge → continue/fix/redirect flow and NO task termination: in-flight operations are treated as progress (never steered), and only true silence tri...(英文原文)

跳到安装方式

来源信息

GitHub 仓库
akira399/dsh-stall-guard
最近更新
2026年8月14日
分类
安全与权限
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/akira399/dsh-stall-guard
插件名:dsh-stall-guard
作者:akira399

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-stall-guard

DeepSeek Harness(DSH)任务看门狗插件:监控任务执行状态,判断是否真正卡死,并通过"排查→修复→换方向"的阶梯式引导帮助任务恢复——全程不终止任何任务

核心流程(监控 → 判断 → 继续 / 修复 / 换方向)

agent/status (running/idle) ─┐
session/event (turn/step/tool/llm) ─┼─→ 追踪每个会话的"最后活动时间"与"在飞操作"
                                  │
周期扫描(checkIntervalMs)──→ 运行中且 静默 > stallThresholdMs ?
                                  │
          ├─ 有在飞操作(busy>0)或持续有事件 → 判定"推进中" → 继续执行,不干预
          │       (超 busyTimeoutMs 仅记一条 LONG_RUNNING 日志)
          │
          └─ 真静默(无事件 + 无在飞)→ 阶梯式引导(注入提示消息):
               第1级 诊断(DIAGNOSED)  :请 Agent 排查当前状态、说明卡住原因(附看门狗诊断现场)
               第2级 修复(FIXING)     :请 Agent 针对卡点重试/完成/修复后继续
               第3级+ 换方向(REDIRECTING):请 Agent 放弃当前方法、改用替代方案持续推进
               (每级按冷却间隔推进,第3级后循环;任何活动事件都会重置回第1级)
                                  │
                        事件写入 $DSH_HOME/stall-guard/events.jsonl
                        状态查询 GET /api/dsh-stall-guard/status

关键承诺:插件永不终止任务。 它只通过注入消息引导 Agent 自己排查、修复、换方向;没有 terminate 选项,也没有任何终止指令。

安装

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

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

配置(settings.yaml 的 stall-guard 命名空间)

默认值说明
enabledtrue总开关
stallThresholdMs120000真静默阈值(毫秒):运行中、无任何事件、且无在飞操作时,静默超过该值判定卡顿
checkIntervalMs5000扫描间隔(毫秒)
busyTimeoutMs600000在飞操作观察窗口(毫秒):有工具调用 / LLM 请求在飞 = 任务在推进,永不引导;仅静默超过该值后记录一条 LONG_RUNNING0 关闭该记录
stallRecordIntervalMs60000STALL 记录节流间隔(毫秒),防止持续卡顿时日志刷屏
policy"auto"auto(诊断→修复→换方向阶梯)/ report(仅记录不引导)
nudgeCooldownMs30000阶梯消息的冷却间隔(毫秒)
diagnoseMessage内置默认第 1 级:排查指令(自动附加诊断现场:最后活动、位置、静默时长)
fixMessage内置默认第 2 级:修复指令
redirectMessage内置默认第 3 级+:换方向指令

示例:

stall-guard:
  stallThresholdMs: 60000
  checkIntervalMs: 3000
  policy: auto

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

防误杀:什么才算"卡住"

任务情况判定行为
持续有事件(步骤/工具/LLM 流在动)推进中不动(计时持续刷新,任何活动都会把阶梯重置回第 1 级)
单个长操作在飞(如 10 分钟构建、长文本生成)推进中busy > 0不引导、不干预;超过 busyTimeoutMs 仅记一条 LONG_RUNNING
无任何事件 + 无在飞操作,静默超 stallThresholdMs真卡死阶梯式引导(诊断 → 修复 → 换方向循环)

"任务执行时间长"≠"卡住":只要项目有推进(事件或在飞操作),看门狗就不会碰它。

查看状态

  • 事件日志:~/.dsh/stall-guard/events.jsonl(每行一个 JSON 事件:STALL / LONG_RUNNING / DIAGNOSED / FIXING / REDIRECTING永远没有终止类事件
  • 实时状态:GET http://127.0.0.1:3080/api/dsh-stall-guard/status(当前配置、各会话看门状态含 ladderStage、最近 50 条事件)

设计边界(重要)

  • 检测:基于"运行中 + 无活动事件 + 无在飞操作"判定卡顿,覆盖:LLM 调用挂起、工具调用挂起、循环空转等无进展场景。turn/start/turn/end 驱动运行状态,插件从 turn 打开即开始监视(即使错过 agent/status 事件)。
  • 在飞豁免tool/call→tool/resultrequest/header→assistant/messagetool-workflow/run-* 维护在飞计数;有操作在飞 = 推进中,绝不引导。
  • 引导方式:通过注入 user/message 事件生效(这是外部向 Agent 输入消息的合法通道);若 Agent 卡死在一个永不返回的 await 上,注入消息会排队到该步骤结束后才被处理——此时继续等待下一级引导,永不终止。
  • 诊断信息:每条阶梯消息都附带看门狗自己的诊断(最后活动事件、turn/step 位置、静默时长),帮助 Agent 快速定位卡点。
  • 上报:事件落盘 + 状态路由 + 插件日志。GUI 通知可作为后续增强。

验证

pnpm verify

覆盖:语法、默认配置、活动追踪、在飞豁免(长工具不引导、在飞 LLM 永不引导)、真静默检测、诊断→修复→换方向阶梯、换方向循环不终止、活动重置阶梯、STALL 节流防刷屏、turn/start 独立触发监视、无任何终止事件、事件落盘、状态路由、隐私扫描。

许可

MIT © 2026 dsh-stall-guard contributors