← 返回列表

AI serija pitanja za intervju 6: Tri ključne metodologije AI Agenta: ReAct, Plan-and-Solve i Reflection

Tri ključne metodologije AI Agenta: ReAct, Plan-and-Solve i Reflection

AI Agent je inteligentni entitet koji može samostalno percipirati okolinu, donositi odluke i izvršavati radnje. Njegove ključne metodologije su tri: ReAct, Plan-and-Solve i Reflection. U nastavku ih predstavljamo, uz dijagrame toka i primjere koda.

1. ReAct (Reasoning + Acting)

Temeljna ideja: Ispreplitanje zaključivanja (Reasoning) i djelovanja (Acting). Agent u svakom koraku prvo razmišlja o trenutnom stanju i sljedećem planu (zaključivanje), zatim izvršava radnju (npr. pozivanje alata, pretraživanje informacija), te na temelju rezultata nastavlja zaključivati.

Dijagram toka:

[Početno stanje] → [Zaključivanje: razmišljanje o sljedećem koraku] → [Djelovanje: izvršavanje radnje] → [Promatranje rezultata] → [Zaključivanje: ažuriranje plana] → ... → [Konačni odgovor]

Primjer koda (pseudokod):

def react_agent(question):
    context = []
    while not solved:
        # Zaključivanje: generiranje koraka razmišljanja
        thought = llm.generate_thought(question, context)
        # Djelovanje: odabir radnje na temelju razmišljanja
        action = llm.choose_action(thought)
        # Izvršavanje radnje, dobivanje opažanja
        observation = execute_action(action)
        # Dodavanje razmišljanja, radnje i opažanja u kontekst
        context.append((thought, action, observation))
    return final_answer

Primjer:
- Korisnik pita: "Kakvo je vrijeme danas u Pekingu?"
- Agent zaključuje: "Trebam upitati vremenski API, trebam naziv grada i datum."
- Djelovanje: pozivanje vremenskog API-ja (parametri: Peking, danas)
- Opažanje: vraća "Vedro, 25°C"
- Zaključivanje: "Dobio sam informaciju, mogu odgovoriti."
- Izlaz: "Danas je u Pekingu vedro, 25°C."

2. Plan-and-Solve

Temeljna ideja: Prvo izraditi cjelovit plan (Plan), zatim ga postupno izvršavati (Solve). U fazi planiranja složeni zadatak se rastavlja na podkorake, a u fazi izvršavanja koraci se izvršavaju redom, uz mogućnost prilagodbe plana na temelju međurezultata.

Dijagram toka:

[Zadatak] → [Izrada plana: rastavljanje na podkorake] → [Izvršavanje koraka 1] → [Izvršavanje koraka 2] → ... → [Izvršavanje koraka N] → [Konačni odgovor]

Primjer koda:

def plan_and_solve(task):
    # Faza planiranja
    plan = llm.generate_plan(task)  # npr.: ["Pretraži materijale", "Sredi informacije", "Napiši izvještaj"]
    context = {}
    for step in plan:
        # Izvršavanje svakog koraka
        result = execute_step(step, context)
        context[step] = result
    # Sintetiziranje rezultata
    final = llm.synthesize(context)
    return final

Primjer:
- Zadatak: "Napiši blog o AI Agentu"
- Plan:
1. Pretraži definiciju AI Agenta i najnovija dostignuća
2. Pročitaj i sredi ključne točke
3. Napiši nacrt bloga
4. Popuni sadržaj
5. Lektura i objava
- Izvršavanje: redom dovršiti svaki korak, na kraju ispisati blog.

3. Reflection

Temeljna ideja: Agent tijekom ili nakon izvršavanja razmišlja o vlastitom ponašanju (Reflection), procjenjuje rezultate i poboljšava daljnje radnje. Obično uključuje samokritiku, ispravljanje pogrešaka ili optimizaciju strategije.

Dijagram toka:

[Radnja] → [Promatranje rezultata] → [Razmišljanje: procjena uspjeha] → [Ako neuspjeh: prilagodba strategije] → [Ponovna radnja] → ... → [Uspjeh]

Primjer koda:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Razmišljanje
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Prilagodba opisa zadatka ili strategije na temelju razmišljanja
            task = reflection['improved_task']
    return None

Primjer:
- Zadatak: "Izračunaj 1234 * 5678"
- Radnja: izravno izračunavanje, dobivanje rezultata 7006652
- Razmišljanje: provjera postupka izračuna, otkrivanje pogreške u prijenosu
- Prilagodba: ponovno izračunavanje, dobivanje točnog rezultata 7006652 (zapravo točno)
- Ako i dalje pogrešno, nastaviti razmišljati dok ne bude točno.

Sažetak i usporedba

Metodologija Značajke Primjeri upotrebe
ReAct Ispreplitanje zaključivanja i djelovanja, dinamička prilagodba Zadaci koji zahtijevaju interakciju u stvarnom vremenu (npr. pitanja i odgovori, pretraživanje)
Plan-and-Solve Prvo planiranje pa izvršavanje, strukturirana dekompozicija Složeni višestepeni zadaci (npr. pisanje, analiza podataka)
Reflection Samorefleksija i ispravljanje, iterativna optimizacija Zadaci koji zahtijevaju visoku točnost (npr. matematički izračuni, generiranje koda)

U stvarnoj primjeni često se kombiniraju, npr. dodavanje mehanizma refleksije u ReAct, ili refleksija nakon svakog koraka u Plan-and-Solve.

评论

暂无已展示的评论。

发表评论(匿名)