跳到正文

akira399/dsh-stall-guard

30最近提交 2026年8月14日

dsh-stall-guard DSH 插件

dsh-stall-guard 持续监控 DSH 中的任务执行状态,基于无活动事件和无在飞操作检测真卡死。采用阶梯式引导:先诊断,后修复,最后换方向,通过注入消息引导 Agent 自行恢复。插件永不终止任务。

如何安装 dsh-stall-guard DSH 插件

dsh plugin --profile web add github:akira399/dsh-stall-guard

复制不会执行命令。安装 dsh-stall-guard DSH 插件前请核对仓库和版本。

dsh-stall-guard DSH 插件数据来源

dsh-stall-guard DSH 插件快照日期:2026年8月16日

discovered

dsh-stall-guard DSH 插件能做什么

  • 基于活动事件和在飞操作检测真卡死,区分正常长运行与卡顿。
  • 三级阶梯引导(诊断→修复→换方向),通过注入 user/message 事件生效。
  • 可配置静默阈值、扫描间隔、冷却间隔等,支持热生效。
  • 事件记录到 events.jsonl 并提供状态查询 API(GET /api/dsh-stall-guard/status)。
  • 永不终止任务,只引导 Agent 自行恢复,避免意外终止。

dsh-stall-guard DSH 插件适合哪些场景

  • 防止长时间运行的任务因无进展而无限挂起。
  • 自动恢复复杂多步工作流中卡住的 Agent。
  • 调试因工具调用失败或 LLM 超时而挂起的任务。
  • 为生产环境中的 Agent 部署提供非破坏性的安全网。

dsh-stall-guard DSH 插件适合谁

  • 使用 DSH 运行长时间任务、希望自动检测卡死但不终止任务的用户。
  • 基于 DSH 构建 Agent 系统的开发者和运维人员。

dsh-stall-guard DSH 插件的限制

  • 仅基于“无事件+无在飞操作”判断卡死;正在推进但逻辑上卡住(如循环产生事件)无法检测。
  • 若 Agent 卡死在不可 await 的同步操作中,注入消息需等该操作完成后才被处理,可能无法及时恢复。
  • 插件依赖 DSH 的事件系统和 turn/step 事件,若事件管道损坏则可能无法正常工作。

dsh-stall-guard DSH 插件的仓库 README 摘录

以下文字摘自 dsh-stall-guard DSH 插件的上游仓库 akira399/dsh-stall-guard 的 README,版权归原作者,仅作引用。

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` 选项,也没有任何终止指令。 ## 安装 ```sh npx -p @deepseek-ai/dsh dsh plugin --profile web add github:akira399/dsh-stall-guard ``` 安装后重启 DSH。插件**默认启用**。 ## 配置(settings.yaml 的 `stall-guard` 命名空间) | 键 | 默认值 | 说明 | | --- | ---

阅读完整 README仓库许可: MIT

dsh-stall-guard DSH 插件常见问题

如何安装 dsh-stall-guard?

执行命令:`npx -p @deepseek-ai/dsh dsh plugin --profile web add github:akira399/dsh-stall-guard`,安装后重启 DSH。插件默认启用。

dsh-stall-guard 会终止任务吗?

不会。插件永不终止任务,只通过注入诊断、修复、换方向等引导消息帮助 Agent 自行恢复。插件没有 terminate 选项,也不会发出任何终止指令。

如何调整卡死检测阈值?

编辑 settings.yaml 文件,在 stall-guard 命名空间下修改。例如设置 `stall-guard.stallThresholdMs: 60000` 为 60 秒。修改后热生效,无需重启 DSH。

在哪里查看卡死事件日志?

事件记录在 ~/.dsh/stall-guard/events.jsonl 文件中,每行一个 JSON 事件(如 STALL、LONG_RUNNING、DIAGNOSED 等)。也可通过 GET http://127.0.0.1:3080/api/dsh-stall-guard/status 查看实时状态。

为什么我的长任务没有被检测为卡死?

插件仅在无事件且无在飞操作时才会触发卡死恢复。如果任务仍在产生事件(如工具调用、LLM 流式输出)或存在在飞操作,则视为“正在推进”,不会干预。这是为了避免误判正常长任务。