dsh--API-message_stop-
在终端中运行以下命令:
dsh plugin install zzzyaar/dsh--API-message_stop-
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install zzzyaar/dsh--API-message_stop- 即可安装本插件,源码仓库位于 https://github.com/zzzyaar/dsh--API-message_stop-,安装后重启 dsh 即可生效。
插件介绍
用 dsh 接第三方 Anthropic 兼容网关时,一个常见且令人沮丧的问题反复出现:回复内容早已完整渲染在界面上,却紧接着抛出 Anthropic stream ended before message_stop 错误,随后 llm-retry 按指数退避连打五次请求(467 → 1090 → 2031 → 3982 → 7282 ms)。根因是网关关闭事件流时漏发了终止事件(message_stop / done),dsh 适配器将其归为 TRANSPORT 类错误,重试机制便对同一步反复发起完整请求。用户最终拿到的仍是正确内容,但每次对话白白多等数秒,日志也多出一串无意义的 retry 记录。
本插件在宿主公开的 llm/stream 事件瀑布上包一层极薄的壳:所有内容块(块头、文本、推理、工具调用、用量)原样透传;仅当错误精确匹配「内容已收到 + 终止信号缺失」这一特征,且所有未闭合的工具调用参数已是合法 JSON 时,才丢弃该错误、让流干净收尾。真断网、限流、超时、鉴权失败、空响应、参数残缺的工具调用等一切其他错误一律原样放行,重试语义完全不变。插件不接触凭据、不发任何网络请求,安全面零扩展。
适合所有在 dsh 中配置了第三方 Anthropic 兼容网关(中转站、代理网关)的 agent 工作流用户。官方 API 无需配置、完全不受影响;只需在规则中列出需要修复的 provider 和模型即可逐条生效。支持通过 GUI 设置页(进程级)或 preset 行配置(会话级)灵活管理,改动对下一条请求即时生效。
使用场景
- 第三方网关漏发终止事件导致重复指数退避重试
- 对话内容完整到达却触发 TRANSPORT 传输错误
- 需要降低无意义的网络重试等待时间
适合人员
- 使用第三方 Anthropic 兼容网关的 dsh 用户
- 遇到 stream ended before message_stop 报错的 agent 工作流
- 需要精细控制重试策略的开发者