Idempotencja
Definicja
Idempotencja oznacza, że wykonanie tej samej operacji wiele razy daje ten sam efekt (np. „utwórz X” nie tworzy duplikatów).
Co to w zasadzie jest?
W AI z narzędziami łatwo o powtórzenia: agent może kliknąć „wyślij” dwa razy, bo nie był pewien wyniku. Idempotencja to zabezpieczenie: nawet jeśli to się zdarzy, system nie zrobi dubla (albo bezpiecznie go wykryje).
Praktyczne zastosowania (konkretne scenariusze)
Scenariusz 1: Agent tworzy zadanie w systemie — idempotency key zapobiega duplikatom
- Cel: agent tworzy zadanie w systemie — idempotency key zapobiega duplikatom.
- Wejście: akcja możliwa do ponowienia.
- Kroki: nadaj identyfikator -> sprawdź duplikat -> wykonaj raz.
- Rezultat: brak podwójnych operacji.
- Zabezpieczenie: klucze idempotencji i logi.
Scenariusz 2: Integracja z API — ponowienie żądania po timeout nie robi szkody
- Cel: integracja z API — ponowienie żądania po timeout nie robi szkody.
- Wejście: akcja możliwa do ponowienia.
- Kroki: nadaj identyfikator -> sprawdź duplikat -> wykonaj raz.
- Rezultat: brak podwójnych operacji.
- Zabezpieczenie: klucze idempotencji i logi.
Scenariusz 3: Publikacja wpisu — „update” zamiast „create”, jeśli już istnieje
- Cel: publikacja wpisu — „update” zamiast „create”, jeśli już istnieje.
- Wejście: akcja możliwa do ponowienia.
- Kroki: nadaj identyfikator -> sprawdź duplikat -> wykonaj raz.
- Rezultat: brak podwójnych operacji.
- Zabezpieczenie: klucze idempotencji i logi.
Ryzyka i jak je ograniczać
Ryzyko 1: Brak idempotencji = duble, chaos, koszty
- Ryzyko: brak idempotencji = duble, chaos, koszty.
- Jak ograniczać: klucze idempotencji, wykrywanie duplikatów, transakcje.
Ryzyko 2: Trudna diagnoza „czemu są dwa wpisy”
- Ryzyko: trudna diagnoza „czemu są dwa wpisy”.
- Jak ograniczać: audit trail i identyfikatory żądań.
Ryzyko 3: Agent zapętla się
- Ryzyko: agent zapętla się.
- Jak ograniczać: limity kroków, rate limiting, checkpointy.
Mapa powiązań
- API → idempotencja jest częsta w dobrych API.
- Tool calling → narzędzia powinny być bezpieczne na powtórzenia.
- Audit trail → ślad wykonań.
- Agentic workflow → pętle i ponowienia.
- Mini-przepływ:
Wywołanie → (czy już było?) → wykonaj / pomiń
Diagram
flowchart LR
A[To samo żądanie]
B[Wykonanie operacji]
C[Zapis wyniku]
D[Powtórzenie żądania]
E[Ten sam rezultat]
A --> B --> C --> D --> E
Diagram pokazuje, że ponowienie tej samej operacji nie powinno wywołać nowego skutku.