Seria pytań rekrutacyjnych AI 6: Trzy kluczowe metodologie AI Agent: ReAct, Plan-and-Solve i Reflection
Trzy kluczowe metodologie AI Agent: ReAct, Plan-and-Solve i Reflection
AI Agent to inteligentny byt zdolny do samodzielnego postrzegania otoczenia, podejmowania decyzji i wykonywania działań. Istnieją trzy główne metodologie: ReAct, Plan-and-Solve i Reflection. Poniżej każda z nich została opisana wraz z diagramami przepływu i przykładowym kodem.
1. ReAct (Reasoning + Acting)
Główna idea: Przeplatanie rozumowania (Reasoning) z działaniem (Acting). Agent na każdym kroku najpierw myśli o bieżącym stanie i planie (rozumowanie), a następnie wykonuje akcję (np. wywołanie narzędzia, wyszukanie informacji), po czym kontynuuje rozumowanie na podstawie wyniku.
Diagram przepływu:
[Stan początkowy] → [Rozumowanie: myślenie o następnym kroku] → [Działanie: wykonanie akcji] → [Obserwacja wyniku] → [Rozumowanie: aktualizacja planu] → ... → [Ostateczna odpowiedź]
Przykładowy kod (pseudokod):
def react_agent(question):
context = []
while not solved:
# Rozumowanie: generowanie kroku myślowego
thought = llm.generate_thought(question, context)
# Działanie: wybór akcji na podstawie myśli
action = llm.choose_action(thought)
# Wykonanie akcji, uzyskanie obserwacji
observation = execute_action(action)
# Dodanie myśli, akcji i obserwacji do kontekstu
context.append((thought, action, observation))
return final_answer
Przykład:
- Użytkownik pyta: "Jaka jest dzisiaj pogoda w Pekinie?"
- Agent rozumuje: "Muszę zapytać API pogody, potrzebuję nazwy miasta i daty."
- Działanie: wywołanie API pogody (parametry: Pekin, dzisiaj)
- Obserwacja: zwrócono "słonecznie, 25°C"
- Rozumowanie: "Mam informację, mogę odpowiedzieć."
- Wynik: "W Pekinie dzisiaj słonecznie, 25°C."
2. Plan-and-Solve
Główna idea: Najpierw opracowanie pełnego planu (Plan), a następnie stopniowe jego realizowanie (Solve). Faza planowania dzieli złożone zadanie na podkroki, a faza wykonania realizuje je po kolei, z możliwością dostosowania planu na podstawie pośrednich wyników.
Diagram przepływu:
[Zadanie] → [Opracowanie planu: podział na podkroki] → [Wykonanie kroku 1] → [Wykonanie kroku 2] → ... → [Wykonanie kroku N] → [Ostateczna odpowiedź]
Przykładowy kod:
def plan_and_solve(task):
# Faza planowania
plan = llm.generate_plan(task) # np. ["Wyszukaj materiały", "Uporządkuj informacje", "Napisz raport"]
context = {}
for step in plan:
# Wykonanie każdego kroku
result = execute_step(step, context)
context[step] = result
# Synteza wyników
final = llm.synthesize(context)
return final
Przykład:
- Zadanie: "Napisz bloga o AI Agent"
- Plan:
1. Wyszukaj definicję AI Agent i najnowsze osiągnięcia
2. Przeczytaj i uporządkuj kluczowe punkty
3. Stwórz konspekt bloga
4. Wypełnij treścią
5. Korekta i publikacja
- Wykonanie: kolejno realizowane kroki, ostatecznie powstaje blog.
3. Reflection
Główna idea: Agent w trakcie lub po wykonaniu działania dokonuje refleksji (Reflection) nad własnym zachowaniem, ocenia wynik i ulepsza kolejne działania. Zawiera samokrytykę, korektę błędów lub optymalizację strategii.
Diagram przepływu:
[Działanie] → [Obserwacja wyniku] → [Refleksja: ocena sukcesu] → [Jeśli porażka: dostosowanie strategii] → [Ponowne działanie] → ... → [Sukces]
Przykładowy kod:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Refleksja
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Dostosowanie opisu zadania lub strategii na podstawie refleksji
task = reflection['improved_task']
return None
Przykład:
- Zadanie: "Oblicz 1234 * 5678"
- Działanie: bezpośrednie obliczenie, wynik 7006652
- Refleksja: sprawdzenie procesu obliczeń, wykrycie błędu przeniesienia
- Korekta: ponowne obliczenie, poprawny wynik 7006652 (faktycznie poprawny)
- Jeśli nadal błędny, kontynuacja refleksji aż do poprawności.
Podsumowanie i porównanie
| Metodologia | Cechy | Zastosowanie |
|---|---|---|
| ReAct | Przeplatanie rozumowania i działania, dynamiczne dostosowanie | Zadania wymagające interakcji w czasie rzeczywistym (np. QA, wyszukiwanie) |
| Plan-and-Solve | Najpierw plan, potem wykonanie, strukturalny podział | Złożone zadania wieloetapowe (np. pisanie, analiza danych) |
| Reflection | Samorefleksja i korekta, iteracyjna optymalizacja | Zadania wymagające wysokiej dokładności (np. obliczenia matematyczne, generowanie kodu) |
W praktyce często łączy się te metody, np. ReAct z mechanizmem refleksji, lub Plan-and-Solve z refleksją po każdym kroku.
评论
暂无已展示的评论。
发表评论(匿名)