AI serija pitanja za intervju 6: Tri ključne metodologije AI Agenta: ReAct, Plan-and-Solve i Reflection
Tri ključne metodologije AI Agenta: ReAct, Plan-and-Solve i Reflection
AI Agent je inteligentni entitet koji može samostalno percipirati okolinu, donositi odluke i izvršavati akcije. Njegove ključne metodologije su tri: ReAct, Plan-and-Solve i Reflection. U nastavku ih predstavljamo, uz dijagrame toka i primjere koda.
1. ReAct (Reasoning + Acting)
Ključna ideja: Naizmjenično izvođenje zaključivanja (Reasoning) i djelovanja (Acting). Agent u svakom koraku prvo razmišlja o trenutnom stanju i sljedećem planu (zaključivanje), zatim izvršava akciju (npr. pozivanje alata, pretraga informacija), pa na osnovu rezultata nastavlja zaključivati.
Dijagram toka:
[Početno stanje] → [Zaključivanje: razmišljanje o sljedećem koraku] → [Akcija: izvršenje] → [Posmatranje rezultata] → [Zaključivanje: ažuriranje plana] → ... → [Konačni odgovor]
Primjer koda (pseudokod):
def react_agent(question):
context = []
while not solved:
# zaključivanje: generiši korak razmišljanja
thought = llm.generate_thought(question, context)
# akcija: odaberi akciju na osnovu razmišljanja
action = llm.choose_action(thought)
# izvrši akciju, dobij posmatranje
observation = execute_action(action)
# dodaj razmišljanje, akciju i posmatranje u kontekst
context.append((thought, action, observation))
return final_answer
Primjer:
- Korisnik pita: "Kakvo je vrijeme danas u Pekingu?"
- Agent zaključuje: "Moram provjeriti API za vrijeme, potreban mi je naziv grada i datum."
- Akcija: pozivanje API-ja za vrijeme (parametri: Peking, danas)
- Posmatranje: vraća "Vedro, 25°C"
- Zaključivanje: "Dobio sam informaciju, mogu odgovoriti."
- Izlaz: "Danas je u Pekingu vedro, 25°C."
2. Plan-and-Solve
Ključna ideja: Prvo napraviti kompletan plan (Plan), zatim ga postepeno izvršavati (Solve). U fazi planiranja složeni zadatak se razlaže na podkorake, a u fazi izvršenja koraci se izvršavaju redom, uz mogućnost prilagođavanja plana na osnovu međurezultata.
Dijagram toka:
[Zadatak] → [Izrada plana: razlaganje na podkorake] → [Izvršenje koraka 1] → [Izvršenje koraka 2] → ... → [Izvršenje koraka N] → [Konačni odgovor]
Primjer koda:
def plan_and_solve(task):
# faza planiranja
plan = llm.generate_plan(task) # npr.: ["Pretraži materijale", "Sredi informacije", "Napiši izvještaj"]
context = {}
for step in plan:
# izvrši svaki korak
result = execute_step(step, context)
context[step] = result
# sintetiziraj rezultate
final = llm.synthesize(context)
return final
Primjer:
- Zadatak: "Napiši blog o AI Agentima"
- Plan:
1. Pretraži definiciju AI Agenta i najnovija dostignuća
2. Pročitaj i sredi ključne tačke
3. Napiši nacrt bloga
4. Popuni sadržaj
5. Lektura i objavljivanje
- Izvršenje: redom izvršiti svaki korak, na kraju dobiti blog.
3. Reflection
Ključna ideja: Agent tokom ili nakon izvršenja razmišlja o vlastitom ponašanju (Reflection), procjenjuje rezultate i poboljšava daljnje akcije. Obično uključuje samokritiku, ispravljanje grešaka ili optimizaciju strategije.
Dijagram toka:
[Akcija] → [Posmatranje rezultata] → [Refleksija: procjena uspjeha] → [Ako neuspjeh: prilagođavanje strategije] → [Ponovna akcija] → ... → [Uspjeh]
Primjer koda:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# refleksija
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# prilagodi opis zadatka ili strategiju na osnovu refleksije
task = reflection['improved_task']
return None
Primjer:
- Zadatak: "Izračunaj 1234 * 5678"
- Akcija: direktno izračunavanje, dobije se rezultat 7006652
- Refleksija: provjera procesa izračuna, otkrivena greška u prenošenju
- Prilagođavanje: ponovno izračunavanje, dobije se tačan rezultat 7006652 (zapravo tačno)
- Ako i dalje greška, nastaviti refleksiju dok ne bude tačno.
Sažetak i poređenje
| Metodologija | Karakteristike | Primjenjivi scenariji |
|---|---|---|
| ReAct | Naizmjenično zaključivanje i djelovanje, dinamičko prilagođavanje | Zadaci koji zahtijevaju interakciju u realnom vremenu (npr. pitanja i odgovori, pretraga) |
| Plan-and-Solve | Prvo planiranje pa izvršenje, strukturirano razlaganje | Složeni višekoraci zadaci (npr. pisanje, analiza podataka) |
| Reflection | Samorefleksija i ispravljanje, iterativna optimizacija | Zadaci koji zahtijevaju visoku tačnost (npr. matematički proračuni, generiranje koda) |
U stvarnoj primjeni, često se kombinuju sve tri, npr. dodavanje mehanizma refleksije u ReAct, ili refleksija nakon svakog koraka u Plan-and-Solve.
评论
暂无已展示的评论。
发表评论(匿名)