dsh-model-fix:修復 opencode 端點 muse-spark 與 gpt-5.6-luna 的流式收尾缺陷

在 DeepSeek Harness (DSH) 開發智能體時,可能會遇到一種情況:流式內容正常輸出,但對話回合結尾必定報錯。這通常是因爲 DSH 使用的 pi-ai SDK 強制要求流式響應以 finish_reason 收尾,而部分聚合端點未發送該信號。

dsh-model-fix 是一個 DSH 插件,由 Retr67 維護。它專門修復 opencode 聚合端點上 muse-spark-1.2 和 gpt-5.6-luna 的流式收尾缺陷。

核心功能

該插件作用於 DSH 的 llm/stream waterfall 階段。當流式響應中已輸出內容,但結尾因端點缺陷(未發送 finish_reason 或 [DONE])導致錯誤代碼爲 TRANSPORT / STREAM_CLOSED 時,它會將結束狀態改寫爲正常的 stop。

它僅修復這一特定場景:
1. 內容已輸出(存在 text-delta / reasoning-delta 等)。
2. 錯誤信息明確爲“缺少終止事件”(如 Stream ended without finish_reason)。

對於真實的傳輸故障(如 Socket 關閉)或空響應,插件不會介入,保持原有邏輯。

安裝與啓用

使用 DSH 官方命令行工具安裝插件。安裝後必須重啓目標 profile 才能生效。

npx -y @deepseek-ai/dsh plugin --profile web add github:Retr67/dsh-model-fix

安裝完成後,重啓運行該 profile 的服務(例如 dsh web)。

配置

插件通過 cordis.patch.yml 文件進行配置。主要涉及兩個配置項:modelPattern 和 providers。

字段 默認值 說明
modelPattern ^(muse-spark\|gpt-5\.6-luna) 對模型 ID 進行匹配的正則表達式,僅修復匹配到的模型。
providers [] Provider 路由鍵的白名單。留空則匹配所有 provider 中符合條件的模型。

配置示例

在 cordis.patch.yml 中添加以下配置:

- id: model-fix
  name: dsh-model-fix
  config:
    modelPattern: '^(muse-spark|gpt-5\.6-luna)'
    providers: []

自定義範圍:
- 若只想修復 gpt-5.6-luna,可將 modelPattern 改爲 '^gpt-5\.6-luna'。
- 若只想限定特定路由,可添加 providers: ['opencode-go']。

適用場景與注意

技術要求

  • Node.js 版本:插件依賴 Node.js,要求版本爲 ^22.19.0 或 >=24。

隱私與設置說明

使用該插件修復流式收尾缺陷,無需在 opencode 平臺開啓“Allow models that train on request data”開關。
- 該開關涉及數據訓練授權,屬於隱私敏感項,不應爲了使用模型而開啓。
- 本插件修復的是流式傳輸協議的缺失,與該隱私開關無關。

總結

dsh-model-fix 解決了因 opencode 聚合端點未發送標準 finish_reason 導致 DSH 智能體對話失敗並觸發重試的問題。修復後,模型直連即可正常使用,避免了不必要的 token 消耗。

項目地址:https://github.com/Retr67/dsh-model-fix

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜