Przejdź do treści

Ponowienia z przerwą

Definicja

Retry to ponowienie żądania po błędzie. Backoff to plan tych ponowień. Każda kolejna próba następuje po dłuższej przerwie.

Co to w zasadzie jest?

Gdy coś chwilowo nie działa, warto spróbować jeszcze raz. Nie warto jednak wysyłać wielu prób naraz, bo to może przeciążyć system. Backoff mówi: spróbuj ponownie, ale z przerwą. Na przykład po 1, 2 i 4 sekundach. To ważne w AI, bo narzędzia i API czasem mają krótkie przerwy lub limity.

Praktyczne zastosowania (konkretne scenariusze)

Scenariusz 1: Wywołanie narzędzia przez API

  • Cel: przy błędzie 503 ponów próbę z przerwą.
  • Wejście: błąd chwilowy albo limit API.
  • Kroki: odczekaj -> ponów próbę -> przerwij po limicie.
  • Rezultat: większa odporność na krótkie awarie.
  • Zabezpieczenie: maksymalna liczba prób i logowanie.

Scenariusz 2: Pobieranie źródła

  • Cel: ponów próbę, jeśli minął limit czasu.
  • Wejście: błąd chwilowy albo limit API.
  • Kroki: odczekaj -> ponów próbę -> przerwij po limicie.
  • Rezultat: większa odporność na krótkie awarie.
  • Zabezpieczenie: maksymalna liczba prób i logowanie.

Scenariusz 3: Agent

  • Cel: jeśli narzędzie nie działa, spróbuj raz, a potem poproś o decyzję człowieka.
  • Wejście: błąd chwilowy albo limit API.
  • Kroki: odczekaj -> ponów próbę -> przerwij po limicie.
  • Rezultat: większa odporność na krótkie awarie.
  • Zabezpieczenie: maksymalna liczba prób i logowanie.

Ryzyka i jak je ograniczać

Ryzyko 1: Pętle ponowień i koszty

  • Ryzyko: pętle ponowień i koszty.
  • Jak ograniczać: limit ponowień, limit czasu i limity zapytań.

Ryzyko 2: Tworzenie duplikatów przy ponowieniu

  • Ryzyko: tworzenie duplikatów przy ponowieniu.
  • Jak ograniczać: stosuj Idempotencję.

Ryzyko 3: Ukrywanie problemów („jakoś działa”)

  • Ryzyko: ukrywanie problemów („jakoś działa”).
  • Jak ograniczać: logi, alerty i monitoring.

Mapa powiązań

  • API → retry/backoff to praktyka przy API.
  • Timeout → retry nie ma sensu bez timeoutów.
  • Idempotencja → bezpieczne ponawianie.
  • Observability → widoczność błędów i ponowień.
  • Mini-przepływ: Błąd → czekaj → ponów → sukces / eskalacja

Diagram

flowchart LR
    A[Błąd]
    B[Czekaj]
    C[Ponów]
    D[Sukces]
    E[Eskalacja]
    A --> B --> C
    C --> D
    C --> E

Diagram pokazuje, że po błędzie system ponawia operację z przerwą, zamiast obciążać usługę natychmiastowymi próbami.