Messages and delivery
Политика повторных попыток
Цели
- Повторять каждый HTTP-запрос, а не весь многоэтапный процесс.
- Сохранять порядок, повторяя только текущий этап.
- Не допускать дублирования неидемпотентных операций.
Значения по умолчанию
| Параметр | Значение по умолчанию |
|---|---|
| Количество попыток | 3 |
| Максимальная задержка | 30000 ms |
| Джиттер | 0.1 (10%) |
| Мин. задержка для Telegram | 400 ms |
| Мин. задержка для Discord | 500 ms |
Поведение
Поставщики моделей
- OpenClaw позволяет SDK поставщиков самостоятельно выполнять обычные короткие повторные попытки.
- Для SDK на основе Stainless, таких как Anthropic и OpenAI, ответы, допускающие повторную попытку (
408,409,429и5xx), могут содержатьretry-after-msилиretry-after. Если указанное время ожидания превышает 60 секунд, OpenClaw внедряетx-should-retry: false, чтобы SDK немедленно вернул ошибку, а механизм переключения моделей смог перейти к другому профилю аутентификации или резервной модели. - Переопределите это ограничение с помощью
OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds>. Установите значение0,false,off,noneилиdisabled, чтобы SDK самостоятельно соблюдали длительные интервалы ожиданияRetry-After.
Discord
- Повторяет запросы при ошибках ограничения частоты (HTTP 429), превышении времени ожидания запроса, ответах HTTP 5xx и временных сбоях транспорта, таких как ошибки поиска DNS, сбросы соединения, закрытия сокета и ошибки получения данных.
- Использует значение Discord
retry_after, если оно доступно; в противном случае применяется экспоненциальная задержка.
Telegram
- Повторяет запросы при временных ошибках (429, превышение времени ожидания, подключение/сброс/закрытие соединения, временная недоступность).
- Использует
retry_after, если значение доступно; в противном случае применяется экспоненциальная задержка. - При ошибках разбора HTML/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, }, }, },}Примечания
- Повторные попытки применяются к каждому запросу (отправка сообщения, загрузка медиафайла, реакция, опрос, стикер).
- В составных процессах завершённые этапы не повторяются.
См. также
Was this useful?