Preskočiť na obsah
2.5Expert7 min

Vzor Reflexion: Agenti, ktorí sa učia z chýb

Sebastian KarallAktualizované 17. októbra 2026
Definition

Vzor Reflexion je architektúra agenta, pri ktorej LLM agent reflektuje nad minulými pokusmi: Actor vytvorí riešenie, Evaluator ho ohodnotí a model Self-Reflection z toho napíše jazykovú kritiku do pamäťového buffera. Pri ďalšom pokuse Actor túto reflexiu prečíta a opraví sa, úplne bez trénovania modelu.

Na prvý pohľad

  • Reflexion (Shinn et al., arXiv:2303.11366, NeurIPS 2023) umožňuje agentom učiť sa z chýb in-context: Actor vytvára, Evaluator hodnotí, Self-Reflection píše verbálnu kritiku do epizodickej pamäte.
  • Sebakorekcia prebieha čisto jazykovo. Nemenia sa žiadne váhy modelu. Nejde o skutočné trénovanie, ale o verbálny reinforcement počas viacerých pokusov.
  • Najsilnejšou oblasťou použitia sú iteratívne úlohy s jasným kontrolným signálom: pri HumanEval (generovanie kódu v Pythone) dosiahol Reflexion 91 % pass@1 oproti približne 80 % pri baseline GPT-4.
  • Bez spoľahlivého evaluátora vzor zlyháva: pri MBPP Reflexion zaostal za baseline GPT-4, pretože unit testy, ktoré si agent sám vygeneroval, dávali príliš veľa falošne pozitívnych výsledkov.
  • Reflexion stojí približne 10- až 30-násobok jedného prechodu CoT a beží striktne sekvenčne. Hodí sa na dávkové a back-office úlohy, nie na chat v reálnom čase.
  • Iterácie vždy tvrdo obmedz a podľa možnosti nasaď externý ground-truth signál (unit testy, RAG evaluátor, regex). Samotné sebahodnotenie je nespoľahlivé.

Vzor Reflexion je architektúra agenta, pri ktorej LLM agent systematicky premýšľa nad svojimi vlastnými minulými pokusmi a tým sa zlepšuje. Namiesto jedinej odpovede prejde agent viacerými pokusmi: Actor vytvorí riešenie, Evaluator ho ohodnotí a model Self-Reflection z hodnotenia a priebehu napíše jazykovú kritiku. Táto kritika sa uloží do pamäťového buffera a riadi ďalší pokus. Pozoruhodné: nemenia sa žiadne váhy modelu. Zlepšenie je čisto jazykové.

Postup vychádza z práce autorov Shinn, Cassano, Berman, Gopinath, Narasimhan a Yao: Reflexion: Language Agents with Verbal Reinforcement Learning (arXiv:2303.11366, marec 2023, NeurIPS 2023). Bola to prvá široko citovaná demonštrácia toho, že analýza chýb, ktorú LLM sám sformuluje slovami, je silnejším učebným signálom pre zlepšenie in-context než jednoduchá numerická odmena.

To najdôležitejšie v troch vetách

  • Čo to je: Slučka z Actora, Evaluatora a Self-Reflection s epizodickou pamäťou. Agent sa učí z chýb in-context počas viacerých pokusov, bez fine-tuningu.
  • Kedy sa oplatí: Pri iteratívnych úlohách s jasným, automatizovateľným kontrolným signálom, napríklad pri generovaní kódu s unit testami. Tu merateľne zvyšuje mieru úspešnosti.
  • Kde je hranica: Vysoké náklady (rádovo 10- až 30-násobok jedného volania CoT), striktne sekvenčný beh a bez spoľahlivého evaluátora je nepoužiteľný. Nie je náhradou za skutočné trénovanie.

Ako funguje slučka Reflexion

Vzor pozostáva z troch komponentov, ktoré spolupracujú v slučke:

  1. Actor: vytvára riešenie, respektíve postup riešenia. Typicky je to sám osebe agent ReAct alebo Chain-of-Thought.
  2. Evaluator: hodnotí pokus. Hodnotenie môže byť binárne (prešiel/neprešiel), skalárne alebo prostredníctvom externej testovacej sady.
  3. Model Self-Reflection: premieňa hodnotenie spolu s priebehom na verbálnu spätnú väzbu: odsek kritiky v prirodzenom jazyku. Tento text sa ukladá do epizodického pamäťového buffera.

Pri ďalšom pokuse sa text reflexie pridá na začiatok kontextu Actora. „Aktualizácia policy“ je teda čisto jazyková, nemenia sa žiadne váhy. Pamäť je zámerne malá, typicky sa uchovávajú jedna až tri reflexie.

Priebeh v skratke:

```
Pokus_k: Actor → Evaluator → Self-Reflect → [pripojiť do pamäte]
Pokus_k+1: Actor vidí pamäť → nový pokus
... až do úspechu alebo dosiahnutia max. počtu pokusov
```

Koncepčná výhoda oproti klasickému reinforcement learningu: štandardné RL potrebuje veľa vzoriek a drahý fine-tuning, aby sa naučilo zo spätnej väzby. Reflexion sa učí in-context počas niekoľkých pokusov, čo je o niekoľko rádov lacnejšie a rýchlejšie na nastavenie.

Kedy vzor Reflexion zvyšuje mieru úspešnosti

Prínos stojí a padá s kvalitou signálu evaluátora. Najsilnejším doloženým príkladom je generovanie kódu, pretože tam existuje automatické orákulum: unit testy.

Benchmark

Reflexion

Porovnanie/baseline

Interpretácia

HumanEval pass@1 (Python)

91 %

~80 % baseline GPT-4 (v čase vydania práce)

Jasný zisk vďaka testovaciemu orákulu

ALFWorld (miera úspešnosti)

130 zo 134 úloh (97 %) počas 12 pokusov

samotný ReAct

Iteratívna úloha so spätnou väzbou

HotpotQA

výrazné absolútne zisky oproti CoT/ReAct

CoT, samotný ReAct

Úloha s uvažovaním profituje

MBPP pass@1 (Python)

zaostal za baseline

~80 % baseline GPT-4

Varovný signál: slabý evaluátor

Ideálna konštelácia pre Reflexion je tým jasne vymedzená: úloha je iteratívna, neúspešný pokus sa dá lacno zopakovať a existuje automatizovateľný kontrolný signál. To platí pre generovanie kódu a opravu chýb, pre úlohy s overiteľnými medzivýsledkami a pre textové vyhľadávacie a akčné prostredia, ako je ALFWorld. V rozhodovacej matici podkladového prieskumu je pre agentov na generovanie kódu a opravu chýb výslovne uvedená kombinácia „Reflexion + ReAct“ s poznámkou: potrebuje unit testy ako orákulum.

Hranice: náklady, omyly a žiadne skutočné učenie

Reflexion nefunguje automaticky. Najdôležitejšie slabiny, všetky doložené z práce a z praxe:

  • Prípad MBPP (sekcia práce 4.3): Pri MBPP Reflexion zaostal za baseline GPT-4, pretože unit testy, ktoré si sám vygeneroval, mali vysokú mieru falošne pozitívnych výsledkov. Agent predčasne vyhlásil pokus za úspešný. Je to kanonické varovanie pred predpokladom „Reflexion vždy zlepšuje výkon“.
  • Konfabulované reflexie: Ak model nesprávne diagnostikuje, prečo zlyhal, ďalší pokus zdedí nesprávnu korekciu. Sebakritika teda môže agenta aj zaviesť na scestie.
  • Reward hacking: Agent sa môže naučiť oklamať evaluátor namiesto toho, aby vyriešil samotnú úlohu.
  • Vágne reflexie bez orákula: Pri kreatívnom písaní alebo otvorenom prieskume chýba jasný kontrolný signál. Reflexie potom upadajú do všeobecných fráz.
  • Náklady a latencia: Na jeden pokus zhruba jeden úplný beh ReAct plus po jednom volaní pre Evaluator a Self-Reflection, vynásobené K pokusmi. Pokusy sú nevyhnutne sekvenčné, každý potrebuje predchádzajúcu reflexiu. Použitia v reálnom čase väčšinou neprichádzajú do úvahy.

Zásadný koncepčný bod pre tých, ktorí rozhodujú: Reflexion nie je skutočné učenie. Nemenia sa žiadne váhy, „naučené“ žije v kontextovom okne aktuálnej epizódy. Trvalé znalosti vznikajú až vtedy, keď sa reflexie trvalo ukladajú externe.

Porovnanie nákladov

Nasledujúce hodnoty sú orientačné (rádové veľkosti), syntetizované z údajov v práci a zo správ z praxe. Nenahrádzajú meranie na vlastnej záťaži.

Vzor

Tokeny (relatívne k jednému volaniu CoT = 1)

Latencia (pri N krokoch s nástrojmi)

Zložitosť

ReAct

3–10×

N × sekvenčne

nízka

Reflexion (K=3 pokusy)

10–30×

K × ReAct, sekvenčne

stredná

Plan-and-Execute

2–6×

1 plán + N sekvenčne

stredná

ReWOO

1,5–3×

1 plán + N nástrojov + 1 solver

stredná

Reflexion teda zámerne leží v hornom cenovom pásme. Kto ho nasadí bez pevnej hranice iterácií, riskuje, že slučka vyženie náklady do výšky.

Praktický príklad: kódový agent, ktorý sa sám opravuje

Konkrétny scenár z doloženej oblasti použitia. Agentúra má postaviť agenta, ktorý k popisu funkcie dodá spustiteľný kód v Pythone. Pseudokód slučky Reflexion:

```text
pokus = 0
reflexie = []
kým pokus < MAX_POKUSOV (napr. 3):
kód = Actor.generuj(úloha, kontext=reflexie) # Actor
výsledok = Evaluator.spusti_unit_testy(kód) # Evaluator = testovacie orákulum
ak výsledok.všetky_prešli:
vráť kód # ukončenie pri úspechu
kritika = SelfReflect.analyzuj(kód, výsledok.chyby) # verbálna kritika
reflexie.append(kritika) # pamäť obmedz na 1–3 záznamy
pokus += 1
```

V logike výsledku HumanEval: prvý návrh zlyhá na dvoch z desiatich testov. Self-Reflection si zaznamená zhruba toto: „okrajový prípad prázdneho zoznamu nie je ošetrený, chyba off-by-one v slučke“. Druhý pokus si túto poznámku prečíta, opraví oboje a prejde všetkými testami. Presne tento vzorec stojí za zlepšením HumanEval z približne 80 % na 91 % pass@1.

Dve nediskutovateľné ponaučenia z prieskumu pre produkčné nasadenie:

  • Iterácie vždy obmedz. V CrewAI cez max_reasoning_attempts, v LangGraph cez podmienku revision_number ≤ N. Inak môže slučka eskalovať.
  • Externý ground-truth signál využívaj, kde sa dá: unit testy, RAG evaluátor, regex match. Čisté sebahodnotenie je nespoľahlivé; prípad MBPP je varovaním.

Ak máš opakujúce sa typy úloh, môžeš reflexie navyše ukladať do vektorovej databázy, s kľúčom podľa typu úlohy. Tak vzniká emergentná knižnica zručností, ktorá pôsobí aj za hranicami jednotlivých epizód. Tým sa Reflexion približuje k prístupom typu skill library, ako je Agent Workflow Memory (arXiv:2409.07429).

Zaradenie v ekosystéme frameworkov (stav 2026)

  • LangGraph: oficiálny tutoriál s tromi variantmi: Basic Reflection (pár generátor a reflektor), Reflexion (Draft-Responder → spustenie nástrojov → slučka Revisor s explicitnou pamäťou reflexií) a LATS (Reflexion plus stromové vyhľadávanie). Silným produkčným vzorom je pritom štruktúrovaný výstup, ktorý zhŕňa answer, reflection (čo chýba, čo je nadbytočné) a následné search_queries.
  • CrewAI: dvojstupňovo. Na úrovni agenta cez Agent(reasoning=True, max_reasoning_attempts=N), na úrovni crew cez samostatného Critic Agenta v Hierarchical Process.
  • AutoGen: zdokumentovaný ako dizajnový vzor „Reflection“ s agentmi Coder a Reviewer, ktorí iterujú až do konvergencie alebo do max_iterations. Poznámka: AutoGen je oficiálne v režime údržby, Microsoft pri nových projektoch odkazuje na Microsoft Agent Framework, spoločného nástupcu AutoGen a Semantic Kernel.
  • n8n: žiadny natívny uzol Reflexion. Dá sa postaviť ako slučka vo workflow: agent generátor → agent kritik → uzol IF podľa verdiktu → späť ku generátoru alebo koniec. Vhodné na dávkové a back-office úlohy, nie na chat s nízkou latenciou.

Pre agentúry a B2B

Pre marketingové agentúry v regióne DACH je Reflexion správnym nástrojom na úzko vymedzené, overiteľné dávkové úlohy s nárokom na kvalitu: automatizované generovanie kódu alebo konfigurácií, obohacovanie dát s jasnými validačnými pravidlami, štruktúrovaný obsah s pevnou schémou. Základné pravidlo: nasadzuj ho len vtedy, keď vieš definovať automatizovateľný kontrolný signál a latencia nebude viditeľná v rozhovore so zákazníkom. Pre chatboty v reálnom čase je lepšou voľbou reaktívny vzor ReAct. My v Blck Alpaca zabudovávame práve toto architektonické rozhodnutie do nákladového rámca: najprv zmerať, aké typy chýb sa vyskytujú, potom cielene eskalovať z jednoduchého ReAct na Reflexion, s pevnou hranicou iterácií a externým orákulom. Tak zostáva agent spoľahlivý a rozpočet na tokeny predvídateľný.

Zhrnúť pomocou AIChatGPTClaudePerplexity

Otvorí chat s pripraveným promptom.

Často kladené otázky

Aký je rozdiel medzi Reflexion a Reflection?
Reflexion s x označuje konkrétny postup z práce Shinn et al. (2023) s trojicou Actor, Evaluator a Self-Reflection a s epizodickou pamäťou. Reflection sa v praxi, napríklad na blogu LangChain, používa ako zastrešujúci pojem pre akúkoľvek slučku sebakritiky vrátane jednoduchých párov generátor a kritik. V slovenčine sa oplatí rozlišovať Reflexion (Shinn et al.) a vzor Reflection v širšom zmysle, aby sa predišlo nedorozumeniam.
Učí sa agent Reflexion naozaj trvalo?
Nie, nie v zmysle klasického trénovania. Nemenia sa žiadne váhy modelu. Zlepšenie vzniká in-context: verbálna kritika sa pri ďalšom pokuse načíta do kontextu Actora. Naučené platí najprv len v rámci tejto epizódy. Až keď reflexie ukladáš do vektorovej databázy a opätovne používaš podľa typu úlohy, vzniká emergentná knižnica zručností naprieč epizódami.
Kedy by sa Reflexion nemal používať?
Pri úlohách bez jasného kontrolného signálu, napríklad pri kreatívnom písaní alebo otvorenom prieskume, reflexie degenerujú na vágne frázy. Rovnako nevhodný je pre latenčne kritické aplikácie v reálnom čase, pretože pokusy prebiehajú nevyhnutne sekvenčne. Aj pri dlhom horizonte úlohy, keď príčina chyby leží mnoho krokov pred chybovým signálom, je diagnostika ťažká.
Aký drahý je vzor Reflexion v porovnaní s jednoduchým agentom?
Rádovo: každý pokus stojí približne jeden beh ReAct plus po jednom volaní pre Evaluator a Self-Reflection, vynásobené počtom pokusov K. Pri typickom K rovnom trom je to podľa tabuľky nákladov vyššie približne troj- až štvornásobok jedného behu ReAct, relatívne k jednému volaniu CoT zhruba 10- až 30-násobok. Tieto hodnoty sú orientačné a mali by sa merať na vlastnej záťaži.
V ktorých frameworkoch sa dá Reflexion implementovať?
LangGraph ponúka oficiálny tutoriál s tromi variantmi (Basic Reflection, Reflexion, LATS). CrewAI ho pokrýva dvojstupňovo: agent s reasoning=True a max_reasoning_attempts a k tomu samostatný Critic Agent v Hierarchical Process. AutoGen ho dokumentuje ako dizajnový vzor Reflection s agentmi Coder a Reviewer. V n8n neexistuje natívny uzol; slučku si postavíš z agenta generátora, agenta kritika a uzla IF (stav 2026).

Ísť hlbšie?

Získajte nové analýzy priamo do schránky, alebo sa pozrite, ako tieto poznatky nasadzujeme pre firmy.