Messages and delivery
Política de reintentos
Objetivos
- Reintentar por solicitud HTTP, no por flujo de varios pasos.
- Conservar el orden reintentando solo el paso actual.
- Evitar duplicar operaciones no idempotentes.
Valores predeterminados
- Intentos: 3
- Límite máximo de demora: 30000 ms
- Jitter: 0.1 (10 por ciento)
- Valores predeterminados del proveedor:
- Demora mínima de Telegram: 400 ms
- Demora mínima de Discord: 500 ms
Comportamiento
Proveedores de modelos
- OpenClaw permite que los SDK de proveedores gestionen los reintentos cortos normales.
- Para SDK basados en Stainless, como Anthropic y OpenAI, las respuestas reintentables
(
408,409,429y5xx) pueden incluirretry-after-msoretry-after. Cuando esa espera supera los 60 segundos, OpenClaw inyectax-should-retry: falsepara que el SDK exponga el error inmediatamente y la conmutación por error de modelos pueda rotar a otro perfil de autenticación o modelo alternativo. - Sobrescribe el límite con
OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds>. Establécelo en0,false,off,noneodisabledpara permitir que los SDK respeten internamente las esperas largas deRetry-After.
Discord
- Reintenta ante errores de límite de frecuencia (HTTP 429), tiempos de espera de solicitud, respuestas HTTP 5xx y fallos transitorios de transporte, como fallos de búsqueda DNS, reinicios de conexión, cierres de socket y fallos de fetch.
- Usa
retry_afterde Discord cuando está disponible; de lo contrario, usa retroceso exponencial.
Telegram
- Reintenta ante errores transitorios (429, tiempo de espera, conexión/reinicio/cierre, temporalmente no disponible).
- Usa
retry_aftercuando está disponible; de lo contrario, usa retroceso exponencial. - Los errores de análisis de Markdown no se reintentan; recurren a texto sin formato.
Configuración
Establece la política de reintentos por proveedor en ~/.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,
},
},
},
}
Notas
- Los reintentos se aplican por solicitud (envío de mensaje, carga de medios, reacción, encuesta, sticker).
- Los flujos compuestos no reintentan los pasos completados.