AI-serie intervjuspørsmål 6: Forklar de tre kjernemetodene for AI Agent: ReAct, Plan-and-Solve og Reflection
AI Agent tre kjernemetoder: ReAct, Plan-and-Solve og Reflection
AI Agent er en intelligent enhet som kan oppfatte miljøet, ta beslutninger og utføre handlinger på egen hånd. De tre kjernemetodene er: ReAct, Plan-and-Solve og Reflection. Nedenfor presenteres de med flytskjemaer og kodeeksempler.
1. ReAct (Reasoning + Acting)
Kjerneidé: Å veksle mellom resonnering (Reasoning) og handling (Acting). Agenten tenker først på gjeldende tilstand og neste trinn (resonnering), utfører deretter en handling (f.eks. kalle et verktøy, søke informasjon), og fortsetter resonneringen basert på resultatet.
Flytskjema:
[Starttilstand] → [Resonnering: tenk neste steg] → [Handling: utfør handling] → [Observer resultat] → [Resonnering: oppdater plan] → ... → [Endelig svar]
Eksempelkode (pseudokode):
def react_agent(question):
context = []
while not solved:
# Resonnering: generer tanketrinn
thought = llm.generate_thought(question, context)
# Handling: velg handling basert på tanke
action = llm.choose_action(thought)
# Utfør handling, få observasjon
observation = execute_action(action)
# Legg tanke, handling, observasjon til kontekst
context.append((thought, action, observation))
return final_answer
Eksempel:
- Bruker spør: "Hvordan er været i Beijing i dag?"
- Agent resonnerer: "Jeg må spørre vær-API, trenger bynavn og dato."
- Handling: Kall vær-API (parametere: Beijing, i dag)
- Observasjon: Returnerer "Sol, 25°C"
- Resonnering: "Har fått informasjon, kan svare."
- Svar: "Beijing i dag: sol, 25°C."
2. Plan-and-Solve
Kjerneidé: Lag først en fullstendig plan (Plan), utfør deretter trinnvis (Solve). I planleggingsfasen deles komplekse oppgaver opp i deltrinn, i utførelsesfasen fullføres de i rekkefølge, med mulighet for justering basert på delresultater.
Flytskjema:
[Oppgave] → [Lag plan: del opp i deltrinn] → [Utfør trinn 1] → [Utfør trinn 2] → ... → [Utfør trinn N] → [Endelig svar]
Eksempelkode:
def plan_and_solve(task):
# Planleggingsfase
plan = llm.generate_plan(task) # f.eks.: ["Søk etter informasjon", "Organiser informasjon", "Skriv rapport"]
context = {}
for step in plan:
# Utfør hvert trinn
result = execute_step(step, context)
context[step] = result
# Syntetiser resultater
final = llm.synthesize(context)
return final
Eksempel:
- Oppgave: "Skriv en blogg om AI Agent"
- Plan:
1. Søk etter definisjon og siste nytt om AI Agent
2. Les og organiser nøkkelpunkter
3. Skriv bloggdisposisjon
4. Fyll inn innhold
5. Korrekturles og publiser
- Utførelse: Fullfør hvert trinn i rekkefølge, til slutt leveres bloggen.
3. Reflection
Kjerneidé: Agenten reflekterer over egne handlinger under eller etter utførelse, evaluerer resultater og forbedrer videre handlinger. Inkluderer ofte selvkritikk, feilretting eller strategioptimalisering.
Flytskjema:
[Handling] → [Observer resultat] → [Reflekter: vurder suksess] → [Hvis feil: juster strategi] → [Handling igjen] → ... → [Suksess]
Eksempelkode:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Reflekter
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Juster oppgavebeskrivelse eller strategi basert på refleksjon
task = reflection['improved_task']
return None
Eksempel:
- Oppgave: "Beregn 1234 * 5678"
- Handling: Direkte beregning, får resultat 7006652
- Refleksjon: Sjekk beregningsprosessen, oppdager feil i overføring
- Justering: Beregn på nytt, får korrekt resultat 7006652 (faktisk korrekt)
- Hvis fortsatt feil, fortsett refleksjon til korrekt.
Oppsummering og sammenligning
| Metode | Egenskaper | Anvendelsesområder |
|---|---|---|
| ReAct | Veksling mellom resonnering og handling, dynamisk justering | Oppgaver som krever sanntids interaksjon (f.eks. spørsmål-svar, søk) |
| Plan-and-Solve | Planlegg først, utfør deretter, strukturert oppdeling | Komplekse flertrinnsoppgaver (f.eks. skriving, dataanalyse) |
| Reflection | Selvrefleksjon og korrigering, iterativ optimalisering | Oppgaver som krever høy nøyaktighet (f.eks. matematikk, kodegenerering) |
I praksis kombineres ofte de tre metodene, for eksempel å legge til refleksjonsmekanisme i ReAct, eller reflektere etter hvert trinn i Plan-and-Solve.
评论
暂无已展示的评论。
发表评论(匿名)