← 返回列表

Série otázek k pohovoru o AI 6: Tři základní metodiky AI Agentů: ReAct, Plan-and-Solve a Reflection

Tři základní metodiky AI Agentů: ReAct, Plan-and-Solve a Reflection

AI Agent je inteligentní entita schopná autonomně vnímat prostředí, rozhodovat se a vykonávat akce. Jeho základní metodiky jsou tři: ReAct, Plan-and-Solve a Reflection. Níže je představíme, doplněné o vývojové diagramy a ukázky kódu.

1. ReAct (Reasoning + Acting)

Hlavní myšlenka: Prokládání uvažování (Reasoning) a jednání (Acting). Agent v každém kroku nejprve přemýšlí o aktuálním stavu a dalším plánu (uvažování), poté provede akci (např. zavolá nástroj, vyhledá informace) a na základě výsledku pokračuje v uvažování.

Vývojový diagram:

[Počáteční stav] → [Uvažování: přemýšlení o dalším kroku] → [Akce: provedení akce] → [Pozorování výsledku] → [Uvažování: aktualizace plánu] → ... → [Konečná odpověď]

Ukázkový kód (pseudokód):

def react_agent(question):
    context = []
    while not solved:
        # Uvažování: generování myšlenkového kroku
        thought = llm.generate_thought(question, context)
        # Akce: výběr akce na základě myšlenky
        action = llm.choose_action(thought)
        # Provedení akce, získání pozorování
        observation = execute_action(action)
        # Přidání myšlenky, akce a pozorování do kontextu
        context.append((thought, action, observation))
    return final_answer

Příklad:
- Uživatel se ptá: "Jaké je dnes počasí v Pekingu?"
- Agent uvažuje: "Potřebuji zavolat API pro počasí, potřebuji název města a datum."
- Akce: zavolá API pro počasí (parametry: Peking, dnes)
- Pozorování: vrací "Jasno, 25 °C"
- Uvažování: "Mám informace, mohu odpovědět."
- Výstup: "V Pekingu je dnes jasno, 25 °C."

2. Plan-and-Solve

Hlavní myšlenka: Nejprve sestavit úplný plán (Plan), poté jej postupně provést (Solve). Ve fázi plánování se složitý úkol rozdělí na dílčí kroky, ve fázi provádění se kroky plní v pořadí, přičemž je možné plán upravit na základě mezivýsledků.

Vývojový diagram:

[Úkol] → [Sestavení plánu: rozdělení na dílčí kroky] → [Provedení kroku 1] → [Provedení kroku 2] → ... → [Provedení kroku N] → [Konečná odpověď]

Ukázkový kód:

def plan_and_solve(task):
    # Fáze plánování
    plan = llm.generate_plan(task)  # např.: ["Vyhledat materiály", "Uspořádat informace", "Napsat zprávu"]
    context = {}
    for step in plan:
        # Provedení každého kroku
        result = execute_step(step, context)
        context[step] = result
    # Syntéza výsledků
    final = llm.synthesize(context)
    return final

Příklad:
- Úkol: "Napsat blog o AI Agentech"
- Plán:
1. Vyhledat definici AI Agentů a nejnovější pokroky
2. Přečíst a uspořádat klíčové body
3. Napsat osnovu blogu
4. Dopsat obsah
5. Zkontrolovat a publikovat
- Provedení: postupné splnění každého kroku, nakonec výstup blogu.

3. Reflection

Hlavní myšlenka: Agent během nebo po provedení akce reflektuje své chování (Reflection), vyhodnocuje výsledek a zlepšuje následující akce. Obvykle zahrnuje sebekritiku, opravu chyb nebo optimalizaci strategie.

Vývojový diagram:

[Akce] → [Pozorování výsledku] → [Reflexe: vyhodnocení úspěšnosti] → [Pokud neúspěch: úprava strategie] → [Opakovaná akce] → ... → [Úspěch]

Ukázkový kód:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Reflexe
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Úprava popisu úkolu nebo strategie na základě reflexe
            task = reflection['improved_task']
    return None

Příklad:
- Úkol: "Vypočítat 1234 * 5678"
- Akce: přímý výpočet, výsledek 7006652
- Reflexe: kontrola postupu, zjištěna chyba v přenosu
- Úprava: přepočítání, správný výsledek 7006652 (ve skutečnosti správný)
- Pokud stále chyba, pokračovat v reflexi až do správného výsledku.

Shrnutí a srovnání

Metodika Vlastnosti Vhodné scénáře
ReAct Prokládání uvažování a akce, dynamické přizpůsobení Úkoly vyžadující interakci v reálném čase (např. dotazy, vyhledávání)
Plan-and-Solve Nejprve plán, pak provedení, strukturované rozdělení Složité vícekrokové úkoly (např. psaní, analýza dat)
Reflection Sebereflexe a opravy, iterativní optimalizace Úkoly vyžadující vysokou přesnost (např. matematické výpočty, generování kódu)

V praxi se často kombinují, např. do ReAct se přidá reflexní mechanismus, nebo se v Plan-and-Solve po každém kroku provede reflexe.

评论

暂无已展示的评论。

发表评论(匿名)