Robocikowo>ROBOCIKOWO
Opracowania

ReAct — czym jest paradygmat „rozumuj i działaj" w agentach LLM?

react-czym-jest-paradygmat-rozumuj-i-dziaaj-w-agentach-llm-cover

ReAct to wzorzec architektoniczny dla dużych modeli językowych, w którym model w trakcie rozwiązywania zadania na przemian generuje myśli (rozumowanie), wywołuje narzędzia zewnętrzne i wczytuje obserwacje. Zrozumienie ReAct jest dziś warunkiem wstępnym do projektowania jakichkolwiek agentów AI, ponieważ to właśnie pętla Thought–Action–Observation stoi za większością nowoczesnych systemów agentowych.

Czym jest ReAct?

ReAct (Reasoning and Acting) to paradygmat promptingu i architektura agenta, a nie model AI ani biblioteka. Mówiąc inaczej, ReAct nie jest niczym, co dałoby się „zainstalować” — to sposób, w jaki orkiestruje się dużym modelem językowym (LLM), żeby zamiast generować jedną długą odpowiedź, model na przemian myślał i wykonywał akcje na świecie zewnętrznym.

W klasycznym użyciu LLM-a użytkownik dostaje jedną odpowiedź wygenerowaną w pojedynczym wywołaniu — model opiera się wyłącznie na swojej wiedzy z treningu. ReAct rozbija to na wieloturową sekwencję: model formułuje myśl (plan, hipoteza, obserwacja własnych braków informacji), wybiera akcję spośród zdefiniowanego zestawu narzędzi (wyszukiwarka, baza danych, API, kalkulator, terminal), a środowisko zewnętrzne zwraca obserwację, którą model ponownie analizuje. Pętla powtarza się aż model uzna, że ma wystarczająco danych, żeby zwrócić Final Answer.

Najważniejsza techniczna cecha ReAct: myśli nie zmieniają środowiska, akcje tak. Myśli aktualizują wewnętrzny stan modelu (kontekst), akcje wywołują efekty zewnętrzne. Ta dwutorowość jest tym, co odróżnia ReAct od czystego generowania tekstu.

Kto za tym stoi?

ReAct został przedstawiony w artykule „ReAct: Synergizing Reasoning and Acting in Language Models”, opublikowanym jako preprint w październiki 2022 r. i zaprezentowanym na konferencji ICLR 2023. Autorami są Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan i Yuan Cao — zespół z Princeton University i Google Research.

Yao i współpracownicy postawili tezę, że dotychczasowe podejścia traktowały rozumowanie (np. Chain-of-Thought) i działanie (np. agenci uczeni przez wzmacnianie do nawigacji w środowisku) jako rozłączne wątki badawcze. W ich propozycji oba mechanizmy są ściśle splecione: rozumowanie pozwala modelowi planować i korygować plany, a akcje pozwalają mu sięgać po fakty, których nie ma w wagach. W eksperymentach na zbiorach HotpotQA: Wieloskokowy zbiór danych do pytań otwartych (multi-hop QA), w którym poprawna odpowiedź wymaga jednoczesnego wnioskowania na podstawie dwóch lub więcej artykułów Wikipedii., FEVER: Fact Extraction and VERification — zbiór danych do weryfikacji faktów. Model klasyfikuje twierdzenie jako poprawne, fałszywe lub nieweryfikowalne na podstawie artykułów Wikipedii., ALFWorld: Środowisko tekstowe do interaktywnego podejmowania decyzji oparte na benchmarku ALFRED. Agent wykonuje zadania domowe (np. umieszczenie schłodzonego pomidora na talerzu) przez nawigację w wirtualnym mieszkaniu. i WebShop: Symulowane środowisko e-commerce, w którym agent musi znaleźć i kupić produkt spełniający określone wymagania, nawigując po stronach katalogu i szczegółów produktów. ReAct pokonał zarówno czysty Chain-of-Thought, jak i baseline’y oparte na imitacji oraz uczeniu przez wzmacnianie — w niektórych benchmarkach o 34 punkty procentowe sukcesu.

Jak to działa?

Pętla ReAct opiera się na trzech krokach, które iterują aż do wygenerowania końcowej odpowiedzi.

  1. Thought (Myśl). Model produkuje wewnętrzny monolog — coś w rodzaju brudnopisu, w którym analizuje cel, podsumowuje to, co już wie, i decyduje, czego mu brakuje. Ten ślad rozumowania jest jawny w tekście, dzięki czemu zachowanie agenta jest czytelne i możliwe do debugowania.
  2. Action (Akcja). Na bazie myśli model wybiera jedno narzędzie z predefiniowanego toolkitu i podaje argumenty wywołania. W output appearance to wygląda jak strukturalna komenda, np. Action: Search[stolica Francji]. Kluczowe: model nie generuje wyniku akcji sam — robi to runtime (np. LangChain, LangGraph, własny kod), który przechwytuje akcję, wykonuje rzeczywiste wywołanie narzędzia i zwraca rezultat.
  3. Observation (Obserwacja). Wynik z narzędzia trafia z powrotem do kontekstu modelu jako kolejny token tekstu. Model „czyta” obserwację — czy to fragment Wikipedii, wartość liczbową, błąd HTTP, czy stack trace — i uwzględnia ją w kolejnej myśli.

Pętla się zamyka, gdy nowa myśl stwierdza, że dane wystarczą. Wtedy model zamiast Action: produkuje Final Answer:, a runtime kończy iterację. W praktyce frameworki narzucają twardy limit iteracji (zwykle 6–10), żeby ograniczyć latencję i ryzyko nieskończonej pętli.

Demo interaktywne
ReAct — odtwarzacz śladu (Trace Player)
Wybierz zadanie i przewijaj pętlę krok po kroku. Po lewej myśli i akcje modelu, po prawej obserwacje zwracane przez świat zewnętrzny.
ZadanieW którym roku urodził się reżyser filmu „Incepcja”?
Model (LLM)
Runtime / świat zewnętrzny
model nie generuje obserwacji
Myśl
Nie znam reżysera na pewno. Najpierw go ustalę, potem sprawdzę rok urodzenia.
Iteracja 0 / limit 8
Krok 1 / 8

Jak czytać: Każda Akcja przekracza granicę i trafia do runtime — to on wykonuje narzędzie i wstawia Obserwację z powrotem do kontekstu modelu. Model nigdy nie zmyśla wyników: na przemian myśli i działa, aż uzna, że dane wystarczą, i zamiast kolejnej akcji produkuje Final Answer. Licznik iteracji pokazuje twardy limit chroniący przed nieskończoną pętlą.

Z jakich elementów się składa?

Operacyjny ReAct-agent to zwykle pięć współpracujących komponentów:

  • LLM — silnik decyzyjny generujący myśli, akcje i finalne odpowiedzi.
  • Toolkit — zbiór funkcji wywoływalnych przez agenta: wyszukiwarka, REST API, zapytania SQL, kalkulator, interpreter kodu, RAG.
  • Prompt systemowy — instrukcja narzucająca format Thought / Action / Action Input / Observation / Final Answer i listę dostępnych narzędzi.
  • Runtime / orkiestrator — kod, który czyta wyjście modelu, wykrywa instrukcję Action:, wykonuje narzędzie, wstawia obserwację do kontekstu i ponownie wywołuje LLM. Najpopularniejsze implementacje to LangChain, LangGraph, CrewAI, Microsoft AutoGen.
  • Scratchpad — rosnąca historia poprzednich myśli, akcji i obserwacji, doklejana do każdego kolejnego promptu.

Formalnie autorzy modelują interakcję jak rozszerzony proces decyzyjny Markowa: w każdej chwili t model dostaje trajektorię kontekstu c_t = (x, r_1, a_1, o_1, ..., r_{t−1}, a_{t−1}, o_{t−1}) i próbkuje z rozkładu p(r_t, a_t | c_t) — wybierając, czy wygenerować kolejną myśl, czy akcję.

Do czego może być używane?

ReAct sprawdza się wszędzie tam, gdzie LLM musi sięgnąć po dane spoza swojej wiedzy treningowej albo wykonać efekt na świecie zewnętrznym. Cztery najczęstsze zastosowania w 2024–2025 r.:

  • Obsługa klienta i triage zgłoszeń. Agent czyta reklamację, odpytuje CRM po historię zamówień, sprawdza status wysyłki, a następnie albo automatycznie inicjuje zwrot, albo eskaluje sprawę do człowieka z gotowym podsumowaniem.
  • Analityka danych i raportowanie finansowe. Agent pobiera dane rynkowe przez API, wykonuje zapytania SQL, uruchamia skrypty Pythona z obliczeniami statystycznymi i syntezuje raport — z wbudowaną weryfikacją danych w trakcie iteracji.
  • Odzyskiwanie informacji w domenach krytycznych. W medycynie i prawie ReAct-agent zamiast halucynować odpowiedzi sięga do aktualnych baz publikacji albo orzecznictwa, co znacząco zmniejsza ryzyko podania nieaktualnych zaleceń.
  • Agenci programistyczni. Narzędzia w stylu Cursor, Devin czy Claude Code w wielu miejscach realizują dokładnie wzorzec ReAct: agent pisze kod (Action), uruchamia testy (Action), czyta błąd kompilatora (Observation), poprawia kod (Thought + Action) i tak iteruje aż do zielonego buildu.

Czym różni się od innych rozwiązań?

Najważniejszy punkt odniesienia to Chain-of-Thought (CoT). CoT to też paradygmat promptingu, ale działa w jednym wywołaniu modelu i wyłącznie w obrębie wiedzy wewnętrznej — model produkuje ciąg kroków rozumowania, a potem odpowiedź, bez kontaktu ze światem. Jeśli na początku przyjmie błędne założenie, cała reszta będzie pewnie wypowiedzianą bzdurą.

ReAct zachowuje atut „myślenia krok po kroku", ale dodaje warstwę weryfikacji empirycznej. CoT uczy model jak myśleć; ReAct dodatkowo uczy go kiedy przerwać myślenie i sprawdzić rzeczywistość. Cena to wyższa latencja (sześć–siedem round-tripów do API zamiast jednego) i większe zużycie tokenów, bo każda iteracja powiększa Scratchpad: Roboczy „brudnopis” w kontekście modelu — rosnący zapis dotychczasowych myśli, akcji i obserwacji, który model dokleja do promptu przy każdej iteracji, by pamiętać przebieg rozumowania..

Warto zauważyć, że ReAct i CoT nie są wzajemnie wykluczające. Już oryginalny artykuł Yao i in. pokazał, że najlepsze wyniki daje hybrydowe podejście: model używa CoT do logiki wewnętrznej i ReAct, gdy potrzebuje faktów. Współczesne modele rozumujące (np. seria OpenAI o3, GPT-5 thinking, Claude Sonnet 4.5 z extended thinking) internalizują CoT, ale i tak działają w pętli typu ReAct, gdy mają dostęp do narzędzi.

ReAct jest też tylko jedną z możliwych topologii agenta.

  • Plan-and-Execute — rozdziela rolę planisty i wykonawców: orkiestrator tworzy całościowy plan, a osobne sub-agenty (często w prostszej pętli ReAct) wykonują kroki.
  • Tree-of-Thought — generuje wiele alternatywnych ścieżek myślowych równolegle i wybiera najlepszą.
  • Reflexion — dokłada warstwę samokrytyki po skończonej pętli ReAct, żeby agent uczył się z własnych błędów między uruchomieniami.

ReAct jest preferowany w zadaniach dynamicznych i eksploracyjnych. Plan-and-Execute sprawdza się w przewidywalnych pipeline'ach.

Najważniejsze ograniczenia i wyzwania

ReAct ma cztery powtarzalne pułapki, z którymi musi się zmierzyć każdy zespół wdrażający agenta produkcyjnie.

  • Latencja i koszt. Każda iteracja to osobne wywołanie LLM, a kontekst rośnie wraz z historią. Sześć iteracji oznacza sześciokrotnie wyższe opóźnienie i często kilkukrotnie wyższy rachunek niż pojedyncze wywołanie modelu.
  • Nieskończone pętle. Jeśli narzędzie cyklicznie zwraca ten sam błąd albo bezużyteczny wynik, model bywa skłonny w kółko wywoływać tę samą akcję z tymi samymi argumentami. Standardową mitygacją jest twardy limit iteracji i detekcja powtórzeń.
  • Przepełnienie kontekstu. Surowe obserwacje (np. cała strona HTML wstawiona do promptu) potrafią przekroczyć okno kontekstu modelu w 2–3 iteracjach. Stąd konwencja, by wstępnie filtrować wyniki narzędzi przez RAG, podsumowania albo schematy strukturalne.
  • Bezpieczeństwo. Akcje agenta mogą mieć skutki nieodwracalne — usunięcie rekordu w bazie, transakcja płatnicza, wysyłka maila. Praktyką w produkcji jest human-in-the-loop na akcjach destrukcyjnych oraz tzw. tool sandboxing, który ogranicza zakres tego, co agent może faktycznie wywołać.

Dlaczego to jest istotne?

ReAct trzeba traktować nie jako pojedynczy algorytm, lecz jako strukturalną decyzję o tym, jak budujemy systemy AI. Praca Yao i in. zinstytucjonalizowała założenie, że LLM nie powinien być Zamknięte oraculum: Metafora modelu jako wyroczni — czarnej skrzynki, która wydaje ostateczną odpowiedź z własnej wiedzy, bez sięgania po zewnętrzne dane ani sprawdzania jej w świecie., tylko jednym z elementów pętli sterowania, w której równie ważne są narzędzia i obserwacje ze świata.

Konsekwencje są bardzo praktyczne:

  1. Wspólny słownik. ReAct wyznaczył wspólny słownik (Thought / Action / Observation / Final Answer), wokół którego skoordynowała się cała branża frameworków agentowych — LangChain, LangGraph, CrewAI, AutoGen, a w jakiejś formie także Anthropic Computer Use, OpenAI Responses API z toolami czy Google ADK.
  2. Odpowiedź na halucynacje. Zamiast trenować lepszy model, oddaj modelowi możliwość weryfikacji na zewnątrz.
  3. Nowe wąskie gardło. Ograniczeniem skalowalności agentów nie jest dziś jakość modelu, tylko jakość narzędzi, schematów obserwacji, polityk bezpieczeństwa i obsługi błędów.

Dla zespołów inżynierskich ReAct jest dziś czymś w rodzaju TCP/IP w sieciach: konkretnym, niezbyt eleganckim, ale praktycznym kontraktem, który po prostu działa i jest na tyle prosty, by można było wokół niego budować bardziej zaawansowane warstwy (planowanie, wieloagentowość, refleksja). Dlatego nawet jeśli za rok nazwa „ReAct" przestanie pojawiać się w marketingu, sama pętla rozumowanie–działanie–obserwacja będzie nadal stać pod spodem.

ReAct nie jest panaceum i nie zastępuje uczenia modeli ani specjalizowanych systemów reguł. Jest jednak najlepszym dziś sposobem, żeby duży model językowy — który z natury halucynuje i nie ma dostępu do bieżących danych — działał w środowiskach, w których cena błędu jest wymierna.

Źródła

Udostępnij to opracowanie