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:

json5
{  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?
On this page

On this page