ReAct: jak propojení uvažování s externími nástroji snižuje halucinace
Jak ReAct (ICLR 2023) propojuje uvažování s externími nástroji, kdy snižuje halucinace a kde naráží na limity.
Model umí znít přesvědčivě i ve chvíli, kdy neví. Nejrychlejší způsob, jak z toho ven, není „přemýšlej víc“. Je to: „ověř to“.
ReAct je vzor, který kombinuje uvažování s akcí: model nejdřív odvodí, co potřebuje zjistit, pak použije nástroj (vyhledání, databázi, kalkulačku, testy) a až potom tvrdí závěr. Nejde o magii. Jde o to, že do smyčky přidáte realitu.
Rámec tvrzení
- Co článek tvrdí: Vzor ReAct (thought-action-observation) snižuje halucinace tím, že nutí model ověřit tvrzení externím nástrojem před odpovědí; čistě jazykové uvažování bez zpětné vazby nestačí k zajištění faktické správnosti.
- Na čem to stojí: Yao et al. (2022/2023), publikováno na ICLR 2023; srovnání s CoVe (Dhuliawala et al., 2023), DoLa (Chuang et al., 2023) a Reflexion (Shinn et al., 2023).
- Kde je to zjednodušení: Článek neprezentuje kvantitativní benchmarky ukazující míru snížení halucinací; nezmiňuje náklady na orchestraci a latenci; předpokládá dostupnost kvalitních nástrojů, což v praxi nemusí platit.
Proč čisté uvažování nestačí: „model ví“ vs. „model umí ověřit“
LLM má dvě tváře:
- Znalostní: „něco si pamatuje“ z tréninku.
- Procesní: „umí si vyrobit přesvědčivou odpověď“, i když je základ chatrný.
V běžném chatu se tyhle dvě věci pletou. Uživatel položí faktickou otázku. Model nabídne detailní odpověď. Vypadá to jako vědění.
Jenže bez možnosti získat zpětnou vazbu zvenku model často dělá to, co umí nejlépe: doplní díry nejpravděpodobnějším příběhem. Někdy to je správně. Někdy to je halucinace. A vy to nepoznáte, pokud nemáte kontrolní bod.
ReAct vzniká z jednoduché otázky: co kdyby model nebyl nucen „vědět“, ale mohl si „zjistit“?
ReAct v jedné smyčce: thought → action → observation
ReAct typicky vypadá jako krátká smyčka:
- Thought (úvaha): Co přesně potřebuju zjistit? Jaký je plán ověření?
- Action (akce): Zavolej nástroj (search, DB, kalkulace, test).
- Observation (pozorování): Zapiš výsledek nástroje jako nový fakt.
Klíčový je třetí krok. Observation je moment, kdy se model přestane opírat o “pravděpodobný text” a musí pracovat s konkrétním vstupem zvenku.
Tohle mění typ chyb. Místo volného fabulování dostanete chyby ve stylu:
- špatně zvolený nástroj,
- špatně interpretovaná evidence,
- špatně položený dotaz,
- nebo “správný fakt, špatný závěr”.
To jsou chyby, které se dají ladit. U halucinace bez evidence často nemáte za co zatáhnout.
Kdy ReAct pomáhá nejvíc (a proč)
ReAct je nejsilnější tam, kde existuje rychlá, relativně levná verifikace. Typicky:
- Výpočty (kalkulačka, skript).
- Dotaz do databáze nebo logů.
- Vyhledání konkrétního faktu v dokumentaci.
- Kontrola konzistence (linter, test suite, schema validation).
Všimněte si, že to není “jen o web searchi”. V kódu to může být pytest. V právu to může být kontrola paragrafu v interní databázi. Ve firmě to může být CRM export.
Všude tam, kde je možné vytvořit observation, se z “odpovědi” stává “auditovatelný postup”.
Kde ReAct selhává: nástroje nejsou pravda, jen další kanál rizika
ReAct nezaručuje správnost. Přidává další pohyblivé části.
Selhání se často dějí v těchto bodech:
- Nástroj není autorita. Vyhledávání vrací to, co je dostupné, ne to, co je pravda.
- Špatná specifikace dotazu. Když se model ptá špatně, dostane špatnou observation.
- Zastaralá data. Databáze může být neaktuální. Dokumentace může být pro jinou verzi.
- Motivace “šetřit kroky”. Agent může vynechat action a tvářit se, že ověřil.
ReAct proto potřebuje pravidla. Jinak je to jen „volání API pro pocit“.
Design pravidel: jak donutit model ověřit dřív, než tvrdí
ReAct je z poloviny architektura a z poloviny disciplína. Prakticky to znamená nastavit pravidla (policy) typu:
- Žádná čísla bez zdroje. Pokud se v odpovědi objeví procenta nebo konkrétní metriky, musí být dohledatelný zdroj.
- Stop podmínky. Kdy agent přizná nejistotu a požádá o doplnění dat.
- Povinné observation pro klíčové kroky. Například: „u faktických tvrzení nejdřív nástroj (tool)“.
V multi-model prostředí (nebo i v týmu lidí) to funguje stejně: když zavedete pravidlo “tvrdíš → dokládáš”, klesne počet sebejistých nesmyslů.
ReAct vs. jiné techniky: CoVe, DoLa, Reflexion
ReAct není jediná metoda, jak zvýšit spolehlivost.
- Chain-of-Verification (CoVe) dělá ověřování přes otázky: vymyslí kontrolní otázky a pak je zodpoví nezávisle. Hodí se, když nemáte nástroje, ale chcete přinutit model hledat slabiny.
- DoLa se snaží zlepšit fakticitu při dekódování. Je to spíš trik při inferenci (inference-time) než procesní architektura.
- Reflexion je iterativní přístup s reflexí a pamětí: model se učí z vlastních chyb přes feedback.
Praktická intuice:
- Když máte nástroj, použijte ReAct.
- Když nástroj nemáte, použijte CoVe nebo více modelů.
- Když děláte opakovaný proces, přidejte Reflexion.
Závěr: ReAct jako minimum pro důvěryhodné workflow
ReAct není o tom “mít víc inteligence”. Je o tom mít méně prostoru pro volné fabulování. Thought–action–observation je způsob, jak přimět systém pracovat s realitou, ne jen se stylem.
Praktický závěr: Pokud vám dává smysl princip „ověř dřív, než tvrdíš“, CrossChat je dobré prostředí, kde se dá tahle disciplína ve workflow nastavit a kombinovat s více modely.
Zdroje
- Yao et al. (2022/2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629. DOI: 10.48550/arXiv.2210.03629.
- Dhuliawala et al. (2023). Chain-of-Verification Reduces Hallucination in Large Language Models. arXiv:2309.11495. DOI: 10.48550/arXiv.2309.11495.
- Shinn et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366. DOI: 10.48550/arXiv.2303.11366.
- Chuang et al. (2023/2024). DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models. arXiv:2309.03883. DOI: 10.48550/arXiv.2309.03883.
Historie úprav
Koncept: Codex CLI + GPT-5.2 Verze 1: Codex CLI + GPT-5.2
Jazyková revize (2026-02-25, Codex + GPT-5): upraveny uvozovky, stylistika a zbytečné anglicismy; technický obsah a terminologie metod zachovány. Kvalitativní audit (2026-03-23, Claude Code + Claude Opus 4.6): přidán Rámec tvrzení, ověřeny zdroje, jazyková úprava.