Messages and delivery

Yeniden deneme ilkesi

Hedefler

  • Çok adımlı akış başına değil, HTTP isteği başına yeniden deneyin.
  • Yalnızca geçerli adımı yeniden deneyerek sıralamayı koruyun.
  • İdempotent olmayan işlemleri çoğaltmaktan kaçının.

Varsayılanlar

  • Deneme sayısı: 3
  • Maksimum gecikme sınırı: 30000 ms
  • Jitter: 0.1 (yüzde 10)
  • Sağlayıcı varsayılanları:
    • Telegram minimum gecikme: 400 ms
    • Discord minimum gecikme: 500 ms

Davranış

Model sağlayıcıları

  • OpenClaw, sağlayıcı SDK'lerinin normal kısa yeniden denemeleri işlemesine izin verir.
  • Anthropic ve OpenAI gibi Stainless tabanlı SDK'ler için, yeniden denenebilir yanıtlar (408, 409, 429 ve 5xx) retry-after-ms veya retry-after içerebilir. Bu bekleme 60 saniyeden uzun olduğunda OpenClaw, SDK'nin hatayı hemen göstermesi ve model yük devretmesinin başka bir kimlik doğrulama profiline veya yedek modele dönebilmesi için x-should-retry: false ekler.
  • Sınırı OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds> ile geçersiz kılın. SDK'lerin uzun Retry-After beklemelerini dahili olarak uygulamasına izin vermek için bunu 0, false, off, none veya disabled olarak ayarlayın.

Discord

  • Hız sınırı hatalarında (HTTP 429), istek zaman aşımlarında, HTTP 5xx yanıtlarında ve DNS arama hataları, bağlantı sıfırlamaları, soket kapanmaları ve fetch hataları gibi geçici aktarım hatalarında yeniden dener.
  • Mevcut olduğunda Discord retry_after kullanır, aksi halde üstel geri çekilme uygular.

Telegram

  • Geçici hatalarda (429, zaman aşımı, bağlanma/sıfırlama/kapanma, geçici olarak kullanılamama) yeniden dener.
  • Mevcut olduğunda retry_after kullanır, aksi halde üstel geri çekilme uygular.
  • Markdown ayrıştırma hataları yeniden denenmez; düz metne geri dönerler.

Yapılandırma

~/.openclaw/openclaw.json içinde sağlayıcı başına yeniden deneme politikasını ayarlayın:

{
  channels: {
    telegram: {
      retry: {
        attempts: 3,
        minDelayMs: 400,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
    discord: {
      retry: {
        attempts: 3,
        minDelayMs: 500,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
  },
}

Notlar

  • Yeniden denemeler istek başına uygulanır (mesaj gönderme, medya yükleme, tepki, anket, çıkartma).
  • Bileşik akışlar tamamlanan adımları yeniden denemez.

İlgili