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, скидання з’єднання, закриття сокета та помилки отримання даних.
  • Використовує retry_after Discord, якщо він доступний, інакше — експоненційне збільшення затримки.

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