Цели
- Повторять попытку для каждого HTTP-запроса, а не для всего многошагового потока.
- Сохранять порядок, повторяя только текущий шаг.
- Избегать дублирования неидемпотентных операций.
Значения по умолчанию
- Попытки: 3
- Максимальный предел задержки: 30000 мс
- Джиттер: 0,1 (10 процентов)
- Значения провайдеров по умолчанию:
- Минимальная задержка Telegram: 400 мс
- Минимальная задержка Discord: 500 мс
Поведение
Провайдеры моделей
- 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-поиска, сбросы соединения, закрытия сокетов и сбои fetch.
- Использует
retry_afterDiscord, когда он доступен, иначе экспоненциальную задержку.
Telegram
- Повторяет попытки при временных ошибках (429, тайм-аут, connect/reset/closed, temporarily unavailable).
- Использует
retry_after, когда он доступен, иначе экспоненциальную задержку. - Ошибки разбора Markdown не повторяются; вместо этого используется обычный текст.
Конфигурация
Задайте политику повторных попыток для каждого провайдера в~/.openclaw/openclaw.json:
Примечания
- Повторные попытки применяются к каждому запросу (отправка сообщения, загрузка медиафайла, реакция, опрос, стикер).
- Составные потоки не повторяют уже завершенные шаги.