Przejdź do treści
5.8Średniozaawansowany8 min

Obsługa błędów multi agent: retry, fallbacki, circuit breakery

Sebastian KarallZaktualizowano 28 października 2026
Definicja

Obsługa błędów w systemach wieloagentowych obejmuje wszystkie mechanizmy, które zapobiegają temu, by błąd pojedynczego agenta wywrócił cały system: timeouty, ponawianie prób z backoffem, agenci zapasowi (fallback), circuit breakery i pełna obserwowalność. Celem jest odporność na błędy: subagent może zawieść, a błędy nie rozchodzą się kaskadowo ani nie propagują dalej.

W skrócie

  • Systemy wieloagentowe mają osiem klas błędów, których nie mają pojedynczy agenci, w tym błędy kaskadowe, resource deadlock, fragmentację kontekstu i debuggability collapse.
  • Najważniejszą ochroną przed propagacją błędów jest rozdzielenie ścieżek zapisu i odczytu: wielu agentów czyta równolegle, ale zapisuje tylko jeden agent lub jeden etap pipeline'u (zasada single-threaded writes według Cognition).
  • Timeouty dla każdego zadania A2A, jawny stan input-required i limity tokenów dla subagentów zapobiegają zakleszczeniom (deadlockom) i eksplozji kosztów.
  • Agent Verifier-Judge (często oparty na mocniejszym modelu) wyłapuje zhalucynowane fakty, zanim agent główny włączy je do syntezy jako prawdę.
  • W regionie DACH (Niemcy, Austria, Szwajcaria) obserwowalność to również kwestia zgodności z regulacjami: BaFin zaleca firmom finansowym rejestrowanie wszystkich istotnych zdarzeń w systemach AI, a FINMA zauważa, że wyniki AI często nie są odtwarzalne. Ciągłe identyfikatory śledzenia (trace ID) w każdym zadaniu A2A i każdym wywołaniu MCP to praktyczna droga do audytowalności.
  • Allianz Project Nemo (Allianz Australia, 2025) pokazuje ten wzorzec: wydzielony agent audytowy i human-in-the-loop na krytycznym etapie wypłaty sprawiają, że błędy dają się kontrolować.

Obsługa błędów w systemach wieloagentowych obejmuje wszystkie mechanizmy, które zapobiegają temu, by błąd pojedynczego agenta wywrócił cały system: timeouty, ponawianie prób z backoffem, agenci zapasowi (fallback), circuit breakery i pełna obserwowalność. Celem jest odporność na błędy: subagent może zawieść, a błędy nie rozchodzą się kaskadowo ani nie propagują dalej. W systemie jednoagentowym obsługa błędów to w dużej mierze problem rozwiązany; gdy jednak współpracuje kilku agentów z własnymi oknami kontekstu, narzędziami i rolami, pojawiają się klasy błędów, które w pojedynczej pętli tool use po prostu nie występują.

  • Oddziel ścieżkę odczytu od ścieżki zapisu: wielu agentów może równolegle czytać i proponować, ale commit wykonuje tylko jeden (lub jeden etap pipeline'u). To najskuteczniejszy środek przeciw propagacji błędów.
  • Ogranicz każde zadanie: timeout, limit tokenów i jawny stan failed dla każdego subagenta zapobiegają zakleszczeniom i eksplozji kosztów.
  • Weryfikuj przed syntezą: agent Verifier-Judge wyłapuje zhalucynowane fakty, zanim agent główny wpisze je do odpowiedzi jako prawdę.

Dlaczego obsługa błędów w systemach wieloagentowych wygląda inaczej

System wieloagentowy składa się z kilku agentów opartych na LLM (każdy z własnym promptem, własną rolą, własnym zestawem narzędzi, a w najściślejszym wariancie także własnym oknem kontekstu), którzy wspólnie rozwiązują zadanie. Właśnie to rozproszenie tworzy nowe powierzchnie błędów. Nie ma już jednego śladu, tylko N trajektorii subagentów plus synteza. Przebiegi są niedeterministyczne: to samo wejście uruchamia różnych subagentów w różnej kolejności. Do tego system może wykazywać zachowania emergentne, których żaden pojedynczy agent tak nie zaplanował.

Główne zagrożenie to propagacja błędów. Jeśli subagent zhalucynuje fakt, agent główny włączy go do ostatecznej odpowiedzi, a kolejni agenci w łańcuchu będą działać na podstawie tej fałszywej informacji. Lokalny błąd zamienia się w błędną decyzję na poziomie całego systemu. Obsługa błędów w systemach wieloagentowych oznacza więc dwie rzeczy: uodpornienie pojedynczych agentów na przejściowe awarie oraz zapobieganie rozprzestrzenianiu się błędów wzdłuż łańcucha agentów.

Osiem klas błędów, których nie mają systemy jednoagentowe

Poniższe zestawienie to nasze własne podsumowanie klas błędów, które Anthropic, Cognition, Sierra, Salesforce i Microsoft opisały na podstawie swoich systemów produkcyjnych. Kto wdraża systemy wieloagentowe na produkcję, musi je znać.

#

Klasa błędu

Co się dzieje

Środek zaradczy

1

Cascading failures (błędy kaskadowe)

Subagent halucynuje, agent główny przyjmuje to w syntezie jako fakt, dalsze etapy działają na tej podstawie

Agent Verifier-Judge, grounded retrieval, obowiązkowe podawanie źródeł

2

Echo chamber

Subagenci wzmacniają błędne założenie agenta głównego

Dywersyfikacja modeli/promptów (styl MoA), wprowadzenie roli krytyka

3

Authority confusion

Subagent nadpisuje instrukcje agenta głównego, który traci kontrolę

Jasne hierarchie ról, kontrakty zadań A2A z solidnymi AgentCards

4

Resource deadlock

Agent A czeka na B, B czeka na wyjaśnienia od A

Timeout dla każdego zadania, jawny stan input-required w A2A

5

Prompt injection amplification

Każdy kontekst subagenta to nowa powierzchnia ataku

Partycjonowanie promptów, kontrola dostępu oparta na pochodzeniu danych, brak autonomicznej instalacji MCP

6

Context fragmentation

Subagenci podejmują niezgodne ze sobą niejawne decyzje

Współdzielenie pełnych śladów przy silnym sprzężeniu, single-threaded writes, kontrakty decyzyjne

7

Cost explosion

Zużycie tokenów gwałtownie rośnie (według Anthropic system wieloagentowy zużywa około 15 razy, a pojedynczy agent około 4 razy więcej tokenów niż czat)

Limity tokenów dla subagentów, poziomy QoS, kierowanie do pojedynczego agenta poniżej progu złożoności

8

Debuggability collapse

Żaden pojedynczy ślad nie obejmuje całego przebiegu

Rozproszony tracing w całym meshu A2A, identyfikatory korelacji w każdym zadaniu i wywołaniu MCP

Trzy z tych klas (kaskady, deadlock i fragmentacja kontekstu) są właściwymi motorami propagacji błędów. Pozostałe pięć ją wzmacnia lub czyni niewidoczną.

Zapobieganie propagacji błędów: rozdzielenie ścieżek odczytu i zapisu

Najważniejszą decyzją architektoniczną przeciw propagacji błędów nie jest narzędzie, lecz zasada. W tekście „Don't Build Multi-Agents” (czerwiec 2025) i w aktualizacji „Multi-Agents: What's Actually Working” (kwiecień 2026) Cognition ujmuje to tak: fan-out wielu agentów do odczytu jest odporny, fan-out wielu agentów do zapisu jest kruchy. Konsekwencją jest zasada single-threaded writes:

  • Single-threaded writes: wielu agentów czyta, zbiera informacje i proponuje, ale commit wykonuje tylko jeden agent lub jeden etap pipeline'u. Wadliwy agent czytający dostarcza tylko cząstkowy wkład, który agent główny może odrzucić lub zlecić ponownie.
  • Niezależne zapisy z rekoncyliacją: każdy subagent dostarcza fragment, a agent główny uzgadnia je i scala w wynik końcowy (wzorzec agenta badawczego Anthropic).
  • Konkurencyjne zapisy do współdzielonego stanu: spirala śmierci. Bezwzględnie tego unikaj.

Obserwacja Cognition, która za tym stoi: „apparent disagreements” między agentami to zwykle objawy fragmentacji kontekstu, a nie rzeczywistej niezgody. Tam, gdzie sprzężenie jest silne, trzeba współdzielić pełne ślady agentów zamiast pojedynczych wiadomości. Dla współdzielonej pamięci zewnętrznej (vector store, Postgres, SAP HANA) w większości systemów produkcyjnych obowiązuje ta sama zasada: jeden zapisujący, wielu czytających.

Ponawianie z backoffem, timeouty i circuit breakery

Na poziomie pojedynczego wywołania agenta lub narzędzia działają klasyczne wzorce odporności, przeniesione ze świata mikroserwisów:

  • Ponawianie z wykładniczym backoffem: przy błędach przejściowych (rate limit, krótka awaria narzędzia, timeout) wywołanie jest powtarzane z coraz dłuższymi przerwami, najlepiej z jitterem, by uniknąć efektu thundering herd. Ważne: ponawianie pomaga tylko przy błędach przejściowych, nie semantycznych. Ponowne wywołanie halucynującego agenta da tę samą halucynację.
  • Timeouty dla każdego zadania: protokół A2A definiuje cykl życia zadania submitted → working → input-required → completed | failed | canceled. Timeout dla każdego zadania plus jawny stan input-required to udokumentowany środek zaradczy przeciw resource deadlockom. Bez timeoutu czekający agent może zablokować cały system.
  • Circuit breaker: gdy błędy subagenta lub narzędzia przekroczą próg, breaker się otwiera i blokuje kolejne wywołania na określone okno czasowe. To zatrzymuje eksplozję kosztów i daje miejsce na fallback.
  • Agenci zapasowi i zdegradowane odpowiedzi: gdy wyspecjalizowany agent zawiedzie, zadanie przejmuje prostszy agent zapasowy, inny poziom modelu albo celowo ograniczona odpowiedź. Lepszy uczciwie ograniczony wynik niż kaskadowo powielona błędna decyzja.

Uzupełnia to praktyczna dyscyplina tokenowa z referencyjnego opisu agenta badawczego Anthropic: jawnie limitować zużycie tokenów przez subagentów (obsługują to Bedrock AgentCore, LangGraph i Claude Agent SDK), wymuszać na wynikach subagentów typowany schemat (Pydantic, JSON Schema, A2A Artifact) i kompresować je przed zwróceniem, nigdy nie przekazywać agentowi głównemu pełnego transkryptu subagenta. Typowany schemat jest zarazem granicą błędów: to, co nie pasuje do schematu, zostaje odrzucone, zamiast trafić dalej.

Monitoring i obserwowalność: warunek konieczny, a nie dodatek

Debuggability collapse to najbardziej podstępna klasa błędów: gdy coś pójdzie nie tak, nie ma jednego śladu, który wyjaśniałby przebieg. Dlatego obserwowalność nie jest opcjonalna w żadnym systemie wieloagentowym działającym produkcyjnie. Elementy składowe:

  • Rozproszony tracing w całym meshu A2A, z ciągłym identyfikatorem korelacji/śledzenia w każdym zadaniu A2A i każdym wywołaniu MCP. W 2026 roku przekrojowym standardem jest OpenTelemetry.
  • Narzędzia (stan na 2026): LangSmith do wewnętrznych śladów LangGraph; Galileo lub Arize Phoenix do śladów wieloagentowych ponad granicami dostawców; Pydantic Logfire w zespołach pracujących głównie w Pythonie; Datadog/Splunk/Grafana do korelacji w SIEM.
  • Wzorzec Verifier-Judge: osobny agent-sędzia, często oparty na mocniejszym modelu niż agenci wykonawczy, ocenia każdą trajektorię według krótkiej listy kryteriów: zadanie wykonane? Odpowiedź ugruntowana w źródłach? Agenci trzymali się zadania? Budżet dotrzymany? To najlżejsza gotowa na produkcję odpowiedź na błędy kaskadowe.

W regionie DACH (Niemcy, Austria, Szwajcaria) obserwowalność jest ponadto kwestią zgodności z regulacjami. BaFin w swoich wytycznych dotyczących ryzyk ICT przy wykorzystaniu AI z grudnia 2025 roku zaleca firmom finansowym rejestrowanie wszystkich istotnych zdarzeń i działań w systemach AI, aby można je było prześledzić. Podstawą jest DORA, której przestrzeganie w Austrii nadzoruje FMA. FINMA w swoim komunikacie nadzorczym 08/2024 stwierdza, że wyników AI często nie da się prześledzić, wyjaśnić ani odtworzyć. Dla systemu agentowego oznacza to: ślady end-to-end każdego wywołania agenta, odtwarzalność (przypinanie wersji modeli na produkcji, zapisywanie wszystkich promptów subagentów, wywołań narzędzi i AgentCards) oraz magazyn audytowy typu append-only. Okresy przechowywania zależą od sektora i kraju, a przed zbudowaniem magazynu audytowego trzeba je uzgodnić z działem compliance.

Przykład: Allianz Project Nemo

Project Nemo firmy Allianz Australia, spółki zależnej monachijskiego ubezpieczyciela Allianz, to jedno z najlepiej udokumentowanych wdrożeń wieloagentowych koncernu z regionu DACH i modelowy przykład obsługi błędów. Siedmiu wyspecjalizowanych agentów (Planner, Cyber, Coverage, Weather, Fraud, Payout, Audit) obsługuje szkody związane z zepsuciem żywności po klęskach żywiołowych. Pełny workflow siedmiu agentów trwa krócej niż pięć minut.

Dwie zasady obsługi błędów są tu wbudowane w samą architekturę:

  • Agent audytowy jako element topologii: wydzielony agent tworzy pełne podsumowanie wszystkich decyzji agentów wraz z uzasadnieniami, czyli kompletny ślad audytowy (audit trail) na potrzeby compliance, kontroli jakości i weryfikacji przez człowieka. Audytowalność jest wbudowana w topologię agentów, a nie dopiero w pipeline logowania.
  • Human-in-the-loop na krytycznym etapie: pracownik działu likwidacji szkód sprawdza podsumowanie audytowe i podejmuje ostateczną decyzję o wypłacie. Kaskadowo powielona błędna decyzja zostaje wyłapana w najdroższym, nieodwracalnym punkcie, zgodnie z jawnie określoną polityką.

Wynik: skrócenie czasu obsługi i likwidacji uzasadnionych szkód poniżej 500 AUD o 80%, wdrożenie produkcyjne w mniej niż 100 dni (Australia, lipiec 2025). Lekcja dla obsługi błędów: modułowi agenci z jasno określonymi rolami, wydzielona ścieżka audytu i punkt kontroli przez człowieka dają system szybki i dający się kontrolować.

Praktyczna checklista obsługi błędów

Dla agencji i decydentów B2B

Dla agencji marketingowych i dostawców AI-native obsługa błędów to cecha jakości produktu, a nie szczegół w tle: pipeline newslettera lub audytu SEO z agentami do researchu, konspektu, szkicu i recenzji zależy w całości od Verifier-Judge i etapu zapisu single-threaded. Dla decydentów B2B w Europie: wymagaj od każdej propozycji wieloagentowej, wewnętrznej czy od dostawcy, konkretnych odpowiedzi dotyczących strategii timeoutów, fallbacku, weryfikacji i śledzenia. Systemu bez obserwowalności klasy Galileo/LangSmith nie da się zbadać na żądanie regulatora. Kto od początku wbudowuje obsługę błędów w topologię agentów, według wzorca Allianz Nemo z agentem audytowym i human-in-the-loop, dostarcza systemy, które są szybkie i jednocześnie pozostają audytowalne.

Podsumuj z AIChatGPTClaudePerplexity

Otwiera czat z przygotowanym promptem.

Najczęściej zadawane pytania

Czym różni się błąd kaskadowy od fragmentacji kontekstu?
Błąd kaskadowy powstaje, gdy subagent halucynuje fakt, agent główny włącza go do odpowiedzi jako prawdę, a kolejni agenci w łańcuchu na nim budują. Fragmentacja kontekstu, główny zarzut Cognition, oznacza natomiast, że równolegle działający agenci podejmują niezgodne ze sobą niejawne decyzje, ponieważ nie współdzielą tego samego pełnego kontekstu. Oba zjawiska się propagują, ale wymagają różnych środków zaradczych: Verifier-Judge i grounding przeciw kaskadom, współdzielone ślady (traces) i single-threaded writes przeciw fragmentacji.
Dlaczego proste ponawianie prób nie wystarcza w systemach wieloagentowych?
Ponawianie prób z backoffem radzi sobie z błędami przejściowymi: limitami zapytań, timeoutami, krótkimi awariami narzędzi. Nie pomaga jednak przy błędach semantycznych, takich jak halucynacje, przy fragmentacji kontekstu ani przy zakleszczeniach, w których agenci wzajemnie się blokują. Ponowne wywołanie agenta, który generuje fałszywy fakt, zwróci tylko ten sam fałszywy fakt. Dlatego trzeba dodatkowo stosować agentów weryfikujących, ścieżki fallback, circuit breakery i timeouty dla każdego zadania.
Jak zapobiec temu, by błąd jednego agenta wywrócił cały system?
Dzięki izolacji i jasno określonym granicom: każdy subagent dostaje własny budżet tokenów i timeout; model cyklu życia zadań A2A sprawia, że stany failed są jawne; circuit breaker zatrzymuje wielokrotnie nieudane wywołania; zadanie przejmują agenci zapasowi albo zdegradowana odpowiedź. Kluczowe jest, by ścieżka zapisu pozostała single-threaded, tak aby wadliwy agent czytający dostarczał tylko cząstkowy wkład, który agent główny może odrzucić lub zlecić ponownie.
Co oznacza circuit breaker w kontekście agentów?
Circuit breaker przenosi znany ze świata mikroserwisów wzorzec na wywołania agentów: gdy błędy określonego subagenta lub narzędzia przekroczą próg, breaker się otwiera i blokuje kolejne wywołania na określone okno czasowe, zamiast w kółko marnować tokeny i wydłużać opóźnienia. Zapobiega to opisanej wyżej eksplozji kosztów i daje systemowi czas na przełączenie się na agenta zapasowego lub ograniczoną odpowiedź.
Jaką rolę odgrywa human-in-the-loop w obsłudze błędów?
Human-in-the-loop to ostatnia linia obrony na krytycznych, nieodwracalnych etapach. Allianz Project Nemo pokazuje ten wzorzec: siedmiu agentów pracuje w dużej mierze autonomicznie, ale to człowiek, likwidator szkód, sprawdza podsumowanie audytowe i podejmuje ostateczną decyzję o wypłacie. Dzięki temu kaskadowo powielona błędna decyzja może zostać wyłapana w najdroższym punkcie łańcucha. To świadoma decyzja na poziomie polityki, a nie techniczna prowizorka.

Chcesz zgłębić temat?

Otrzymuj nowe analizy prosto na swoją skrzynkę albo zobacz, jak wykorzystujemy tę wiedzę w firmach.