← 返回列表

AI sērijas intervijas jautājums 6: Trīs galvenās AI aģentu metodoloģijas: ReAct, Plan-and-Solve un Reflection

Trīs galvenās AI aģentu metodoloģijas: ReAct, Plan-and-Solve un Reflection

AI aģents ir inteliģents vienība, kas spēj patstāvīgi uztvert vidi, pieņemt lēmumus un veikt darbības. Tās galvenās metodoloģijas ir trīs: ReAct, Plan-and-Solve un Reflection. Zemāk tās tiek aprakstītas, papildinātas ar plūsmas diagrammām un koda piemēriem.

1. ReAct (Reasoning + Acting)

Pamatideja: Mainīt secīgi spriešanu (Reasoning) un darbību (Acting). Aģents katrā solī vispirms domā par pašreizējo stāvokli un nākamo plānu (spriešana), pēc tam veic darbību (piemēram, izsauc rīku, meklē informāciju), un pēc rezultāta turpina spriešanu.

Plūsmas diagramma:

[Sākotnējais stāvoklis] → [Spriešana: domāt par nākamo soli] → [Darbība: veikt darbību] → [Novērot rezultātu] → [Spriešana: atjaunināt plānu] → ... → [Galīgā atbilde]

Piemēra kods (pseidokods):

def react_agent(question):
    context = []
    while not solved:
        # Spriešana: ģenerēt domāšanas soli
        thought = llm.generate_thought(question, context)
        # Darbība: izvēlēties darbību, pamatojoties uz domāšanu
        action = llm.choose_action(thought)
        # Veikt darbību, iegūt novērojumu
        observation = execute_action(action)
        # Pievienot domāšanu, darbību un novērojumu kontekstam
        context.append((thought, action, observation))
    return final_answer

Piemērs:
- Lietotājs jautā: "Kādi laikapstākļi šodien Pekinā?"
- Aģents spriež: "Man jāizmanto laikapstākļu API, nepieciešama pilsēta un datums."
- Darbība: izsaukt laikapstākļu API (parametri: Pekina, šodien)
- Novērojums: atgriež "Skaidrs, 25°C"
- Spriešana: "Informācija iegūta, varu atbildēt."
- Izvade: "Šodien Pekinā skaidrs, 25°C."

2. Plan-and-Solve

Pamatideja: Vispirms izstrādāt pilnīgu plānu (Plan), pēc tam pakāpeniski to izpildīt (Solve). Plānošanas posmā sarežģīts uzdevums tiek sadalīts apakšsoļos, izpildes posmā tos veic secīgi, iespējams, pielāgojot plānu, pamatojoties uz starprezultātiem.

Plūsmas diagramma:

[Uzdevums] → [Izstrādāt plānu: sadalīt apakšsoļos] → [Izpildīt 1. soli] → [Izpildīt 2. soli] → ... → [Izpildīt N. soli] → [Galīgā atbilde]

Piemēra kods:

def plan_and_solve(task):
    # Plānošanas posms
    plan = llm.generate_plan(task)  # piemēram: ["Meklēt materiālus", "Sakārtot informāciju", "Uzrakstīt ziņojumu"]
    context = {}
    for step in plan:
        # Izpildīt katru soli
        result = execute_step(step, context)
        context[step] = result
    # Apvienot rezultātus
    final = llm.synthesize(context)
    return final

Piemērs:
- Uzdevums: "Uzrakstīt emuāru par AI aģentiem"
- Plāns:
1. Meklēt AI aģentu definīciju un jaunākos sasniegumus
2. Izlasīt un sakārtot galvenos punktus
3. Uzrakstīt emuāra izklāstu
4. Aizpildīt saturu
5. Pārbaudīt un publicēt
- Izpilde: secīgi veikt katru soli, beigās iegūt emuāru.

3. Reflection

Pamatideja: Aģents izpildes laikā vai pēc tās pārdomā savu rīcību (Reflection), novērtē rezultātus un uzlabo turpmākās darbības. Parasti ietver paškritiku, kļūdu labošanu vai stratēģijas optimizāciju.

Plūsmas diagramma:

[Darbība] → [Novērot rezultātu] → [Pārdomāt: novērtēt, vai veiksmīgi] → [Ja neveiksmīgi: pielāgot stratēģiju] → [Atkārtota darbība] → ... → [Veiksmīgi]

Piemēra kods:

def reflection_agent(task):
    max_attempts = 3
    for attempt in range(max_attempts):
        action = llm.generate_action(task)
        result = execute(action)
        # Pārdomāt
        reflection = llm.reflect(task, action, result)
        if reflection['success']:
            return result
        else:
            # Pielāgot uzdevuma aprakstu vai stratēģiju, pamatojoties uz pārdomām
            task = reflection['improved_task']
    return None

Piemērs:
- Uzdevums: "Aprēķināt 1234 * 5678"
- Darbība: tiešs aprēķins, iegūst rezultātu 7006652
- Pārdomāt: pārbaudīt aprēķina procesu, atklāt pārneses kļūdu
- Pielāgot: pārrēķināt, iegūt pareizo rezultātu 7006652 (faktiski pareizi)
- Ja joprojām kļūda, turpināt pārdomāt, līdz pareizi.

Kopsavilkums un salīdzinājums

Metodoloģija Iezīmes Piemērošanas scenāriji
ReAct Spriešana un darbība mijas, dinamiska pielāgošana Uzdevumi, kas prasa reāllaika informācijas mijiedarbību (piem., jautājumi-atbildes, meklēšana)
Plan-and-Solve Vispirms plāns, pēc tam izpilde, strukturēta sadalīšana Sarežģīti daudzsoļu uzdevumi (piem., rakstīšana, datu analīze)
Reflection Pašrefleksija un labošana, iteratīva optimizācija Uzdevumi, kam nepieciešama augsta precizitāte (piem., matemātiskie aprēķini, koda ģenerēšana)

Praktiskā lietojumā bieži tiek apvienotas visas trīs, piemēram, ReAct pievienojot refleksijas mehānismu, vai Plan-and-Solve katrā solī pēc izpildes veicot refleksiju.

评论

暂无已展示的评论。

发表评论(匿名)