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