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_afterDiscord, якщо він доступний, інакше — експоненційне збільшення затримки.
Telegram
- Повторює спроби в разі тимчасових помилок (429, перевищення часу очікування, помилки підключення, скидання або закриття з’єднання, тимчасова недоступність).
- Використовує
retry_after, якщо він доступний, інакше — експоненційне збільшення затримки. - Спроби не повторюються в разі помилок розбору HTML/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, }, }, },}Примітки
- Повторні спроби застосовуються до кожного запиту (надсилання повідомлення, завантаження медіафайлу, реакція, опитування, наліпка).
- У складених процесах уже завершені етапи не повторюються.
Пов’язані матеріали
Was this useful?