Ce înseamnă Tehnica ReAct (Reasoning + Acting)
ReAct a fost propus de Shunyu Yao și colegii de la Princeton și Google Research, Brain Team, în „ReAct: Synergizing Reasoning and Acting in Language Models” (2022, ICLR 2023). Modelul scrie alternativ un gând (Thought) și o acțiune (Action), primește o observație (Observation) de la mediu și continuă.
Pe HotpotQA și FEVER, modelul putea apela un API Wikipedia simplu; lucrarea arată că ReAct reduce halucinațiile și propagarea erorilor față de chain-of-thought fără acces la surse. Pe ALFWorld și WebShop, ReAct a depășit metodele de imitație și de reinforcement learning cu 34, respectiv 10 puncte procentuale de rată de succes, folosind doar unul sau două exemple în prompt.
În aplicațiile actuale, bucla nu se mai scrie de obicei ca text „Thought / Action / Observation” parsat de program. API-urile au tool calling nativ: modelul răspunde cu un apel structurat (blocul tool_use la Anthropic, function calling la OpenAI), aplicația execută unealta și trimite rezultatul înapoi (la Anthropic, într-un bloc tool_result). Ideea ReAct rămâne aceeași: raționament, acțiune, rezultat, repetat.
Cum funcționează
Thought: modelul notează ce știe și ce îi lipsește. Action: alege o unealtă și argumentele ei. În lucrare, acțiunile pentru Wikipedia erau search[entity], lookup[string] și finish[answer]. Observation: aplicația execută acțiunea și adaugă rezultatul în context.
Ciclul se repetă până când modelul alege acțiunea de final sau până la o limită de pași fixată de aplicație. Fără limită, un agent poate intra în bucle.
Pe înțelesul tuturor
Un mecanic auto își face o ipoteză („probabil e bujia”), face o măsurătoare, citește rezultatul și abia apoi decide pasul următor. Nu ghicește din prima: alternează gândirea cu verificarea.
Exemplu
Fragment în formatul text din lucrare:Întrebare: În ce an s-a născut regizorul filmului X?
Thought: Trebuie să aflu cine a regizat filmul X.
Action: search[X (film)]
Observation: X este un film regizat de Y ...
Thought: Acum caut anul nașterii lui Y.
Action: search[Y]
Observation: Y (născut în ...) ...
Action: finish[...]
Cu tool calling nativ, aplicația definește o unealtă search cu schema parametrilor ei, iar modelul cere apelul în format structurat, fără ca programul să mai parseze textul.
De reținut
- ReAct combină raționamentul cu acțiuni asupra unor surse sau medii externe.
- Lucrarea originală: Yao et al., 2022 (Princeton și Google), testată pe HotpotQA, FEVER, ALFWorld și WebShop.
- Azi bucla se implementează de obicei prin tool calling nativ, nu prin parsarea textului.
- Pune o limită de pași și tratează rezultatele uneltelor ca date nesigure: pot conține instrucțiuni injectate.
Nu confunda
- ReAct vs. chain-of-thought: CoT raționează doar cu ce știe modelul; ReAct aduce informații noi prin acțiuni.
- ReAct vs. prompt chaining: în prompt chaining pașii sunt fixați de programator; în ReAct, modelul decide la fiecare pas ce acțiune urmează.
Termeni înrudiți
- Chain-of-Thought (CoT) Prompting: Tehnica prin care modelul este îndemnat să scrie pașii intermediari ai raționamentului înainte de răspuns; la modelele de raționament actuale, acest lucru se întâmplă intern.
- Prompt Chaining (înlănțuirea prompturilor): Împărțirea unei sarcini mari în mai multe apeluri la model, legate între ele, ca fiecare pas să poată fi verificat și ajustat separat.
- Apărarea împotriva prompt injection: Măsurile prin care limitezi efectul instrucțiunilor malițioase ascunse în mesajele utilizatorilor sau în conținutul extern pe care îl citește modelul.
- Tree of Thoughts (ToT): Metodă în care modelul propune mai mulți pași intermediari posibili, îi evaluează singur, iar un algoritm de căutare îi explorează ca pe un arbore, cu posibilitatea de a reveni.
Întrebări & Discuții: Tehnica ReAct (Reasoning + Acting)
Ai o întrebare despre Tehnica ReAct (Reasoning + Acting) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.