AI-serie interviewspørgsmål 6: Fortæl om de tre kernemetoder for AI Agent: ReAct, Plan-and-Solve og Reflection
AI Agent tre kernemetoder: ReAct, Plan-and-Solve og Reflection
AI Agent er en intelligent enhed, der selvstændigt kan opfatte miljøet, træffe beslutninger og udføre handlinger. De tre vigtigste kernemetoder er: ReAct, Plan-and-Solve og Reflection. Nedenfor introduceres de hver især med flowcharts og kodeeksempler.
1. ReAct (Reasoning + Acting)
Kerneidé: At veksle mellem ræsonnering (Reasoning) og handling (Acting). Agenten tænker først over den aktuelle tilstand og næste plan (ræsonnering) ved hvert trin, udfører derefter en handling (f.eks. kalde et værktøj, søge information) og fortsætter ræsonneringen baseret på resultatet.
Flowchart:
[Starttilstand] → [Ræsonnering: Tænk over næste trin] → [Handling: Udfør handling] → [Observere resultat] → [Ræsonnering: Opdater plan] → ... → [Endeligt svar]
Eksempelkode (pseudokode):
def react_agent(question):
context = []
while not solved:
# Ræsonnering: generer tanketrin
thought = llm.generate_thought(question, context)
# Handling: vælg handling baseret på tanke
action = llm.choose_action(thought)
# Udfør handling, få observation
observation = execute_action(action)
# Tilføj tanke, handling, observation til kontekst
context.append((thought, action, observation))
return final_answer
Eksempel:
- Bruger spørger: "Hvordan er vejret i Beijing i dag?"
- Agent ræsonnerer: "Jeg skal slå vejret op via API, har brug for bynavn og dato."
- Handling: Kald vejr-API (parametre: Beijing, i dag)
- Observation: Returnerer "Solrigt, 25°C"
- Ræsonnering: "Har fået informationen, kan svare."
- Output: "Beijing i dag: solrigt, 25°C."
2. Plan-and-Solve
Kerneidé: Først udarbejdes en komplet plan (Plan), derefter udføres den trin for trin (Solve). I planlægningsfasen opdeles den komplekse opgave i deltrin, og i udførelsesfasen gennemføres de i rækkefølge, eventuelt med justeringer baseret på delresultater.
Flowchart:
[Opgave] → [Udarbejd plan: Opdel i deltrin] → [Udfør trin 1] → [Udfør trin 2] → ... → [Udfør trin N] → [Endeligt svar]
Eksempelkode:
def plan_and_solve(task):
# Planlægningsfase
plan = llm.generate_plan(task) # f.eks.: ["Søg materialer", "Organiser information", "Skriv rapport"]
context = {}
for step in plan:
# Udfør hvert trin
result = execute_step(step, context)
context[step] = result
# Syntetiser resultater
final = llm.synthesize(context)
return final
Eksempel:
- Opgave: "Skriv et blogindlæg om AI Agent"
- Plan:
1. Søg efter definition og seneste udvikling af AI Agent
2. Læs og organiser nøglepunkter
3. Skriv blogdisposition
4. Udfyld indhold
5. Korrekturlæs og publicer
- Udførelse: Gennemfør hvert trin i rækkefølge, endeligt output blog.
3. Reflection
Kerneidé: Agenten reflekterer over sin egen adfærd under eller efter udførelse, evaluerer resultater og forbedrer efterfølgende handlinger. Inkluderer ofte selvkritik, fejlrettelse eller strategioptimering.
Flowchart:
[Handling] → [Observere resultat] → [Refleksion: Vurder om succes] → [Hvis fejl: Juster strategi] → [Handling igen] → ... → [Succes]
Eksempelkode:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Refleksion
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Juster opgavebeskrivelse eller strategi baseret på refleksion
task = reflection['improved_task']
return None
Eksempel:
- Opgave: "Beregn 1234 * 5678"
- Handling: Direkte beregning, får resultat 7006652
- Refleksion: Tjek beregningsproces, opdager fejl i overførsel
- Justering: Genberegn, får korrekt resultat 7006652 (faktisk korrekt)
- Hvis stadig fejl, fortsæt refleksion indtil korrekt.
Opsummering og sammenligning
| Metode | Karakteristika | Anvendelsesscenarier |
|---|---|---|
| ReAct | Vekslen mellem ræsonnering og handling, dynamisk justering | Opgaver der kræver realtids informationsinteraktion (f.eks. spørgsmål-svar, søgning) |
| Plan-and-Solve | Først planlæg derefter udfør, struktureret opdeling | Komplekse flertrinsopgaver (f.eks. skrivning, dataanalyse) |
| Reflection | Selvrefleksion og korrektion, iterativ optimering | Opgaver der kræver høj nøjagtighed (f.eks. matematik, kodegenerering) |
I praksis kombineres de ofte, f.eks. tilføjelse af refleksionsmekanisme i ReAct, eller refleksion efter hvert trin i Plan-and-Solve.
评论
暂无已展示的评论。
发表评论(匿名)