リトライポリシー
目標
- リトライは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,
},
},
},
}
補足
- リトライはリクエスト単位(メッセージ送信、メディアアップロード、リアクション、投票、スタンプ)で適用される。
- 複合フローでは完了済みステップのリトライは行われない。