AI-seriens intervjufråga 6: De tre centrala metoderna för AI Agent: ReAct, Plan-and-Solve och Reflection
AI Agent: De tre centrala metoderna: ReAct, Plan-and-Solve och Reflection
En AI Agent är en intelligent enhet som självständigt kan uppfatta sin omgivning, fatta beslut och utföra handlingar. De tre huvudsakliga metoderna är: ReAct, Plan-and-Solve och Reflection. Nedan presenteras de med flödesscheman och kodexempel.
1. ReAct (Reasoning + Acting)
Kärnidé: Växla mellan resonemang (Reasoning) och handling (Acting). Agenten tänker först på det aktuella tillståndet och nästa steg (resonemang), utför sedan en handling (t.ex. anropa ett verktyg, söka information), och fortsätter resonera baserat på resultatet.
Flödesschema:
[Initialt tillstånd] → [Resonemang: tänk på nästa steg] → [Handling: utför åtgärd] → [Observera resultat] → [Resonemang: uppdatera plan] → ... → [Slutligt svar]
Exempelkod (pseudokod):
def react_agent(question):
context = []
while not solved:
# Resonemang: generera tankesteg
thought = llm.generate_thought(question, context)
# Handling: välj åtgärd baserat på tanke
action = llm.choose_action(thought)
# Utför åtgärd, få observation
observation = execute_action(action)
# Lägg till tanke, handling, observation i kontext
context.append((thought, action, observation))
return final_answer
Exempel:
- Användaren frågar: "Hur är vädret i Peking idag?"
- Agenten resonerar: "Jag måste anropa väder-API:t, behöver stad och datum."
- Handling: Anropa väder-API (parametrar: Peking, idag)
- Observation: Returnerar "Klart, 25°C"
- Resonemang: "Jag har informationen, kan svara."
- Utdata: "I Peking är det klart och 25°C idag."
2. Plan-and-Solve
Kärnidé: Skapa först en fullständig plan (Plan), utför sedan steg för steg (Solve). I planeringsfasen delas komplexa uppgifter upp i delsteg, i utförandefasen slutförs de i ordning, med möjlighet att justera planen baserat på delresultat.
Flödesschema:
[Uppgift] → [Skapa plan: dela upp i delsteg] → [Utför steg 1] → [Utför steg 2] → ... → [Utför steg N] → [Slutligt svar]
Exempelkod:
def plan_and_solve(task):
# Planeringsfas
plan = llm.generate_plan(task) # t.ex.: ["Sök information", "Sammanställ", "Skriv rapport"]
context = {}
for step in plan:
# Utför varje steg
result = execute_step(step, context)
context[step] = result
# Sammanställ resultat
final = llm.synthesize(context)
return final
Exempel:
- Uppgift: "Skriv ett blogginlägg om AI Agent"
- Plan:
1. Sök efter definition och senaste framsteg för AI Agent
2. Läs och sammanställ nyckelpunkter
3. Skriv bloggdisposition
4. Fyll i innehåll
5. Korrekturläs och publicera
- Utför: Slutför varje steg i ordning, slutligen produceras blogginlägget.
3. Reflection
Kärnidé: Agenten reflekterar över sitt eget beteende under eller efter utförandet, utvärderar resultatet och förbättrar efterföljande handlingar. Innefattar ofta självkritik, felkorrigering eller strategioptimering.
Flödesschema:
[Handling] → [Observera resultat] → [Reflektera: utvärdera om lyckat] → [Om misslyckat: justera strategi] → [Handla igen] → ... → [Lyckat]
Exempelkod:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Reflektera
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Justera uppgiftsbeskrivning eller strategi baserat på reflektion
task = reflection['improved_task']
return None
Exempel:
- Uppgift: "Beräkna 1234 * 5678"
- Handling: Beräkna direkt, får resultat 7006652
- Reflektion: Kontrollera beräkningsprocessen, upptäcker överföringsfel
- Justering: Beräkna om, får korrekt resultat 7006652 (faktiskt korrekt)
- Om fortfarande fel, fortsätt reflektera tills korrekt.
Sammanfattning och jämförelse
| Metod | Egenskaper | Tillämpningsområde |
|---|---|---|
| ReAct | Växlar mellan resonemang och handling, dynamisk justering | Uppgifter som kräver realtidsinteraktion (t.ex. frågesvar, sökning) |
| Plan-and-Solve | Planera först, utför sedan, strukturerad uppdelning | Komplexa flerstegsuppgifter (t.ex. skrivande, dataanalys) |
| Reflection | Självreflektion och korrigering, iterativ optimering | Uppgifter som kräver hög noggrannhet (t.ex. matematiska beräkningar, kodgenerering) |
I praktiken kombineras ofta de tre, t.ex. ReAct med inbyggd reflektion, eller Plan-and-Solve med reflektion efter varje steg.
评论
暂无已展示的评论。
发表评论(匿名)