Messages and delivery
Politique de nouvelle tentative
Objectifs
- Réessayer par requête HTTP, et non par flux en plusieurs étapes.
- Préserver l’ordre en réessayant uniquement l’étape en cours.
- Éviter de dupliquer les opérations non idempotentes.
Valeurs par défaut
- Tentatives : 3
- Plafond du délai maximal : 30000 ms
- Gigue : 0,1 (10 pour cent)
- Valeurs par défaut des fournisseurs :
- Délai minimal Telegram : 400 ms
- Délai minimal Discord : 500 ms
Comportement
Fournisseurs de modèles
- OpenClaw laisse les SDK des fournisseurs gérer les nouvelles tentatives courtes normales.
- Pour les SDK basés sur Stainless, tels qu’Anthropic et OpenAI, les réponses réessayables
(
408,409,429et5xx) peuvent inclureretry-after-msouretry-after. Lorsque cette attente dépasse 60 secondes, OpenClaw injectex-should-retry: falseafin que le SDK remonte immédiatement l’erreur et que le basculement de modèle puisse passer à un autre profil d’authentification ou modèle de secours. - Remplacez le plafond avec
OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds>. Définissez-le sur0,false,off,noneoudisabledpour laisser les SDK respecter en interne les longues pausesRetry-After.
Discord
- Réessaie en cas d’erreurs de limite de débit (HTTP 429), d’expirations de requête, de réponses HTTP 5xx et d’échecs de transport transitoires tels que les échecs de résolution DNS, les réinitialisations de connexion, les fermetures de socket et les échecs de récupération.
- Utilise le
retry_afterde Discord lorsqu’il est disponible, sinon un backoff exponentiel.
Telegram
- Réessaie en cas d’erreurs transitoires (429, expiration, connexion/réinitialisation/fermeture, indisponibilité temporaire).
- Utilise
retry_afterlorsqu’il est disponible, sinon un backoff exponentiel. - Les erreurs d’analyse Markdown ne sont pas réessayées ; elles basculent vers du texte brut.
Configuration
Définissez la politique de nouvelle tentative par fournisseur dans ~/.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,
},
},
},
}
Notes
- Les nouvelles tentatives s’appliquent par requête (envoi de message, téléversement de média, réaction, sondage, sticker).
- Les flux composites ne réessaient pas les étapes terminées.