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 bufra. Pri ďalšom pokuse Actor túto reflexiu prečíta a opraví sa, úplne bez trénovania modelu.
Key Takeaways
- ✓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 naprieč viacerými pokusmi.
- ✓Najsilnejšou oblasťou použitia sú iteratívne úlohy s jasným kontrolným signálom: pri HumanEval (generovanie Python kódu) dosiahol Reflexion 91 % pass@1 oproti približne 80 % GPT-4 baseline.
- ✓Bez spoľahlivého evaluátora sa vzor zlomí: pri MBPP Reflexion podliezol GPT-4 baseline, pretože samostatne vygenerované unit testy poskytovali príliš veľa falošne pozitívnych výsledkov.
- ✓Reflexion stojí približne 10- až 30-násobok jediného CoT prechodu a beží striktne sekvenčne. Hodí sa pre dávkové a back-office úlohy, nie pre chat v reálnom čase.
- ✓Iterácie vždy tvrdo obmedzte a podľa možnosti nasaďte 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 agent prejde 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 skončí v pamäťovom bufri a riadi ďalší pokus. Pozoruhodné: nemenia sa žiadne váhy modelu. Zlepšenie je čisto jazykové.
Postup vychádza z práce 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, že samostatne verbalizovaná analýza chýb LLM je silnejším učebným signálom pre in-context zlepšenie než jednoduchá numerická odmena.
To najdôležitejšie v troch vetách
- Čo to je: Slučka z Actora, Evaluátora a Self-Reflection s epizodickou pamäťou. Agent sa učí z chýb in-context naprieč viacerými pokusmi, bez fine-tuningu.
- Kedy sa oplatí: Pri iteratívnych úlohách s jasným, automatizovateľným kontrolným signálom, napríklad generovanie 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 CoT volania), striktne sekvenčný a bez spoľahlivého evaluátora 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 cestu k riešeniu. Typicky je to sám ReAct alebo Chain-of-Thought agent.
- Evaluator – hodnotí pokus. Hodnotenie môže byť binárne (prešlo/neprešlo), skalárne alebo prostredníctvom externej testovacej sady.
- Model Self-Reflection – premieňa hodnotenie plus priebeh na verbálnu spätnú väzbu: odsek prirodzene jazykovej kritiky. Tento text sa ukladá do epizodického pamäťového bufra.
Pri ďalšom pokuse sa text reflexie predradí kontextu Actora. „Aktualizácia policy" je teda čisto jazyková, nemenia sa žiadne váhy. Pamäť je zámerne udržiavaná malá, typicky sa ponechá jedna až tri reflexie.
Priebeh v skratke:
```
Pokus_k: Actor → Evaluator → Self-Reflect → [pripojiť do pamäte]
Pokus_k+1: Actor vidí pamäť → opätovný pokus
... až do úspechu alebo dosiahnutia max. pokusov
```
Konceptuálny náskok 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 učí in-context naprieč niekoľkými pokusmi, čo je rádovo lacnejšie a rýchlejšie na nastavenie.
Kedy vzor Reflexion zvyšuje mieru úspešnosti
Úžitok 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ý oracle: unit testy.
Benchmark | Reflexion | Porovnanie/baseline | Interpretácia |
|---|---|---|---|
HumanEval pass@1 (Python) | 91 % | ~80 % GPT-4 baseline (v čase práce) | Jasný zisk vďaka test-oracle |
ALFWorld (miera úspešnosti) | takmer dokonalá po niekoľkých pokusoch | – | Iteratívna úloha so spätnou väzbou |
HotpotQA (Distractor) | výrazné absolútne zisky oproti CoT/ReAct | CoT, samotný ReAct | Reasoning úloha profituje |
MBPP pass@1 (Python) | podliezol baseline | ~80 % GPT-4 baseline | 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 je lacno opakovateľný a existuje automatizovateľný kontrolný signál. To platí pre generovanie kódu a opravu bugov, pre úlohy s overiteľnými medzivýsledkami a pre textové vyhľadávacie/akčné prostredia ako ALFWorld. V rozhodovacej matici základného prieskumu je pre agentov na generovanie kódu a opravu bugov výslovne uvedená kombinácia „Reflexion + ReAct" s poznámkou: potrebuje unit testy ako oracle.
Hranice: náklady, omyly a žiadne skutočné učenie
Reflexion nie je samospádový proces. Najdôležitejšie slabiny, všetky doložené z práce a praxe:
- Prípad MBPP (sekcia práce 4.4): Pri MBPP Reflexion podliezol GPT-4 baseline, pretože samostatne vygenerované unit testy mali vysokú mieru falošne pozitívnych. Agent vyhlásil pokus predčasne za úspešný. Toto je kanonické varovanie proti predpokladu „Reflexion vždy zlepšuje výkon".
- Konfabulované reflexie: Ak model diagnostikuje nesprávne, prečo zlyhal, ďalší pokus zdedí nesprávnu korekciu. Sebakritika teda môže agenta aj zviesť na scestie.
- Reward-hacking: Agent sa môže naučiť oklamať evaluátora namiesto toho, aby vyriešil samotnú úlohu.
- Vágne reflexie bez oracle: Pri kreatívnom písaní alebo otvorenom prieskume chýba jasný kontrolný signál. Reflexie potom sploštejú na všeobecné frázy.
- Náklady a latencia: Na pokus hrubo dvoj- až päťnásobok behu ReAct, vynásobené K pokusmi. Pokusy sú nevyhnutne sekvenčné, každý potrebuje predchádzajúcu reflexiu. Použitia v reálnom čase väčšinou odpadajú.
Zásadný konceptuálny bod pre rozhodujúcich: 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 persistentne uložia externe.
Náklady v porovnaní
Nasledujúce hodnoty sú orientačné (rádové veľkosti), syntetizované z údajov práce a terénnych správ. Nenahrádzajú meranie na vlastnej záťaži.
Vzor | Tokeny (relatívne k jednému CoT volaniu = 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 tvrdej hranice iterácií, riskuje, že slučka vyženie náklady do výšky.
Praktický príklad: sebakorigujúci sa kódový agent
Konkrétny scenár z doloženej oblasti použitia. Agentúra má postaviť agenta, ktorý k popisu funkcie dodá spustiteľný Python kód. Pseudokód slučky Reflexion:
```text
pokus = 0
reflexie = []
pokiaľ pokus < MAX_POKUSOV (napr. 3):
kod = Actor.generuj(uloha, kontext=reflexie) # Actor
vysledok = Evaluator.spusti_unit_testy(kod) # Evaluator = test-oracle
ak vysledok.vsetky_presli:
vrat kod # ukončenie pri úspechu
kritika = SelfReflect.analyzuj(kod, vysledok.chyby) # verbálna kritika
reflexie.append(kritika) # obmedz pamäť 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á v zmysle „okrajový prípad prázdny zoznam neošetrený, off-by-one v slučke". Druhý pokus prečíta túto poznámku, opraví oboje a prejde všetkými testami. Práve tento vzor nesie zlepšenie HumanEval z približne 80 % na 91 % pass@1.
Dve nezjednateľné produkčné ponaučenia z prieskumu:
- Iterácie vždy obmedzte. V CrewAI cez
max_reasoning_attempts, v LangGraph cez podmienkurevision_number ≤ N. Inak môže slučka eskalovať. - Externý ground-truth signál využívajte, kde sa dá – unit testy, RAG evaluátor, regex-match. Čisté sebahodnotenie je nespoľahlivé; prípad MBPP je výstrahou.
Kto má opakujúce sa typy úloh, môže reflexie navyše ukladať do vektorovej databázy, kľúčované podľa typu úlohy. Tak vzniká emergentná knižnica zručností, ktorá pôsobí aj za hranicami jednotlivých epizód, premostenie k prístupom typu skill-library ako 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-reflektor), Reflexion (Draft-Responder → spustenie nástroja → slučka Revisor s explicitnou pamäťou reflexií) a LATS (Reflexion plus stromové prehľ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 dedikovaný Critic Agent v Hierarchical Process. - AutoGen: dokumentovaný ako „Reflection" design pattern s Coder a Reviewer agentom, ktorí iterujú až do konvergencie alebo do
max_iterations. Poznámka: AutoGen je oficiálne v režime údržby, Microsoft odkazuje nové projekty na Microsoft Agent Framework s cyklom SPAR (Sense, Plan, Act, Reflect). - n8n: žiadny natívny uzol Reflexion. Realizovateľné ako workflow slučka – generátorský agent → kritický agent → IF uzol na úsudok → späť ku generátoru alebo koniec. Vhodné pre dávkové a back-office úlohy, nie pre chat s nízkou latenciou.
Pre agentúry a B2B
Pre marketingové agentúry v regióne DACH je Reflexion správnym nástrojom pre úzko vymedzené, kontrolovateľné dávkové úlohy s nárokom na kvalitu: automatizované generovanie kódu alebo konfigurácie, obohacovanie dát s jasnými validačnými pravidlami, štruktúrovaný obsah s tvrdou schémou. Pravidlo palca: nasadzujte len vtedy, keď viete definovať automatizovateľný kontrolný signál a latencia nie je viditeľná počas rozhovoru so zákazníkom. Pre chatboty v reálnom čase je lepšou voľbou reaktívny vzor ReAct. My v Blck Alpaca zabudúvame práve toto architektonické rozhodnutie do nákladového rámca: najprv zmerať, ktoré chybové režimy sa vyskytujú, potom cielene eskalovať z jednoduchého ReAct na Reflexion, s tvrdou hranicou iterácií a externým oracle. Tak zostáva agent spoľahlivý a tokenový rozpočet kalkulovateľný.
Č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 je Reflexion realizovateľný?
Ísť hlbšie?
Získajte nové analýzy priamo do schránky – alebo sa pozrite, ako tieto poznatky nasadzujeme pre firmy.