← 返回列表

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.

评论

暂无已展示的评论。

发表评论(匿名)