Skip to content

Releases

dsh-thinking-guard v1.0.2

Choose a tag to compare

@ethanwong-hk ethanwong-hk released this 26 Sep 19:54

修复

  • 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

Choose a tag to compare

@ethanwong-hk ethanwong-hk released this 26 Sep 18:10

纯思考空转熔断器

挂载在 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