← 返回列表

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.

评论

暂无已展示的评论。

发表评论(匿名)