メインコンテンツへスキップ

再試行ポリシー

目的

  • マルチステップのフロー単位ではなく、HTTP リクエスト単位で再試行します。
  • 現在のステップのみを再試行することで、順序を保持します。
  • 非冪等な操作の重複を回避します。

デフォルト

  • 試行回数: 3
  • 最大遅延上限: 30000 ms
  • ジッター: 0.1(10 パーセント)
  • プロバイダーのデフォルト:
    • Telegram の最小遅延: 400 ms
    • Discord の最小遅延: 500 ms

動作

Discord

  • レート制限エラー(HTTP 429)のみで再試行します。
  • 利用可能な場合は retry_after を使用し、そうでない場合は指数バックオフを使用します。

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,
      },
    },
  },
}

注記

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