メッセージと配信

リトライポリシー

目標

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

デフォルト設定

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

動作

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

注意点

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

ストリーミングとチャンキングコマンドキュー