Messages and delivery

再試行ポリシー

目標

  • 複数ステップのフロー単位ではなく、HTTP リクエスト単位で再試行します。
  • 現在のステップのみを再試行して、順序を維持します。
  • 非べき等操作の重複を回避します。

デフォルト

設定 デフォルト
試行回数 3
最大遅延上限 30000 ms
ジッター 0.1 (10%)
Telegram の最小遅延 400 ms
Discord の最小遅延 500 ms

動作

モデルプロバイダー

  • OpenClaw では、通常の短時間の再試行をプロバイダー SDK に処理させます。
  • Anthropic や OpenAI などの Stainless ベースの SDK では、再試行可能なレスポンス(4084094295xx)に retry-after-ms または retry-after が含まれる場合があります。その待機時間が 60 秒を超える場合、OpenClaw は x-should-retry: false を注入し、SDK がエラーを即座に通知できるようにします。これにより、モデルフェイルオーバーで別の認証プロファイルまたはフォールバックモデルに切り替えられます。
  • 上限は OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds> で上書きできます。SDK が長時間の Retry-After 待機を内部で処理できるようにするには、0falseoffnone、または disabled に設定します。

Discord

  • レート制限エラー(HTTP 429)、リクエストタイムアウト、HTTP 5xx レスポンス、および DNS ルックアップ失敗、接続リセット、ソケット切断、fetch 失敗などの一時的なトランスポート障害が発生した場合に再試行します。
  • 利用可能な場合は Discord の retry_after を使用し、それ以外の場合は指数バックオフを使用します。

Telegram

  • 一時的なエラー(429、タイムアウト、接続失敗/リセット/切断、一時的な利用不可)が発生した場合に再試行します。
  • 利用可能な場合は retry_after を使用し、それ以外の場合は指数バックオフを使用します。
  • HTML/Markdown の解析エラーは再試行せず、最初の試行でプレーンテキストにフォールバックします。

設定

~/.openclaw/openclaw.json でプロバイダーごとに再試行ポリシーを設定します。

json5
{  channels: {    telegram: {      retry: {        attempts: 3,        minDelayMs: 400,        maxDelayMs: 30000,        jitter: 0.1,      },    },    discord: {      retry: {        attempts: 3,        minDelayMs: 500,        maxDelayMs: 30000,        jitter: 0.1,      },    },  },}

注意事項

  • 再試行はリクエスト(メッセージ送信、メディアアップロード、リアクション、投票、ステッカー)ごとに適用されます。
  • 複合フローでは、完了済みのステップを再試行しません。

関連項目

Was this useful?
On this page

On this page