← 返回列表

AI série otázok na pohovor 6: Tri základné metodiky AI Agent: ReAct, Plan-and-Solve a Reflection

Tri základné metodiky AI Agent: ReAct, Plan-and-Solve a Reflection

AI Agent je inteligentný agent schopný samostatne vnímať prostredie, rozhodovať sa a vykonávať akcie. Jeho základné metodiky sú tri: ReAct, Plan-and-Solve a Reflection. Nižšie ich predstavíme spolu s vývojovými diagramami a príkladmi kódu.

1. ReAct (Reasoning + Acting)

Základná myšlienka: Striedanie uvažovania (Reasoning) a konania (Acting). Agent v každom kroku najprv premýšľa o aktuálnom stave a ďalšom pláne (uvažovanie), potom vykoná akciu (napr. zavolá nástroj, vyhľadá informácie) a na základe výsledku pokračuje v uvažovaní.

Vývojový diagram:

[Počiatočný stav] → [Uvažovanie: premyslieť ďalší krok] → [Akcia: vykonať činnosť] → [Pozorovanie výsledku] → [Uvažovanie: aktualizovať plán] → ... → [Konečná odpoveď]

Príklad kódu (pseudokód):

def react_agent(question):
    context = []
    while not solved:
        # uvažovanie: generovať myšlienkový krok
        thought = llm.generate_thought(question, context)
        # akcia: vybrať akciu na základe myšlienky
        action = llm.choose_action(thought)
        # vykonať akciu, získať pozorovanie
        observation = execute_action(action)
        # pridať myšlienku, akciu a pozorovanie do kontextu
        context.append((thought, action, observation))
    return final_answer

Príklad:
- Používateľ sa pýta: "Aká je dnes teplota v Pekingu?"
- Agent uvažuje: "Potrebujem zavolať API na počasie, potrebujem názov mesta a dátum."
- Akcia: zavolá API na počasie (parametre: Peking, dnes)
- Pozorovanie: vráti "Jasno, 25°C"
- Uvažovanie: "Mám informácie, môžem odpovedať."
- Výstup: "V Pekingu je dnes jasno, 25°C."

2. Plan-and-Solve

Základná myšlienka: Najprv vytvoriť kompletný plán (Plan), potom ho postupne vykonávať (Solve). Vo fáze plánovania sa komplexná úloha rozloží na podkroky, vo fáze vykonávania sa kroky plnia v poradí, pričom je možné plán upraviť na základe priebežných výsledkov.

Vývojový diagram:

[Úloha] → [Vytvorenie plánu: rozloženie na podkroky] → [Vykonanie kroku 1] → [Vykonanie kroku 2] → ... → [Vykonanie kroku N] → [Konečná odpoveď]

Príklad kódu:

def plan_and_solve(task):
    # fáza plánovania
    plan = llm.generate_plan(task)  # napr.: ["Vyhľadať materiály", "Usporiadať informácie", "Napísať správu"]
    context = {}
    for step in plan:
        # vykonať každý krok
        result = execute_step(step, context)
        context[step] = result
    # syntéza výsledkov
    final = llm.synthesize(context)
    return final

Príklad:
- Úloha: "Napísať blog o AI Agent"
- Plán:
1. Vyhľadať definíciu AI Agent a najnovšie pokroky
2. Prečítať a usporiadať kľúčové body
3. Napísať osnovu blogu
4. Vyplniť obsah
5. Skontrolovať a publikovať
- Vykonanie: postupne splniť každý krok, nakoniec výstup blogu.

3. Reflection

Základná myšlienka: Agent počas alebo po vykonaní akcie reflektuje (Reflection) svoje správanie, hodnotí výsledky a zlepšuje následné akcie. Zvyčajne zahŕňa sebakritiku, opravu chýb alebo optimalizáciu stratégie.

Vývojový diagram:

[Akcia] → [Pozorovanie výsledku] → [Reflexia: vyhodnotenie úspešnosti] → [Ak neúspech: úprava stratégie] → [Opätovná akcia] → ... → [Úspech]

Príklad kódu:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # reflexia
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # upraviť popis úlohy alebo stratégiu na základe reflexie
            task = reflection['improved_task']
    return None

Príklad:
- Úloha: "Vypočítať 1234 * 5678"
- Akcia: priamy výpočet, výsledok 7006652
- Reflexia: skontrolovať postup, zistiť chybu v prenose
- Úprava: prepočítať, získať správny výsledok 7006652 (v skutočnosti správny)
- Ak stále chyba, pokračovať v reflexii až do správnosti.

Zhrnutie a porovnanie

Metodika Vlastnosti Vhodné scenáre
ReAct Striedanie uvažovania a akcie, dynamické prispôsobenie Úlohy vyžadujúce interakciu v reálnom čase (napr. otázky a odpovede, vyhľadávanie)
Plan-and-Solve Najprv plán, potom vykonanie, štruktúrované rozloženie Komplexné viackrokové úlohy (napr. písanie, analýza dát)
Reflection Sebareflexia a oprava, iteratívna optimalizácia Úlohy vyžadujúce vysokú presnosť (napr. matematické výpočty, generovanie kódu)

V praxi sa tieto metodiky často kombinujú, napr. ReAct s pridaným mechanizmom reflexie, alebo Plan-and-Solve s reflexiou po každom kroku.

评论

暂无已展示的评论。

发表评论(匿名)