🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

循环刹车器 Mlte0907/dsh-brake

DeepSeek Harness
Mlte090743 天前有提交已提供中文文档扫描:未发现敏感能力

检测会话中的重复调用与循环,及时提醒或拦截

28.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Mlte0907/dsh-brake
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · security
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 43 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 检测会话方法循环
  • 识别同类工具高频调用
  • 注入警告或拒绝执行

DSH 死循环刹车器:检测 agent 会话中的方法循环(同类工具高频调用),注入警告或拒绝执行

README

由 DeepSeek 最新模型翻译生成
dsh-brake Summary dsh-brake 是一个 DSH 插件,防止 agent 会话空转:它观察已执行的工具调用与新注入的上下文,在同样的工作反复出现且没有进展时提醒模型。它检测重复的相同调用、重复的调用序列和重复的文本块,并以插件来源的通知附加到下一次模型请求。默认只提醒;可选的 deny 模式增加单调守卫,在执行前拒绝已确认的重复调用。 Table of Contents - Use this package - Understand the implementation - Model Experience - Known Limitations and Deferred Work - Dev Note Use this package Install into a profile cd ~/.dsh/profiles/web # 或你的 profile 目录 pnpm add /path/to/dsh-brake 然后在 profile 的 package.json 中,把 "dsh-brake" 加入 dsh.profile.bundles 数组。 What you get - 重复调用提醒。 相同工具名 + 相同规范化参数,跨执行累计计数。
展开完整文档(README 剩余 1 节)
dsh-brake

Summary

dsh-brake 是一个 DSH 插件,防止 agent 会话空转:它观察已执行的工具调用与新注入的上下文,在同样的工作反复出现且没有进展时提醒模型。它检测重复的相同调用、重复的调用序列和重复的文本块,并以插件来源的通知附加到下一次模型请求。默认只提醒;可选的 deny 模式增加单调守卫,在执行前拒绝已确认的重复调用。

Table of Contents

- Use this package
- Understand the implementation
- Model Experience
- Known Limitations and Deferred Work
- Dev Note

Use this package

Install into a profile

cd ~/.dsh/profiles/web # 或你的 profile 目录
pnpm add /path/to/dsh-brake

然后在 profile 的 package.json 中,把 "dsh-brake" 加入 dsh.profile.bundles 数组。

What you get

- 重复调用提醒。 相同工具名 + 相同规范化参数,跨执行累计计数。首次提醒在 callWarnCount(默认 6),之后每多重复 callReWarnEvery 次(默认 5)才再次提醒——绝不逐调用刷屏。
- 序列循环提醒。 sequenceLength 次不同调用组成的窗口(默认 4,最小 2)重复出现——例如 grep → curl → read → bash 循环——在 sequenceCount 次重复(默认 3)时提醒。序列身份包含参数,换查询就是新序列。
- 重复上下文提醒。 同一文本块(换行规范化后指纹,最少 minimumDuplicateChars 字符)在 duplicateTextWindowMs 内被不同消息 ID 反复注入,或单条消息内多次出现。按消息 ID 计数,历史重放不会累计;同一指纹受 duplicateTextCooldownMs 节流。提醒会列出观察到的来源。
- 可选拒绝。 mode: 'deny' 时,ctx.tools.guard 在 callDenyCount 次重复后拒绝该确切调用身份。其余一切保持提醒。人类消息重置该 agent 的全部计数。

Configuration

- id: dsh-brake
config:
mode: remind # remind | deny
callWarnCount: 6 # 首次调用提醒的重复次数 callDenyCount: 10 # deny 模式阈值;必须 > callWarnCount callReWarnEvery: 5 # 同一重复链两次提醒之间至少再累计的次数 sequenceLength: 4 # 序列长度(最小 2) sequenceCount: 3 # 序列提醒的重复次数 duplicateTextThreshold: 3 # 窗口内提醒的注入次数 duplicateTextWindowMs: 120000 duplicateTextCooldownMs: 30000 minimumDuplicateChars: 80

非法值在插件加载时抛出;绝不静默回退。

Tests

node test/test-brake.js

直接驱动真实插件入口(lib/index.js),覆盖两条 waterfall 与守卫契约:阈值、节流、按参数身份、deny 范围、重复文本计数(含消息 ID 去重与冷却)、人类消息重置、下游保留和配置快速失败。

Understand the implementation

Implementation internals — click to expand

apply() 注册两条 waterfall 监听器,deny 模式下再加一条守卫。tools/post-execute 总是先调用 next(),再把提醒叠加到下游决策的 additionalContexts;被拒绝的调用也经过同一 waterfall,所以模型反复重试被拒调用同样计数。agent/pre-step 只检查本步骤领取的消息(按消息 ID 去重),把提醒追加到 enter 决策的 messages,并在出现人类消息(source.kind === 'user')时重置全部状态。提醒是 createUserMessage() 生成的消息,带 { kind: 'plugin', plugin: 'dsh-brake', form: 'notice' } 来源,因此有稳定 id 并以插件通知呈现,不会被当作用户提示。每 agent 状态存放在以 agent 为键的 WeakMap;守卫只拒绝 post-execute 计数达到 callDenyCount 的调用身份,绝不拒绝无 agent 的调用。指纹使用 FNV-1a:参数用按键排序的规范化 JSON,文本用换行规范化;文本条目有界并按最近出现时间淘汰。

Further Exploration

- 仓库内的 repeat-tool-reminder 覆盖连续相同工具+参数链的递进提醒;dsh-brake 补充序列循环、重复上下文与可选拒绝。两者可同时启用。

Model Experience

通知是带插件来源的 user 角色消息,进入下一次请求的历史,并像其他注入上下文一样持久化在会话日志中。每条通知都很简短,只陈述观察到的事实(工具、次数、序列或重复文本预览),不回贴完整重复内容。检测只读取执行与收件箱消息;从不改写工具结果,也不删除已记录的内容。

Known Limitations and Deferred Work

- 未实现近似重复检测(轻微措辞改动);只有空白/换行规范化后的精确指纹会计数。
- 拒绝只覆盖确切的调用身份;序列循环不会被拒绝。
- 不监测流式输出;助手文本只能在提交后观察。
- 插件假定 DSH 的 tools/post-execute、agent/pre-step 与 ctx.tools.guard 契约;未在其他 Cordis 宿主上验证。

Dev Note

测试是零依赖的 Node 脚本,要求 @deepseek-ai/dsh-llm 可从插件目录解析——在 DSH profile 环境成立。真实循环组合覆盖(agent-loop + Loader)暂缓;见上方限制。
预览分享卡片长什么样 ↓Mlte0907/dsh-brake
分享 · DeepSeek Harness Hub
Mlte0907/dsh-brake

检测会话中的重复调用与循环,及时提醒或拦截

回到顶部