← 返回列表

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.

评论

暂无已展示的评论。

发表评论(匿名)