Întrebări de interviu AI Seria 6: Spune-ne despre cele trei metodologii de bază ale AI Agent: ReAct, Plan-and-Solve și Reflection
Cele trei metodologii de bază ale AI Agent: ReAct, Plan-and-Solve și Reflection
AI Agent este un agent inteligent capabil să perceapă autonom mediul, să ia decizii și să execute acțiuni. Metodologiile sale de bază sunt în principal trei: ReAct, Plan-and-Solve și Reflection. Mai jos le prezentăm pe fiecare, însoțite de diagrame de flux și exemple de cod.
1. ReAct (Raționare + Acțiune)
Ideea centrală: Intercalarea raționamentului (Reasoning) cu acțiunea (Acting). Agentul, la fiecare pas, gândește mai întâi starea curentă și planul următor (raționament), apoi execută o acțiune (de exemplu, apelarea unui instrument, căutarea de informații), iar apoi continuă raționamentul pe baza rezultatelor.
Diagrama de flux:
[Stare inițială] → [Raționament: gândește următorul pas] → [Acțiune: execută acțiunea] → [Observă rezultatul] → [Raționament: actualizează planul] → ... → [Răspuns final]
Exemplu de cod (pseudocod):
def react_agent(question):
context = []
while not solved:
# Raționament: generează pasul de gândire
thought = llm.generate_thought(question, context)
# Acțiune: alege acțiunea pe baza gândirii
action = llm.choose_action(thought)
# Execută acțiunea, obține observația
observation = execute_action(action)
# Adaugă gândirea, acțiunea și observația în context
context.append((thought, action, observation))
return final_answer
Exemplu:
- Utilizatorul întreabă: „Cum este vremea astăzi în Beijing?”
- Agentul raționează: „Trebuie să interoghezi API-ul meteo, ai nevoie de numele orașului și data.”
- Acțiune: apelează API-ul meteo (parametri: Beijing, astăzi)
- Observație: returnează „Senin, 25°C”
- Raționament: „Am obținut informațiile, pot răspunde.”
- Ieșire: „Astăzi în Beijing este senin, 25°C.”
2. Plan-and-Solve
Ideea centrală: Mai întâi se elaborează un plan complet (Plan), apoi se execută pas cu pas (Solve). În faza de planificare, sarcina complexă este descompusă în sub-pași, iar în faza de execuție se parcurg în ordine, putând ajusta planul pe baza rezultatelor intermediare.
Diagrama de flux:
[Sarcină] → [Elaborează plan: descompune în sub-pași] → [Execută pasul 1] → [Execută pasul 2] → ... → [Execută pasul N] → [Răspuns final]
Exemplu de cod:
def plan_and_solve(task):
# Faza de planificare
plan = llm.generate_plan(task) # de exemplu: ["Caută informații", "Organizează date", "Scrie raportul"]
context = {}
for step in plan:
# Execută fiecare pas
result = execute_step(step, context)
context[step] = result
# Sinteză rezultate
final = llm.synthesize(context)
return final
Exemplu:
- Sarcină: „Scrie un blog despre AI Agent”
- Plan:
1. Caută definiția AI Agent și cele mai recente progrese
2. Citește și organizează punctele cheie
3. Scrie schița blogului
4. Completează conținutul
5. Corectează și publică
- Execuție: parcurge fiecare pas în ordine, rezultând blogul final.
3. Reflection
Ideea centrală: Agentul, în timpul sau după execuție, reflectează asupra propriilor acțiuni (Reflection), evaluează rezultatele și îmbunătățește acțiunile ulterioare. Include de obicei autocritică, corectarea erorilor sau optimizarea strategiei.
Diagrama de flux:
[Acțiune] → [Observă rezultatul] → [Reflecție: evaluează dacă a reușit] → [Dacă eșuează: ajustează strategia] → [Acțiune din nou] → ... → [Succes]
Exemplu de cod:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Reflecție
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Ajustează descrierea sarcinii sau strategia pe baza reflecției
task = reflection['improved_task']
return None
Exemplu:
- Sarcină: „Calculează 1234 * 5678”
- Acțiune: calculează direct, obține rezultatul 7006652
- Reflecție: verifică procesul de calcul, descoperă o eroare de transport
- Ajustare: recalculează, obține rezultatul corect 7006652 (de fapt corect)
- Dacă tot greșit, continuă reflecția până la corectitudine.
Rezumat comparativ
| Metodologie | Caracteristici | Scenarii de aplicare |
|---|---|---|
| ReAct | Raționament și acțiune intercalate, ajustare dinamică | Sarcini care necesită interacțiune în timp real cu informații (de ex. întrebări-răspunsuri, căutare) |
| Plan-and-Solve | Mai întâi plan, apoi execuție, descompunere structurată | Sarcini complexe cu mai mulți pași (de ex. scriere, analiză de date) |
| Reflection | Autoreflecție și corectare, optimizare iterativă | Sarcini care necesită acuratețe ridicată (de ex. calcule matematice, generare de cod) |
În aplicațiile practice, cele trei sunt adesea combinate, de exemplu ReAct cu mecanism de reflecție, sau Plan-and-Solve cu reflecție după fiecare pas.
评论
暂无已展示的评论。
发表评论(匿名)