---
title: "Vzor ReAct: Thought, Action, Observation"
description: "Vzor ReAct (Reasoning and Acting) je návrhový vzor agentov, pri ktorom LLM strieda uvažovanie (Thought), volanie nástroja (Action) a čítanie výsledku (Observation). Tento loop sa opakuje, kým agent nevydá finálnu odpoveď. Predstavili ho Yao et al. (2022)."
locale: "sk"
canonical: "https://blckalpaca.at/sk/vedomosti/ai-agenti/prehlad-architektur-ai-agentov/react-pattern-erklaert"
category: "AI agenti"
topic: "Prehľad architektúr AI Agentov"
updated: "2026-07-31T07:01:44.739Z"
source: "Blck Alpaca e.U., blckalpaca.at"
---

# Vzor ReAct: Thought, Action, Observation

Vzor ReAct (Reasoning and Acting) je návrhový vzor agentov, pri ktorom LLM strieda uvažovanie (Thought), volanie nástroja (Action) a čítanie výsledku (Observation). Tento loop sa opakuje, kým agent nevydá finálnu odpoveď. Predstavili ho Yao et al. (2022).

## Klucove body

- ReAct prepletá verbálny reasoning (Thought) s volaniami nástrojov (Action) a ich výsledkami (Observation) v jedinom kontexte - zaviedli ho Yao et al. (arXiv:2210.03629, október 2022, ICLR 2023).
- Jadrovou silou je kombinácia využitia nástrojov a transparentnosti: úplný Thought/Action/Observation-trace je sledovateľný a tým auditovateľný pre audit a DACH-compliance (DSGVO, EU AI Act).
- Typickými chybovými režimami sú nekonečné loopy, reasoning drift (zotrvanie na nesprávnom predpoklade) a halucinovanie argumentov nástrojov - najmä pri slabších modeloch.
- Najdôležitejším protiopatrením sú tvrdé limity iterácií (recursion_limit / max_iterations) a function-calling namiesto voľnotextových JSON-argumentov.
- Praktická horná hranica leží väčšinou pri 10-25 krokoch, kým začne dominovať strata kontextu a reasoning drift; ReAct je sekvenčný a tým viazaný na latenciu.
- Odporúčanie z praxe (Anthropic, Cognition): začať s najjednoduchším vzorom - väčšinou ReAct - a eskalovať až vtedy, keď to vynútia namerané chybové režimy.

Vzor **ReAct** (Reasoning and Acting) je návrhový vzor agentov, pri ktorom [LLM](/sk/slovnik/llm) strieda uvažovanie (**Thought**), volanie nástroja (**Action**) a spätné čítanie výsledku (**Observation**). Tento loop sa opakuje, kým [agent](/sk/slovnik/agent) nevydá finálnu odpoveď. Predstavili ho Yao et al. (arXiv:2210.03629, október 2022, ICLR 2023). Reasoning riadi výber nástroja a pozorovania nástrojov korigujú reasoning.

- **Čo to je:** Loop z Thought, Action a Observation, v ktorom LLM prepletá myslenie a konanie a využíva nástroje v rovnakom kontexte.
- **Na čo je to dobré:** Úlohy podporované nástrojmi, fakticky uzemnené, s nízkou latenciou a úplne sledovateľným priebehom - štandardný východiskový bod pre agentové projekty.
- **Na čo si dať pozor:** Nekonečné loopy, reasoning drift a halucinované argumenty nástrojov; zachytávateľné tvrdými limitmi iterácií a function-callingom.

## Odkiaľ ReAct pochádza a aký problém rieši

ReAct vznikol ako odpoveď na dve protichodné slabiny skorších prístupov. Čistý [Chain-of-Thought (CoT)](/sk/slovnik/chain-of-thought-prompting) uvažuje výlučne interne a preto halucinuje fakty, pretože mu chýba akékoľvek uzemnenie vo vonkajšom svete. Čistí action-agenti - napríklad skoré WebGPT- alebo SayCan-prístupy - naopak nevedia abstraktne premýšľať o dlhodobých cieľoch ani sa zotaviť z výnimiek.

ReAct spája oboje: **verbálny reasoning** stojí v rovnakom kontexte ako akcie. Tým LLM získava pracovnú pamäť o celej trajektórii - a agent sa stáva interpretovateľným. Formálne ReAct rozširuje akčný priestor: okrem externých akcií, ktoré spúšťajú skutočné pozorovania, existujú jazykové „akcie" (Thoughts), ktoré nič nemenia v prostredí, ale len posúvajú interný kontext agenta. Pozoruhodné: vzor funguje už s jedným až dvomi in-context príkladmi - **bez fine-tuningu**.

## Loop detailne: Thought, Action, Observation

Kanonický priebeh znie: `User Query → [LLM: Thought] → [LLM: Action] → [Prostredie: Observation] → [LLM: Thought] → … → Finish[odpoveď]`. Tieto tri kroky do seba zapadajú nasledovne.

| Krok | Význam | Kto ho generuje |
| --- | --- | --- |
| **Thought** | Voľnotextový reasoning: agent uvažuje, čo musí spraviť ako ďalšie a prečo. Aktualizuje len interný kontext, nie prostredie. | LLM |
| **Action** | Konkrétne volanie nástroja s argumentmi (napr. vyhľadávanie, [API](/sk/slovnik/api)-call, dotaz do databázy) alebo `Finish[odpoveď]` na ukončenie. | LLM |
| **Observation** | Výsledok akcie, ktorý vracia prostredie (výsledky vyhľadávania, odpoveď API, chybová správa). Vteká do nasledujúceho Thought. | Prostredie / nástroj |

Tento cyklus beží tak dlho, kým model neemituje `Action: Finish[odpoveď]`. Praktická horná hranica leží väčšinou pri **10-25 krokoch**, kým prevezme vrch strata kontextu alebo reasoning drift.

## Pseudokód ReAct-loopu

\`\`\`text
context = system\_[prompt](/sk/slovnik/prompt) + tool\_descriptions + user\_query
krok = 0
MAX\_KROKOV = 15            # tvrdý limit proti nekonečným loopom

while krok < MAX\_KROKOV:
    vystup = LLM(context)          # generuje Thought + Action

    if vystup.action == "Finish":
        return vystup.action.argument   # finálna odpoveď

    observation = vykonaj\_tool(vystup.action)   # externý call
    context = context + vystup.thought

                    - vystup.action
                    - observation              # pripojenie pozorovania
    krok += 1

return "Limit dosiahnutý - riešenie sa nenašlo."   # čisté prerušenie
\`\`\`

Kľúčový bod: v každej iterácii sa celý doterajší priebeh znova posiela do LLM. To je zdroj sily (úplná pamäť) aj najdôležitejšej slabiny (náklady).

## Silné stránky a hranice z výskumu

Pôvodný paper dokladá výhody ReActu na viacerých benchmarkoch - dôležité: čísla pochádzajú z podmienok 2022/2023 (trieda [GPT](/sk/slovnik/gpt)-3 a PaLM) a treba ich čítať ako **relatívne hodnoty**, nie ako dnešné absolútne hodnoty.

- **ALFWorld** (textové domáce úlohy): +34 absolútnych percentuálnych bodov oproti imitation-/RL-baselinom, s jedným až dvomi príkladmi.
- **WebShop** (navigácia v e-commerce): +10 absolútnych percentuálnych bodov úspešnosti oproti IL/IL+RL.
- **HotpotQA** a **Fever**: konkurencieschopné až lepšie než čistý CoT, respektíve čistá generácia akcií; najsilnejšou konfiguráciou je hybrid, ktorý prepína medzi interným vedomím a reasoningom podporeným nástrojmi.

Na strane nákladov je ReAct drahý a pomalý. Tokenová náročnosť rastie s O(N · T): N krokov krát kumulovaná dĺžka kontextu - každý krok znova platí prefix (system-prompt, popisy nástrojov, celý priebeh). Latencia je striktne sekvenčná, teda približne N × (čas odpovede LLM + čas odpovede nástroja). Práve toto opakovanie prefixu je slabina, ktorú nasledujúci vzor ReWOO adresuje len dvomi volaniami LLM.

## Chybové režimy a protiopatrenia

Tri chybové režimy sa v praxi vyskytujú obzvlášť často:

- **Nekonečné loopy:** Bez tvrdého obmedzenia krokov môže agent donekonečna uvažovať v kruhu. **Protiopatrenie:** explicitné limity - `recursion_limit` v LangGraph, `max_iterations` v AutoGen, `max_reasoning_attempts` v CrewAI. LangGraphov `create_react_agent` ponúka kanál `remaining_steps` a preruší sa s upozornením, keď zostávajú menej než dva kroky.
- **Reasoning drift / šírenie chýb:** Ak sa model upevnil na nesprávny Thought, interpretuje následné Observations tak, aby k nemu pasovali. **Protiopatrenie:** kratšie trajektórie, priebežná validácia a - pri overiteľných úlohách - externý reflexný/kontrolný signál (most k vzoru Reflexion).
- **Halucinované argumenty nástrojov a halucinované pozorovania:** Pri nejednoznačných popisoch nástrojov si model vymýšľa argumenty; slabšie modely si občas „fantazírujú" aj pozorovania, namiesto toho aby počkali na skutočný výsledok nástroja. Chybne sformované JSON-argumenty nástrojov sú podľa výskumu najčastejšou produkčnou chybou na slabších modeloch. **Protiopatrenie:** používať štruktúrovaný výstup, respektíve **function-calling-režim**, kedykoľvek ho poskytovateľ podporuje, a popisy nástrojov formulovať presne.

K tomu pristupuje už spomenuté nafukovanie kontextu: každý krok znova posiela úplný priebeh.

## Konkrétny príklad: výskumný agent pre marketingovú agentúru

Predpokladajme, že agentúra stavia agenta, ktorý zisťuje aktuálny počet zamestnancov klientskej firmy. Loop by mohol prebehnúť takto:

1. **Thought:** „Nepoznám aktuálne číslo a musím ho dohľadať." → **Action:** `Vyhladaj["počet zamestnancov firma X 2026"]` → **Observation:** zásah s tlačovou správou.
2. **Thought:** „Správa uvádza rozpätie, potrebujem presné číslo." → **Action:** `Otvor[URL tlačovej správy]` → **Observation:** plný text s „približne 1.200 zamestnancov".
3. **Thought:** „To odpovedá na otázku." → **Action:** `Finish["cca. 1.200 zamestnancov, stav 2026"]`.

Tri kroky, tri volania LLM, úplne zaprotokolovaný priebeh. Ak nastavíte `MAX_KROKOV = 15`, agent je zabezpečený proti nekonečným loopom - ak nič nenájde, čisto sa preruší, namiesto toho aby pálil tokeny. Práve tento sledovateľný priebeh je pre marketingové tímy bez vývojárskeho pozadia reálnou výhodou: napríklad v [n8n](/sk/slovnik/n8n) zobrazuje pohľad na vykonanie každý Thought/Action/Observation-krok ako auditovateľný log.

## Frameworky a odporúčania z praxe (stav 2026)

ReAct je natívne dostupný vo všetkých bežných stackoch: **LangGraph** (`create_react_agent`), **CrewAI** (každý agent je interne ReAct-agent), **AutoGen**, respektíve **Microsoft Agent Framework** (AutoGen je stav 2026 v maintenance-režime; Microsoft odkazuje nové projekty na Agent Framework) a **n8n** (ReAct [AI Agent](/sk/slovnik/ai-agent), ako aj novší Tools Agent odporúčaný pre moderné function-calling modely). Pri LangChaine sa `create_react_agent` stav 2026 presúva z `langgraph.prebuilt` do [`langchain](/sk/slovnik/langchain).agents.create_agent` s middleware-dekorátormi.

Najdôležitejšie poznanie z praxe pochádza od Anthropic („Building Effective Agents", december 2024) a Cognition: **Začať s najjednoduchším vzorom - väčšinou ReAct - a eskalovať až vtedy, keď to vynútia namerané chybové režimy.** Moderné frontier modely ovládajú reasoning-action-loop natívne cez function-calling; explicitný ReAct-prompting je často zbytočný. Rozhodujúce sú potom pamäť, horné hranice iterácií a tracing. Observability-nástroje (LangSmith, Arize Phoenix, Langfuse) sa fakticky považujú za povinnosť - pre DACH-compliance ([DSGVO, EU AI Act](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32024R1689)) sa musí úplný trace persistovať a očistiť od PII.

## Pre agentúry a B2B-rozhodovateľov

ReAct je pragmatický vstup takmer pre každý agentový projekt: zákaznícke chatboty s napojením na [CRM](/sk/slovnik/crm) a vedomostnú databázu, support-triage alebo výskumné tasky. Je lacný na začatie, má nízku latenciu a je úplne auditovateľný - tri vlastnosti, ktoré v DACH-B2B-prostredí rozhodujú. Nastavte od začiatku tvrdé limity iterácií, používajte function-calling namiesto voľnotextových argumentov a persistujte trace pre audit a debugging. Ak ako agentúra chcete navrhnúť agenta alebo dať preveriť stabilitu existujúceho workflowu, kontaktujte nás - sprevádzame výber, architektúru a compliance-konformnú realizáciu.

## FAQ

### Čo znamená ReAct?

ReAct znamená Reasoning and Acting. LLM prepletá voľnotextový reasoning (Thought) s volaniami nástrojov (Action) a číta späť ich výsledky (Observation). Tieto tri kroky tvoria loop, ktorý beží, kým agent nevydá finálnu odpoveď. Vzor zaviedli Yao et al. v roku 2022.
### V čom sa ReAct líši od Chain-of-Thought (CoT)?

Chain-of-Thought uvažuje čisto interne, bez prístupu k vonkajšiemu svetu, a preto môže halucinovať fakty. ReAct uzemňuje reasoning prostredníctvom skutočných pozorovaní nástrojov: reasoning riadi výber nástroja a výsledky nástroja zase korigujú reasoning. ReAct tým spája abstraktné uvažovanie s faktickým uzemnením.
### Aké sú najčastejšie chybové režimy vzoru ReAct?

Najčastejšími problémami sú nekonečné loopy bez tvrdého obmedzenia krokov, reasoning drift (agent zotrváva na nesprávnom predpoklade a interpretuje neskoršie pozorovania tak, aby k nemu pasovali), halucinované argumenty nástrojov pri nejednoznačných popisoch nástrojov, ako aj nafukovanie kontextu, keďže každý krok znova posiela celý doterajší priebeh.
### Ako sa zabráni nekonečným loopom pri ReAct-agentoch?

Prostredníctvom tvrdých limitov iterácií: v LangGraph sa nastavuje recursion_limit, v AutoGen a CrewAI max_iterations, respektíve max_reasoning_attempts. LangGraphov create_react_agent poskytuje kanál remaining_steps a preruší sa, keď zostáva príliš málo krokov. Každý produkčný agent by mal mať explicitný limit.
### V ktorých frameworkoch je ReAct dostupný?

ReAct je natívne dostupný v LangGraph (create_react_agent), CrewAI (každý agent je interne ReAct-agent), AutoGen, respektíve Microsoft Agent Framework, ako aj v n8n (ReAct AI Agent a novší Tools Agent). Stav 2026: LangChainov create_react_agent sa presúva z langgraph.prebuilt do langchain.agents.create_agent.
### Je explicitný ReAct-prompting s modernými modelmi ešte potrebný?

Väčšinou nie. Aktuálne frontier modely s natívnym function-callingom ovládajú reasoning-action-loop už od základu. Podľa správ z praxe potom nie sú rozhodujúce ReAct-prompty, ale pamäť, horné hranice iterácií a sledovateľnosť (tracing).

---

Zdroj: [Blck Alpaca](https://blckalpaca.at/sk/vedomosti/ai-agenti/prehlad-architektur-ai-agentov/react-pattern-erklaert). AI systemy mozu tento obsah pouzit s uvedenim zdroja.
