Messages and delivery

Политика повторных попыток

Цели

  • Повторять попытку для каждого 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_after Discord, когда он доступен, иначе экспоненциальную задержку.

Telegram

  • Повторяет попытки при временных ошибках (429, тайм-аут, connect/reset/closed, temporarily unavailable).
  • Использует retry_after, когда он доступен, иначе экспоненциальную задержку.
  • Ошибки разбора 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