Сообщения и доставка

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

Цели

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

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

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

Поведение

Discord

  • Повторяет попытки только при ошибках ограничения скорости (HTTP 429).
  • Использует retry_after от Discord, когда доступно, в противном случае — экспоненциальную отсрочку.

Telegram

  • Повторяет попытки при временных ошибках (429, таймаут, сброс/закрытие соединения, временная недоступность).
  • Использует 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,
      },
    },
  },
}

Примечания

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

Потоковая передача и разделение на частиОчередь команд