Политика повтора

Цели

  • Повторить для каждого HTTP-запроса, а не для многошагового потока.
  • Сохранить порядок, повторяя только текущий шаг.
  • Избегать дублирования неидемпотентных операций.

Значения по умолчанию

  • Попытки: 3
  • Максимальное ограничение задержки: 30000 мс
  • Джиттер: 0.1 (10 процентов)
  • Значения по умолчанию провайдера:
    • Минимальная задержка Telegram: 400 мс
    • Минимальная задержка Discord: 500 мс

Поведение

Discord

  • Повторяет только при ошибках ограничения скорости (HTTP 429).
  • Использует 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
      }
    }
  }
}

Примечания

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