← 返回列表

AI-seeria intervjuuküsimus 6: AI Agendi kolm põhimeetodit: ReAct, Plan-and-Solve ja Reflection

AI Agendi kolm põhimeetodit: ReAct, Plan-and-Solve ja Reflection

AI Agent on intelligentne agent, mis suudab iseseisvalt tajuda keskkonda, teha otsuseid ja sooritada toiminguid. Selle kolm peamist meetodit on ReAct, Plan-and-Solve ja Reflection. Allpool tutvustame neid koos vooskeemide ja koodinäidetega.

1. ReAct (Reasoning + Acting)

Põhiidee: Põimida arutlemine (Reasoning) ja tegutsemine (Acting). Agent mõtleb igal sammul kõigepealt praegusele olukorrale ja järgmisele plaanile (arutlemine), seejärel sooritab tegevuse (nt tööriista kutsumine, teabe otsimine) ja jätkab arutlemist tulemuste põhjal.

Vooskeem:

[Algolek] → [Arutlemine: järgmise sammu mõtlemine] → [Tegutsemine: tegevuse sooritamine] → [Tulemuse vaatlemine] → [Arutlemine: plaani uuendamine] → ... → [Lõplik vastus]

Näidiskood (pseudokood):

def react_agent(question):
    context = []
    while not solved:
        # Arutlemine: genereeri mõttesamm
        thought = llm.generate_thought(question, context)
        # Tegutsemine: vali tegevus mõtte põhjal
        action = llm.choose_action(thought)
        # Soorita tegevus, saa vaatlus
        observation = execute_action(action)
        # Lisa mõte, tegevus ja vaatlus konteksti
        context.append((thought, action, observation))
    return final_answer

Näide:
- Kasutaja küsib: "Milline on täna Pekingi ilm?"
- Agent arutleb: "Pean pärima ilma API-st, vajan linna nime ja kuupäeva."
- Tegutsemine: kutsu ilma API (parameetrid: Peking, täna)
- Vaatlus: tagastab "Päikeseline, 25°C"
- Arutlemine: "Sain info, võin vastata."
- Väljund: "Pekingis on täna päikeseline, 25°C."

2. Plan-and-Solve

Põhiidee: Koosta kõigepealt täielik plaan (Plan), seejärel täida see samm-sammult (Solve). Planeerimisfaasis jaotatakse keeruline ülesanne alamülesanneteks, täitmisfaasis sooritatakse need järjest, vajadusel kohandades plaani vahetulemuste põhjal.

Vooskeem:

[Ülesanne] → [Plaani koostamine: alamülesannete jaotamine] → [Sammu 1 täitmine] → [Sammu 2 täitmine] → ... → [Sammu N täitmine] → [Lõplik vastus]

Näidiskood:

def plan_and_solve(task):
    # Planeerimisfaas
    plan = llm.generate_plan(task)  # nt: ["Otsi materjale", "Korrasta info", "Kirjuta aruanne"]
    context = {}
    for step in plan:
        # Täida iga samm
        result = execute_step(step, context)
        context[step] = result
    # Sünteesi tulemused
    final = llm.synthesize(context)
    return final

Näide:
- Ülesanne: "Kirjuta blogipostitus AI Agenti kohta"
- Plaan:
1. Otsi AI Agendi definitsioon ja uusimad arengud
2. Loe ja korrasta põhipunktid
3. Kirjuta blogi kava
4. Täida sisu
5. Toimeta ja avalda
- Täitmine: soorita iga samm järjest, lõpuks väljasta blogi.

3. Reflection

Põhiidee: Agent reflekteerib (Reflection) oma käitumist tegevuse ajal või pärast seda, hinnates tulemusi ja parandades edasisi tegevusi. See hõlmab enesekriitikat, vigade parandamist või strateegia optimeerimist.

Vooskeem:

[Tegevus] → [Tulemuse vaatlemine] → [Refleksioon: edu hindamine] → [Kui ebaõnnestus: strateegia kohandamine] → [Uuesti tegutsemine] → ... → [Edu]

Näidiskood:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Refleksioon
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Kohanda ülesande kirjeldust või strateegiat refleksiooni põhjal
            task = reflection['improved_task']
    return None

Näide:
- Ülesanne: "Arvuta 1234 * 5678"
- Tegevus: otsene arvutus, tulemus 7006652
- Refleksioon: kontrolli arvutuskäiku, leia ülekandeviga
- Kohandamine: arvuta uuesti, saad õige tulemuse 7006652 (tegelikult õige)
- Kui endiselt vale, jätka refleksiooni kuni õige tulemuseni.

Kokkuvõttev võrdlus

Meetod Omadused Sobivad stsenaariumid
ReAct Arutlemine ja tegutsemine põimuvad, dünaamiline kohandamine Reaalajas infovahetust nõudvad ülesanded (nt küsimused, otsing)
Plan-and-Solve Kõigepealt plaan, siis täitmine, struktureeritud jaotamine Keerulised mitmeastmelised ülesanded (nt kirjutamine, andmeanalüüs)
Reflection Eneserefleksioon ja parandamine, iteratiivne optimeerimine Suurt täpsust nõudvad ülesanded (nt matemaatika, koodi genereerimine)

Praktikas kombineeritakse neid sageli, näiteks lisatakse ReAct'ile refleksioonimehhanism või reflekteeritakse Plan-and-Solve'i iga sammu järel.

评论

暂无已展示的评论。

发表评论(匿名)