DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Loop Guard — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

dsh-loop-guard

Loop Guard

面向 DeepSeek Harness 的结果感知型卡死循环防护:提供建议性提示以及单调递进的硬停止机制。只有结果完全相同的重复操作才会计入,因此持续推进的轮询和编辑后的重新读取不会触发防护。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:erdholion/dsh-loop-guard#de00fedba7e2de23f96085526263a6e9a67b33e9
README兼容性版本

兼容性与来源证明

Loop Guard 以 dsh-loop-guard 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/31

版本

0.1.0stable
2026/8/31
最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-loop-guard

Result-aware stuck-loop guard for DeepSeek Harness: advisory nudges plus a monotonic hard stop.

Why

A stage that repeats the same tool call and keeps getting the same result is stuck — it burns steps (and tokens) without producing new information. This plugin ports a guard that ran for weeks in front of a multi-harness LLM gateway, where the two-stage design measurably turned aborted agentic runs into completed ones (the pattern follows OpenHands' StuckDetector lineage).

The key design decision is that only repeats with identical results count. Requiring result identity whitelists legitimate repeats for free, with no tool-name configuration:

  • polling a job status that progresses → results differ → never triggers
  • re-reading a file after an edit → result differs → never triggers
  • retrying a flaky command that eventually behaves differently → never triggers

How it relates to @deepseek-ai/dsh-repeat-tool-reminder

The official base bundle already ships an advisory repeat detector. This plugin is complementary, not a replacement:

repeat-tool-reminder (official)dsh-loop-guard
Chain identitytool name + argumentstool name + arguments + result
Progressing poll loopstrigger reminders (unless excluded by pattern)transparent, never trigger
Enforcementnever — advisory only, by designdenies further identical calls at the hard threshold
A model that ignores remindersloops until the turn/budget diesstopped, with corrective feedback it can act on

Running both is fine: the reminder nudges early on argument-identical repeats; this guard only engages when the loop is provably sterile (identical results), and it is the only one of the two that can end it. The denial is a normal error result — the session survives and the model gets corrective feedback, which matters for frontends that treat provider-level 4xx errors as fatal.

Install

dsh plugin --profile <name> add github:erdholion/dsh-loop-guard

Or from a local checkout: dsh plugin --profile <name> add ./dsh-loop-guard.

Behavior

Per agent, the guard tracks the run length of consecutive tool calls with identical (name, canonically key-sorted arguments) and identical result content.

  • Soft stage (run ≥ softThreshold, default 4): each further identical repeat injects a plugin-sourced notice after the tool result telling the model the calls are identical, that repeating will be denied at the hard threshold, and to act on what it already knows.
  • Hard stage (run ≥ hardThreshold, default 8): a monotonic tool guard denies the next identical call with corrective feedback. Non-identical calls are unaffected; the chain freezes while denials repeat, so the guard stays engaged until the model changes its action.
  • Reset: a genuine user interjection (source.kind === 'user') resets the chain — repetition across a user message is not a loop. The guard's own injected notices are plugin-sourced and do not reset anything.

Config

- id: loop-guard
  name: dsh-loop-guard
  config:
    softThreshold: 4     # 0 disables nudges
    hardThreshold: 8     # 0 disables denial; must exceed softThreshold
    resultHashChars: 4000 # serialized-result prefix that participates in the hash

Invalid config (non-integer, negative, hard ≤ soft) throws at plugin load — a misconfigured guard fails loud, never silently.

License

MIT