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.
评论
暂无已展示的评论。
发表评论(匿名)