リトライポリシー

目標

  • マルチステップフローではなく、HTTPリクエストごとにリトライします。
  • 現在のステップのみをリトライすることで順序を保持します。
  • 非べき等操作の重複を回避します。

デフォルト

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

動作

Discord

  • レート制限エラー(HTTP 429)のみでリトライします。
  • 利用可能な場合はDiscordの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
      }
    }
  }
}

注意事項

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