DSH Plugins
返回列表
🤖

dsh-finish-reason-patch

模型推理 更新于 2026.08.25

在终端中运行以下命令:

dsh plugin install Canson666/dsh-finish-reason-patch

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

在 DeepSeek Harness 中执行 dsh plugin install Canson666/dsh-finish-reason-patch 即可安装,插件源码托管于 https://github.com/Canson666/dsh-finish-reason-patch 。

插件介绍

当你通过 DSH 调用 OpenAI 兼容端点(GPT 系列模型、网关、代理)时,部分供应商会在流式响应的全部内容已发送完毕之后,始终不发出 choices[].finish_reason。底层的 pi-ai 适配器将此判定为传输错误,直接中断一个本已完整的模型回合。dsh-finish-reason-patch 正是在这一层做精准修补。

插件挂载在 llm/stream 瀑布上——所有模型调用(代理回合、会话标题请求、子代理、预调用)都经过 LlmRuntime.streamWithRegistration。当终止标记恰好是那条缺少 finish_reason 的错误时,它会将其重写为正常的 stop(若已交付了 tool-call 增量则映射为 tool-calls),使回合得以正常完成。对于极端场景——网关仅流式输出 usage 或直接不返回内容——空响应同样被标记为完成,避免陷入重试循环。其余所有错误类型(传输重置、限流、HTTP 故障)原样透传,既有的重试策略对真正损坏的响应仍然生效。

适合依赖 DSH 调用 GPT 系列模型或 OpenAI 兼容服务、偶尔遇到回合无故中断的开发者。插件零外部依赖,启动时自动组合补丁,移除时不在任何 DSH 发行文件中留下痕迹。

使用场景

  • GPT 系列模型经网关流式输出完毕后缺少 finish_reason,导致代理回合被误判中断
  • OpenAI 兼容代理仅流式返回 usage 或空内容即结束,触发无限重试循环
  • 子代理或会话标题请求因缺少终止标记被映射为 TRANSPORT 错误,整个任务链中断

适合人员

  • 使用 DSH 调用 GPT 系列或 OpenAI 兼容模型的开发者
  • 通过第三方网关、代理访问大模型 API 的工程团队
  • 遇到回合无故中断、日志出现 TRANSPORT 或 Stream ended without finish_reason 的用户