DeepSeek Harness Retry 插件介紹

在 DeepSeek Harness(DSH)的開發過程中,模型故障(如服務器過載、網絡波動或 PI_AI_ERROR)常導致請求中斷或任務失敗。deepseek-harness-retry 插件旨在解決這一問題,提供可配置的自動重試機制和中斷會話恢復能力。

插件定位與架構

該插件由社區開發者 syncended 維護,屬於 Host 插件。它位於 agent/request-error 水流中,在應用自身的回退預算之前,會優先委託給 DSH 內置的恢復策略。

核心價值:
* 處理通用瞬態模型故障(如 PI_AI_ERROR、UNKNOWN)。
* 在 DSH 崩潰或重啓後,僅繼續被證明未完成的工作。
* 提供精確的提供商路由控制。

安裝與啓用

安裝插件時,DSH 會自動將其註冊爲 model-error-retry 插件條目,無需手動添加插件入口。

dsh plugin --profile web add @syncended/dsh-retry

安裝或升級後,需要重啓選定的 DSH Profile 以使配置生效。

核心功能

  1. 智能重試策略

    • 處理 PI_AI_ERROR、UNKNOWN 等配置的瞬態錯誤。
    • 默認在原始請求後重試 2 次。
    • 針對 Codex 服務器明確的過載錯誤,重試 5 次並使用更長的延遲。
  2. 延遲控制

    • 支持指數退避(Exponential Backoff)策略。
    • 包含隨機抖動(Jitter)以避免驚羣效應。
    • 支持 Provider 返回的 Retry-After 頭。
  3. 恢復與中斷處理

    • 中止感知等待:在等待重試期間,如果檢測到用戶取消或插件銷燬,會立即停止等待。
    • 會話恢復:在 DSH 崩潰或重啓後,通過持久化會話歷史,安全地繼續未完成的任務(默認保留 24 小時內的未完成任務)。
    • 收件箱保護:插件永遠不會移除、重新排序或替換現有的持久化收件箱項目。
  4. 事件與路由

    • 發出標準的非表面會話事件(llm/retry、llm/retry-started)。
    • 支持通過 providers(允許列表)和 excludeProviders(拒絕列表)精確控制重試的 Provider 路由。

配置方法

插件安裝後默認配置即可生效。如需自定義,需編輯對應的 Profile 配置文件。

編輯路徑:
$DSH_HOME/profiles/<profile>/cordis.patch.yml

配置示例:
找到 id: model-error-retry 的條目,修改 config 部分。

- id: model-error-retry
  config:
    maxRetries: 3
    overloadMaxRetries: 5
    retryableCodes:
      - PI_AI_ERROR
      - UNKNOWN
      - STREAM_CLOSED
      - EMPTY_RESPONSE
      - RATE_LIMIT
      - SERVER
      - TIMEOUT
      - TRANSPORT
    initialDelayMs: 750
    overloadInitialDelayMs: 2000
    maxDelayMs: 15000
    jitterRatio: 0.15
    respectRetryAfter: true
    resumeInterrupted: true
    resumeMaxAgeMs: 86400000
    providers:
      - openai
      - openrouter

主要配置項說明:
* maxRetries: 普通錯誤的重試次數,默認爲 2。設爲 0 可禁用請求錯誤重試。
* overloadMaxRetries: 針對過載錯誤的重試次數,默認爲 5。
* resumeMaxAgeMs: 未完成任務的最大等待時間(毫秒),默認爲 86400000(24 小時)。
* providers: 允許重試的提供商列表,留空則允許所有。

系統要求與注意事項

  1. 環境依賴:

    • 需要 Node.js 20 或更高版本。
    • 需要 DeepSeek Harness 0.1.0-rc.7+ 或 0.1.1-rc.2+。
    • 需要內置插件 @deepseek-ai/dsh-llm-retry(插件依賴該插件而非替換它)。
  2. 行爲限制:

    • 成本:每次重試都是一次新的 Provider 請求,會產生額外的費用。
    • 歷史記錄:重試的錯誤和延遲不會添加到模型可見的歷史記錄中。
    • 權限:作爲 Host 插件,它沒有瀏覽器連接步驟,也不需要插件特定的環境變量。

總結

deepseek-harness-retry 插件通過自動化的重試和會話恢復機制,增強了 DSH 在處理不穩定網絡或模型狀態時的魯棒性。開發者可以通過配置文件靈活調整重試策略,以平衡請求成功率和資源消耗。

資源鏈接:
* GitHub 倉庫
* DSH 插件目錄

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

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

小夜