DeepSeek Harness 錯誤分類與自動重試插件

前言

在使用 DeepSeek Harness Web 進行開發或部署時,錯誤處理是保證服務穩定性的關鍵環節。DSH 自帶 llm-retry 機制,但錯誤分類往往依賴於服務端返回的錯誤碼。如果某些速率限制錯誤被標記爲 PI_AI_ERROR 而非 RATE_LIMIT,重試機制可能無法生效。

dsh-better-retry 插件解決了這個問題。它通過將特定的 PI_AI_ERROR 重新分類爲 RATE_LIMIT,配合 DSH 的標準重試策略,讓開發者能夠更精細地控制哪些錯誤值得重試,以及如何匹配這些錯誤。

是什麼

這是一個面向 DeepSeek Harness Web 的錯誤分類與自動重試規則管理插件。

  • 維護者:leolee9086
  • 核心能力:將特定的錯誤消息模式(如 PI_AI_ERROR)識別並重新分類爲 RATE_LIMIT,交由 DSH 的 @deepseek-ai/dsh-llm-retry 處理。
  • 價值:通過規範化消息匹配和可視化規則管理,降低重試配置的門檻,避免因錯誤分類不當導致的請求失敗。

核心功能

錯誤重新分類

插件運行時攔截 PI_AI_ERROR,根據配置的規則將其歸類爲 RATE_LIMIT。DSH 會基於其內置的指數退避策略(包括抖動)決定是否重試,重試次數、延遲等參數由服務商的 DSH 策略決定,請求原文和診斷信息保持不變。

兩種消息匹配方式

  • 規範化後完整匹配(默認):移除 request、trace、correlation id 和 UUID,統一大小寫與空白。這種方式要求消息在去除易變字段後完全一致,適合明確且較短的消息。
  • 包含連續片段:支持更寬泛的匹配。片段必須是錯誤消息中連續存在的文本,且至少包含 24 個字符和 3 個空白分隔詞。

管理入口

插件在 Web 界面提供了兩個可見的管理入口:
1. 設置 → 自動重試:查看全部內置和自定義模式,進行啓用/停用、刪除和添加操作,並測試消息匹配。
2. 錯誤行 → 納入自動重試:在瀏覽錯誤日誌時,直接展開預覽表單,將當前錯誤快速納入自動重試規則。

智能建議與舊版遷移

  • 相似樣本建議:插件會分析最近 100 種錯誤與已保存模式的樣本,按錯誤碼和服務商篩選,建議連續公共片段作爲匹配規則。
  • 舊版遷移:支持將舊版的 rules: string[] 遷移至新的 patterns 格式。

安裝與啓用

安裝前請確保你的 DSH Web profile 包含 llm、settings、connection 以及標準的 llm-retry 模塊。同時,需要較新的 DSH 接口支持(connection.rpc.handle/call、settings.section)。

使用官方命令安裝:

dsh plugin --profile web add github:leolee9086/dsh-better-retry

若需固定版本,可在命令末尾指定 commit SHA:

dsh plugin --profile web add github:leolee9086/dsh-better-retry#COMMIT_SHA

安裝後,刷新 Web 頁面。使用 dsh --profile web --dump-config 驗證配置中是否同時包含 llm-retry 和 dsh-better-retry,並打開管理頁確認 Host 能返回規則列表。

典型用法

納入一條錯誤

  1. 在錯誤日誌中點擊“納入自動重試”。
  2. 在展開的表單中,默認使用“規範化後完整匹配”。輸入服務商 ID(默認爲 * 表示所有服務商)。
  3. 點擊“預覽匹配”,檢查規範化後的消息和命中的模式。
  4. 點擊“確認納入自動重試”。只有 Host 持久化成功,纔會顯示保存成功。

測試匹配

在管理頁的“測試消息是否命中”功能中,粘貼消息文本。Host 會使用與真實流處理相同的匹配器,顯示當前命中的啓用模式,用於調試規則配置。

內置模式

插件默認啓用了兩條針對常見速率限制錯誤的模式:
* Too many pending requests, please retry later
* Our servers are currently overloaded. Please try again later

適用場景與注意

適用場景

適用於需要精細化處理特定錯誤碼(如 PI_AI_ERROR)的場景,特別是當服務商返回的錯誤信息包含大量動態 ID 或格式不穩定,但核心錯誤含義明確時。

注意事項

  1. 不會恢復已結束的回合:保存規則僅影響後續請求。對於已經結束的對話,即使命中規則也不會自動重試。
  2. 權限與版本:插件以當前 DSH 進程權限運行。如果管理頁報錯或返回 404,通常意味着 Host 和 Client 版本不一致,需要重新加載 Host 插件而非僅刷新瀏覽器。
  3. 重試策略:實際的重試行爲由 DSH 的 maxRetries、backoff 等參數決定。如果服務商關閉了重試或次數耗盡,命中模式也不會無限重試。
  4. 許可證:項目採用 MIT 許可證,可自由使用與修改。

總結

dsh-better-retry 提供了一個可視化的、基於消息模式的錯誤分類工具,它不替代 DSH 的重試引擎,而是作爲“翻譯器”將難以識別的錯誤轉化爲可重試的錯誤。通過規範化的匹配和直觀的管理界面,它降低了錯誤處理的複雜度。

  • 項目目錄:https://www.skillhub.cn/plugins/leolee9086/dsh-better-retry
  • GitHub 倉庫:https://github.com/leolee9086/dsh-better-retry
羽毛球分组比赛记分
小程序二维码

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

小夜