← 返回列表

AI serija vprašanj za intervju 6: Tri ključne metodologije AI Agent: ReAct, Plan-and-Solve in Reflection

Tri ključne metodologije AI Agent: ReAct, Plan-and-Solve in Reflection

AI Agent je inteligentni agent, ki lahko samostojno zaznava okolje, sprejema odločitve in izvaja dejanja. Njegove ključne metodologije so tri: ReAct, Plan-and-Solve in Reflection. Spodaj so predstavljene posamezno, skupaj z diagrami poteka in primeri kode.

1. ReAct (Reasoning + Acting)

Osnovna ideja: Prepletanje sklepanja (Reasoning) in delovanja (Acting). Agent v vsakem koraku najprej razmisli o trenutnem stanju in naslednjem načrtu (sklepanje), nato izvede dejanje (npr. klic orodja, iskanje informacij), nato pa na podlagi rezultata nadaljuje s sklepanjem.

Diagram poteka:

[Začetno stanje] → [Sklepanje: razmislek o naslednjem koraku] → [Dejanje: izvedba akcije] → [Opazovanje rezultata] → [Sklepanje: posodobitev načrta] → ... → [Končni odgovor]

Primer kode (psevdokoda):

def react_agent(question):
    context = []
    while not solved:
        # Sklepanje: generiranje miselnega koraka
        thought = llm.generate_thought(question, context)
        # Dejanje: izbira akcije na podlagi misli
        action = llm.choose_action(thought)
        # Izvedba akcije, pridobitev opazovanja
        observation = execute_action(action)
        # Dodajanje misli, akcije in opazovanja v kontekst
        context.append((thought, action, observation))
    return final_answer

Primer:
- Uporabnik vpraša: "Kakšno je vreme danes v Pekingu?"
- Agent sklepa: "Moram poklicati API za vreme, potrebujem ime mesta in datum."
- Dejanje: klic API za vreme (parametri: Peking, danes)
- Opazovanje: vrne "sončno, 25°C"
- Sklepanje: "Imam informacije, lahko odgovorim."
- Izhod: "Danes je v Pekingu sončno, 25°C."

2. Plan-and-Solve

Osnovna ideja: Najprej izdelava celotnega načrta (Plan), nato postopno izvajanje (Solve). V fazi načrtovanja se kompleksna naloga razdeli na podkorake, v fazi izvajanja se koraki izvedejo po vrstnem redu, možno je prilagajanje načrta glede na vmesne rezultate.

Diagram poteka:

[Naloga] → [Izdelava načrta: razdelitev na podkorake] → [Izvedba koraka 1] → [Izvedba koraka 2] → ... → [Izvedba koraka N] → [Končni odgovor]

Primer kode:

def plan_and_solve(task):
    # Faza načrtovanja
    plan = llm.generate_plan(task)  # npr.: ["išči gradivo", "uredi informacije", "napiši poročilo"]
    context = {}
    for step in plan:
        # Izvedba vsakega koraka
        result = execute_step(step, context)
        context[step] = result
    # Sinteza rezultatov
    final = llm.synthesize(context)
    return final

Primer:
- Naloga: "Napiši blog o AI Agent"
- Načrt:
1. Poišči definicijo AI Agent in najnovejše dosežke
2. Preberi in uredi ključne točke
3. Napiši osnutek bloga
4. Dopolnite vsebino
5. Lektoriraj in objavi
- Izvedba: zaporedno opravljanje vsakega koraka, končni izhod je blog.

3. Reflection

Osnovna ideja: Agent med ali po izvajanju razmisli o svojem vedenju (Reflection), ovrednoti rezultate in izboljša nadaljnja dejanja. Običajno vključuje samokritiko, popravljanje napak ali optimizacijo strategije.

Diagram poteka:

[Dejanje] → [Opazovanje rezultata] → [Razmislek: ocena uspešnosti] → [Če neuspešno: prilagoditev strategije] → [Ponovno dejanje] → ... → [Uspeh]

Primer kode:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Razmislek
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Prilagoditev opisa naloge ali strategije na podlagi razmisleka
            task = reflection['improved_task']
    return None

Primer:
- Naloga: "Izračunaj 1234 * 5678"
- Dejanje: neposreden izračun, rezultat 7006652
- Razmislek: preverjanje postopka, odkritje napake pri prenosu
- Prilagoditev: ponoven izračun, pravilen rezultat 7006652 (dejansko pravilen)
- Če še vedno napaka, nadaljuj z razmislekom do pravilnega.

Povzetek primerjave

Metodologija Značilnosti Primerni scenariji
ReAct Prepletanje sklepanja in delovanja, dinamično prilagajanje Naloge, ki zahtevajo interakcijo v realnem času (npr. vprašanja in odgovori, iskanje)
Plan-and-Solve Najprej načrt, nato izvedba, strukturirana razdelitev Kompleksne večstopenjske naloge (npr. pisanje, analiza podatkov)
Reflection Samorefleksija in popravljanje, iterativna optimizacija Naloge, ki zahtevajo visoko natančnost (npr. matematični izračuni, generiranje kode)

V praksi se pogosto kombinirajo, npr. ReAct z mehanizmom refleksije ali Plan-and-Solve z refleksijo po vsakem koraku.

评论

暂无已展示的评论。

发表评论(匿名)