DSH Plugins
返回列表
🧩

dsh-repeat-tool-breaker

admin-security 更新于 2026.09.16

在终端中运行以下命令:

dsh plugin install snailium/dsh-repeat-tool-breaker

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中执行 dsh plugin install snailium/dsh-repeat-tool-breaker 安装该插件,源码仓库为 https://github.com/snailium/dsh-repeat-tool-breaker

插件介绍

DeepSeek Harness 中的 Agent 循环有一个隐蔽的陷阱:模型把描述字段从 1st 换成 2nd、把 --max-time 在 60 和 30 之间轮换、或者在 open-data.canada.ca 与 open.canada.ca 之间来回切换——每一次调用看起来都是全新的,字节级计数器永远无法推进。官方的 dsh-repeat-tool-reminder 只在调用执行之后注入一条提示,已经为时过晚。dsh-repeat-tool-breaker 在同步的 tools.guard 关卡上介入:阈值触达时工具体根本不会执行,模型直接收到以 REPEAT_TOOL_BLOCKED 开头的 isError 结果,其中引用了上一次的返回值并给出替代路径建议。

核心机制是一条语义指纹流水线。在构建任何指纹之前,先剥离诱饵参数:序号描述、--max-time 等易变标志、-sSL 组合、主机别名折叠等。之后八个独立维度在每 Agent 最近 16 次调用的滑动窗口上计数:exact、cmd、net、host、site、sink、family、verb。任意一个维度触达上限即触发拒绝,因此绕过 net 仍会撞上 cmd 或 sink。三级递进在精确计数相等时触发:7 次轻警告、11 次强制书面摘要(已验证事实、未验证假设、失败原因、至少两条未尝试的路径,并建议使用更大的批量以减少轮次)、12 次硬拦截(较粗粒度的 host 维度上限为 16)。拦截时操作员可选择一次性回合级豁免(onLimit: ask,默认值),或直接拒绝;所有无人值守场景下 ask 自动退化为 deny,确保 headless 配置不会卡死。

适用于让 Agent 发起 bash、curl 或 HTTP 工具调用的 DSH 操作员,尤其是无人值守或 headless 生产环境。零运行时依赖,要求 Node 20 及以上,可与官方 reminder 插件叠加使用:reminder 提供软性提醒,breaker 提供递进硬拦截。

使用场景

  • Agent 反复 curl 同一主机但轮换参数,循环始终无法收敛
  • Headless 环境下 Agent 陷入重复工具调用循环且无人干预
  • 与官方 reminder 插件叠加,形成软提醒加硬拦截的双层防护

适合人员

  • 让 Agent 发起 bash、curl 或 HTTP 调用的 DSH 操作员
  • 运行 headless 或无人值守 Agent 管线的平台团队
  • 需要同步硬拦截而非事后提醒的安全策略制定者