Repository navigation
Releases
Releases · ethanwong-hk/dsh-thinking-guard
dsh-thinking-guard v1.0.2
修复
lib/index.js不再硬编码维护者安装路径:候选项改由DSH_HOME/homedir()/ macOS 应用路径推导test/guard.test.mjs改为相对本文件解析../lib/index.js
1.0.1 及更早的 tarball 里含 /Users/<name>/.dsh/... 绝对路径。
dsh-thinking-guard v1.0.0
纯思考空转熔断器
挂载在 agent/assistant-stream 上,对「只思考、零产出」的退化回合实施三重熔断。
三重熔断
| 熔断 | 默认值 | 触发条件 |
|---|---|---|
thinking-only-timeout |
45000 ms | 零 text、零 tool-call,且距最后一次进展已超时 |
thinking-volume |
80000 字符 | 单次尝试 reasoning 总量超限,不依赖是否有产出 |
degenerate-loop |
3 次重复 | 精确重复单元 / 句子级模板重复 / 稀疏复读 / N-gram 高密度 |
为什么需要它
dsh-agent-loop的step()只在流结束后才做终止判定 —— 流不结束,turn/end永不写入dsh-llm-deepseek的idleWatchdog测的是连接活性而非任务进展 —— 模型持续吐 reasoning token 时每 chunk 重置,永不触发
两者叠加使纯思考空转的回合无法自停,只能手动中止。
已验证
- 回归测试 11/11 通过(含
sparse-repeat分支用例) - 曾修复自身一处静默失效:
formatNotice的cfg is not defined致该档熔断在 11 天内 1543 次未生效
MIT License © 2026 Ethan Wong