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

Telegram

  • Повторює спроби для тимчасових помилок (429, тайм-аут, connect/reset/closed, тимчасово недоступно).
  • Використовує retry_after, коли доступно, інакше експоненційне відступання.
  • Помилки розбору 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,
      },
    },
  },
}

Примітки

  • Повторні спроби застосовуються до кожного запиту (надсилання повідомлення, завантаження медіа, реакція, опитування, стікер).
  • Складені потоки не повторюють завершені кроки.

Пов’язане