Vzor Reflexion: Agenti, ktorí sa učia z chýb
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:
- Actor: vytvára riešenie, respektíve postup riešenia. Typicky je to sám osebe agent ReAct alebo Chain-of-Thought.
- Evaluator: hodnotí pokus. Hodnotenie môže byť binárne (prešiel/neprešiel), skalárne alebo prostredníctvom externej testovacej sady.
- 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) | 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 podmienkurevision_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ý.
Otvorí chat s pripraveným promptom.
Často kladené otázky
Aký je rozdiel medzi Reflexion a Reflection?
Učí sa agent Reflexion naozaj trvalo?
Kedy by sa Reflexion nemal používať?
Aký drahý je vzor Reflexion v porovnaní s jednoduchým agentom?
V ktorých frameworkoch sa dá Reflexion implementovať?
Ísť hlbšie?
Získajte nové analýzy priamo do schránky, alebo sa pozrite, ako tieto poznatky nasadzujeme pre firmy.