重試政策
- 針對每次 HTTP 請求進行重試,而非針對多步驟流程。
- 透過僅重試目前步驟來保持順序。
- 避免重複非冪等操作。
- 嘗試次數:3
- 最大延遲上限:30000 毫秒
- 抖動:0.1 (10%)
- 供應商預設值:
- Telegram 最小延遲:400 毫秒
- Discord 最小延遲:500 毫秒
- OpenClaw 允許供應商 SDK 處理正常的短期重試。
- 對於基於 Stainless 的 SDK(例如 Anthropic 和 OpenAI),可重試的回應
(
408,409,429, 和5xx) 可能包含retry-after-ms或retry-after。當等待時間超過 60 秒時,OpenClaw 會注入x-should-retry: false,以便 SDK 立即顯示錯誤,並讓模型 容錯移轉能輪替至其他驗證設定檔或備用模型。 - 使用
OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds>覆蓋上限。 將其設定為0、false、off、none或disabled,以允許 SDK 在內部遵守長時間的Retry-After休眠。
Discord
Section titled “Discord”- 在速率限制錯誤(HTTP 429)、請求逾時、HTTP 5xx 回應,以及暫時性傳輸失敗(例如 DNS 查詢失敗、連線重設、Socket 關閉和提取失敗)時重試。
- 盡可能使用 Discord
retry_after,否則使用指數退避。
Telegram
Section titled “Telegram”- 在暫時性錯誤 (429、逾時、連線/重設/關閉、暫時無法使用) 時重試。
- 盡可能使用
retry_after,否則使用指數退避。 - Markdown 解析錯誤不會重試;它們會退回到純文字。
在 ~/.openclaw/openclaw.json 中設定各供應商的重試政策:
{ channels: { telegram: { retry: { attempts: 3, minDelayMs: 400, maxDelayMs: 30000, jitter: 0.1, }, }, discord: { retry: { attempts: 3, minDelayMs: 500, maxDelayMs: 30000, jitter: 0.1, }, }, },}- 重試適用於每個請求 (訊息發送、媒體上傳、反應、投票、貼圖)。
- 複合流程不會重試已完成的步驟。