AI viðtalsröð 6: Segðu frá þremur kjarnaaðferðum AI Agent: ReAct, Plan-and-Solve og Reflection
Þrjár kjarnaaðferðir AI Agent: ReAct, Plan-and-Solve og Reflection
AI Agent er sjálfstæður vettvangur sem getur skynjað umhverfið, tekið ákvarðanir og framkvæmt aðgerðir. Helstu kjarnaaðferðirnar eru þrjár: ReAct, Plan-and-Solve og Reflection. Hér að neðan er kynning á hverri þeirra, ásamt flæðiritum og kóðadæmum.
1. ReAct (Reasoning + Acting)
Kjarnahugmynd: Að flétta saman rökhugsun (Reasoning) og aðgerð (Acting) til skiptis. Agent hugsar fyrst um núverandi ástand og næsta skref (rökhugsun), framkvæmir síðan aðgerð (eins og að kalla á tól, leita að upplýsingum) og heldur áfram að rökhugsa út frá niðurstöðunni.
Flæðirit:
[Upphafsástand] → [Rökhugsun: hugsa næsta skref] → [Aðgerð: framkvæma] → [Fylgjast með niðurstöðu] → [Rökhugsun: uppfæra áætlun] → ... → [Lokasvar]
Dæmi um kóða (gervikóði):
def react_agent(question):
context = []
while not solved:
# Rökhugsun: búa til hugsunarskref
thought = llm.generate_thought(question, context)
# Aðgerð: velja aðgerð út frá hugsun
action = llm.choose_action(thought)
# Framkvæma aðgerð, fá athugun
observation = execute_action(action)
# Bæta hugsun, aðgerð og athugun við samhengi
context.append((thought, action, observation))
return final_answer
Dæmi:
- Notandi spyr: „Hvernig er veðrið í Peking í dag?“
- Agent rökhugsar: „Ég þarf að fletta upp veður API, þarf borgarnafn og dagsetningu.“
- Aðgerð: kalla á veður API (breytur: Peking, í dag)
- Athugun: skilar „Heiðskýrt, 25°C“
- Rökhugsun: „Ég hef upplýsingarnar, get svarað.“
- Úttak: „Í Peking í dag er heiðskýrt, 25°C.“
2. Plan-and-Solve
Kjarnahugmynd: Fyrst að gera heildaráætlun (Plan), síðan framkvæma hana skref fyrir skref (Solve). Í áætlunarfasanum er flóknu verkefni skipt niður í undirskref, og í framkvæmdafasanum er þeim fylgt í röð, hugsanlega með aðlögun á áætlun miðað við milliniðurstöður.
Flæðirit:
[Verkefni] → [Gera áætlun: skipta í undirskref] → [Framkvæma skref 1] → [Framkvæma skref 2] → ... → [Framkvæma skref N] → [Lokasvar]
Dæmi um kóða:
def plan_and_solve(task):
# Áætlunarfasi
plan = llm.generate_plan(task) # t.d.: ["Leita að gögnum", "Skipuleggja upplýsingar", "Skrifa skýrslu"]
context = {}
for step in plan:
# Framkvæma hvert skref
result = execute_step(step, context)
context[step] = result
# Sameina niðurstöður
final = llm.synthesize(context)
return final
Dæmi:
- Verkefni: „Skrifa blogg um AI Agent“
- Áætlun:
1. Leita að skilgreiningu og nýjustu framförum AI Agent
2. Lesa og skipuleggja lykilatriði
3. Skrifa blogguppkast
4. Fylla út efni
5. Yfirfara og birta
- Framkvæmd: framkvæma hvert skref í röð, að lokum skila bloggi.
3. Reflection
Kjarnahugmynd: Agent íhugar (Reflection) eigin hegðun meðan á framkvæmd stendur eða eftir hana, metur niðurstöður og bætir síðari aðgerðir. Felur oft í sér sjálfsgagnrýni, villuleiðréttingu eða stefnuoptimeringu.
Flæðirit:
[Aðgerð] → [Fylgjast með niðurstöðu] → [Íhugun: meta hvort tókst] → [Ef mistókst: aðlaga stefnu] → [Aðgerð aftur] → ... → [Tókst]
Dæmi um kóða:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Íhugun
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Aðlaga verkefnislýsingu eða stefnu út frá íhugun
task = reflection['improved_task']
return None
Dæmi:
- Verkefni: „Reikna 1234 * 5678“
- Aðgerð: reikna beint, fá niðurstöðu 7006652
- Íhugun: athuga reikniferli, finna villu í flutningi
- Aðlögun: reikna aftur, fá rétta niðurstöðu 7006652 (raunverulega rétt)
- Ef enn villa, halda áfram að íhuga þar til rétt.
Samantekt og samanburður
| Aðferð | Einkenni | Hentar fyrir |
|---|---|---|
| ReAct | Rökhugsun og aðgerð til skiptis, sveigjanleg aðlögun | Verkefni sem þurfa rauntímaupplýsingar (eins og spurningar og leit) |
| Plan-and-Solve | Fyrst áætlun, síðan framkvæmd, skipulögð niðurbrot | Flókin mörg skref (eins og ritun, gagnagreining) |
| Reflection | Sjálfsíhugun og leiðrétting, endurtekin bestun | Verkefni sem krefjast mikillar nákvæmni (eins og stærðfræði, kóðun) |
Í raunverulegum forritum er oft blandað saman, til dæmis að bæta við íhugun í ReAct, eða íhuga eftir hvert skref í Plan-and-Solve.
评论
暂无已展示的评论。
发表评论(匿名)