設定 OpenClaw 的 Retry 策略:解決 API 請求失敗
寫 API 整合最怕遇到網路抖動或是突然被限流。如果你沒有處理好重試邏輯,訊息可能發不出去,或者更糟的是,因為重試邏輯寫太爛,導致同一個動作重複執行好幾次。
這篇文章會教你如何設定 OpenClaw 的重試機制。這套機制是針對單次 HTTP 請求設計的,只會重試當前失敗的那一步,不會影響到已經完成的流程,幫你省掉不少麻煩。
需要準備的東西
Section titled “需要準備的東西”- 你需要有編輯
~/.openclaw/openclaw.json的權限 - 一個已經設定好的 Telegram 或 Discord 頻道
OpenClaw 預設會嘗試 3 次,最大延遲上限是 30000 ms。你可以直接在設定檔中針對不同的 Provider 進行微調。
貼上這段範例到你的 ~/.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, }, }, },}這套策略的重點在於:
- 針對單次請求(發送訊息、上傳媒體、表情回應、投票、貼圖)進行重試。
- 複合式流程中,已經成功的步驟不會被重複觸發。
每個平台對錯誤的處理方式不太一樣,如果你發現重試沒有觸發,可以檢查一下是不是遇到了以下情況:
Discord
Section titled “Discord”- 只在 429 錯誤時重試:Discord 只有在遇到 Rate-limit(HTTP 429)時才會觸發重試。
- 優先使用官方回傳時間:如果 Discord 有回傳
retry_after,系統會優先使用該時間;如果沒有,才會使用 Exponential backoff。
Telegram
Section titled “Telegram”- 處理暫時性錯誤:Telegram 會在遇到 429、Timeout、連線重置(Reset/Closed)或服務暫時不可用時進行重試。
- Markdown 錯誤不重試:如果是因為 Markdown 語法解析錯誤,系統不會重試,而是會直接降級改用 Plain text 發送訊息。
有任何設定上的疑問,可以直接詢問 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。