前言¶
在使用 DeepSeek Harness (DSH) 進行開發時,免費模型經常會觸發速率限制(Rate Limit),導致請求失敗或任務終止。內置的重試機制往往難以處理這類持續性的限流問題。
下面介紹 dsh-camel 插件。它是一個針對 DeepSeek Harness 的可選插件,由 JuwanXu 維護。該插件專門解決免費模型的速率限制恢復問題,提供基於提供者和模型的自適應配額學習、主動請求節流以及 Retry-After 感知的重試機制。
核心功能¶
該插件提供以下能力:
* 免費模型速率限制恢復。
* 提供者和模型感知的自適應配額學習。
* 主動請求節流。
* 支持 Retry-After 的重試機制。
* 可見的重試狀態。
* 任務範圍配置。
* 基於會話的活動和配額事件記錄。
* 精確的(提供者,模型)學習隔離。
* 暫停和恢復控制。
* 安全的回退機制。
安裝與啓用¶
插件通過以下命令安裝到指定配置文件中:
dsh plugin --profile <profile-name> add dsh-camel
使用方法¶
插件安裝後,所有可執行策略默認爲禁用狀態。需要通過命令或配置啓用。
命令行控制¶
可用命令取決於宿主是否提供可選命令服務。這些命令是任務本地的,不會修改配置文件:
/camel preset recover:啓用無限速率限制重試,禁用節流模式。/camel preset adaptive:啓用無限速率限制重試和自適應節流,禁用固定節流。/camel preset bounded:啓用 5 次速率限制重試,禁用節流模式。/camel off:持久禁用當前任務的所有 Camel 策略。/camel reset:移除當前任務的覆蓋,恢復插件默認值(可能重新啓用全局策略)。/camel set:設置任務配置,將camel/config追加到內存覆蓋前。
配置與優先級¶
配置優先級爲:任務會話覆蓋 > 插件默認值 > 內置值。
插件內置了節流、重試和自適應節流的數值,但所有三個 enabled 值默認爲 false。需要通過配置文件顯式開啓。
示例配置片段:
- id: camel
config:
defaults:
retry:
enabled: true
mode: unlimited
fallbackDelayMs: 60000
throttle:
enabled: true
maxRequests: 20
windowMs: 60000
scope: route
adaptive:
enabled: false
initialRequests: 10
minRequests: 1
maxRequests: 20
windowMs: 60000
safetyRatio: 0.85
decreaseRatio: 0.7
increaseAfterWindows: 3
stateTtlMs: 86400000
routes:
- provider: provider-a
model: model-v3
enabled: true
initialRequests: 8
maxRequests: 12
- provider: provider-b
model: model-r1
enabled: true
initialRequests: 4
maxRequests: 6
自適應節流說明¶
當針對某個解析後的路由啓用自適應節流時,該路由的節流由自適應模式接管,固定節流不再重複應用。自適應准入使用 max(minRequests, floor(learnedRequests × safetyRatio))。匹配的 RATE_LIMIT 會使用 decreaseRatio 降低學習計數。當窗口被清理後,increaseAfterWindows 次後可提升計數。
適用場景與注意事項¶
- 專注速率限制:該插件專注於速率限制處理,不替代通用的模型錯誤重試。
- 無 LLM 調用:插件不會調用 LLM 來分類失敗或調整策略。
- 邊界工作:插件在代理請求錯誤/重試邊界工作,不會注入用戶提示或需要瀏覽器 UI。
- 自動重試:插件執行自動速率限制等待/重試,不會重寫消息或分叉對話。
結語¶
dsh-camel 爲 DSH 插件生態中的速率限制處理提供了具體的工具,特別是在處理免費模型時,能夠通過自適應學習和主動節流提高成功率。