dsh-resume-turn: 恢復中斷的回覆

前言

在 DeepSeek Harness (DSH) 的生態中,當模型請求在緩慢或不穩定的端點中途失敗時,默認的 dsh-llm-retry 會重建同一個請求並從零開始重新運行。這意味着已經流式傳輸的文本(包括長推理鏈)會被丟棄,一個多分鐘的嘗試可能會被重複執行多次。dsh-resume-turn 改變了這一行爲,它從部分輸出中恢復中斷的回覆。

這是什麼

dsh-resume-turn 是 DeepSeek Harness (DSH) 的一個插件,由 Harris Logic 維護。它屬於模型推理類別,採用 MIT 許可證。該插件的核心作用是:在模型回覆因網絡中斷或超時半途失敗時,自動把已生成的部分輸出帶進下一輪,讓模型從中斷處繼續,而不是從零全量重跑。

核心功能

  1. 從部分輸出恢復:自動從已流式傳輸的可見文本和推理塊中收集內容,而非重新生成。
  2. 可見引導消息:注入一條可見的“自動恢復”引導消息,引用部分輸出並指示模型繼續。
  3. 接管恢復流程:使用 { kind: 'retry' } 接管恢復邏輯。
  4. 支持特定失敗碼:支持 TIMEOUT、TRANSPORT、SERVER、RATE_LIMIT 等失敗代碼。

安裝與啓用

安裝插件需要使用 DSH 的包管理器。執行以下命令即可完成安裝:

npx @deepseek-ai/dsh plugin --profile web add github:Harris-Logic/dsh-resume-turn

安裝後,重啓配置文件(或 Web 主機)以激活插件。該插件聲明瞭 dsh.bundle.patch,安裝程序會自動將其附加到 dsh.profile.bundles 中,並自動應用其 cordis.patch.yml 插件行,無需手動編輯文件。

配置

插件沒有強制要求的配置項。可選的配置項(在配置文件的 cordis.patch.yml 行 config 中或作爲 bundle 配置)如下:

key default meaning
maxResumesPerTurn 3 每一輪的最大自動恢復次數;超過後默認重試接管
resumeCodes ["TIMEOUT","TRANSPORT","SERVER","RATE_LIMIT"] 有資格進行恢復的失敗代碼
initialDelayMs 2000 第一次恢復前的退避時間(每次嘗試加倍,上限 30s)
maxPartialChars 12000 引用進恢復消息的最大部分輸出字符數

工作機制與交互

插件在 agent/request-error 階段介入:
* 條件判斷:如果是用戶取消、非瞬時性錯誤、沒有部分輸出、正在工具調用中或已用完恢復預算,則委託給默認處理邏輯。
* 恢復流程:收集當前嘗試的塊(助手/塊事件),設置可取消的退避,調用 agent.steer(resume message)(可見的自動恢復行,包含部分輸出和繼續指令),最後返回 { kind: 'retry' }。
* 與 dsh-llm-retry 的交互:
* 在 retryPolicy 爲 mode: always 的提供商上,插件會優先介入。返回 { kind: 'retry' } 會短路重試鏈。
* 在 mode: normal 提供商上,插件只有在重試鏈順序位於 llm-retry 之前時纔會被諮詢。

限制與注意事項

  1. 邊界句子重述:恢復會將部分輸出引用到上下文中,繼續的回答可能會重新表述邊界句子(通過“不要重複”指令緩解)。
  2. 連續失敗計數:如果端點在恢復後立即再次失敗,嘗試次數會計入每輪預算。預算用完後默認重試接管。
  3. 內存狀態重置:主機重啓會重置內存中的恢復預算/邊界(存儲的日誌保持可讀)。

結語

對於在慢速或不穩定端點部署的智能體,dsh-resume-turn 能顯著減少因網絡波動導致的算力浪費。更多詳情可參考:GitHub | 社區目錄。

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

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

小夜