KI-Serie Interviewfragen 6: Drei Kernmethoden von KI-Agenten: ReAct, Plan-and-Solve und Reflection
Drei Kernmethoden von KI-Agenten: ReAct, Plan-and-Solve und Reflection
KI-Agenten sind intelligente Einheiten, die autonom ihre Umgebung wahrnehmen, Entscheidungen treffen und Aktionen ausführen können. Es gibt drei Hauptmethoden: ReAct, Plan-and-Solve und Reflection. Im Folgenden werden sie mit Flussdiagrammen und Codebeispielen vorgestellt.
1. ReAct (Reasoning + Acting)
Kernidee: Reasoning und Acting werden abwechselnd durchgeführt. Der Agent denkt zuerst über den aktuellen Zustand und den nächsten Schritt nach (Reasoning), führt dann eine Aktion aus (z. B. Tool-Aufruf, Informationssuche) und fährt basierend auf dem Ergebnis mit dem Reasoning fort.
Flussdiagramm:
[Anfangszustand] → [Reasoning: nächsten Schritt überlegen] → [Acting: Aktion ausführen] → [Ergebnis beobachten] → [Reasoning: Plan aktualisieren] → ... → [Endgültige Antwort]
Beispielcode (Pseudocode):
def react_agent(question):
context = []
while not solved:
# Reasoning: Gedankenschritt generieren
thought = llm.generate_thought(question, context)
# Acting: Aktion basierend auf Gedanken wählen
action = llm.choose_action(thought)
# Aktion ausführen, Beobachtung erhalten
observation = execute_action(action)
# Gedanke, Aktion, Beobachtung zum Kontext hinzufügen
context.append((thought, action, observation))
return final_answer
Beispiel:
- Benutzer fragt: „Wie ist das Wetter heute in Peking?“
- Agent denkt: „Ich muss die Wetter-API abfragen, benötige Stadt und Datum.“
- Aktion: Wetter-API aufrufen (Parameter: Peking, heute)
- Beobachtung: „Sonnig, 25°C“
- Denken: „Information erhalten, kann antworten.“
- Ausgabe: „In Peking ist es heute sonnig, 25°C.“
2. Plan-and-Solve
Kernidee: Zuerst wird ein vollständiger Plan erstellt (Plan), dann wird er schrittweise ausgeführt (Solve). In der Planungsphase wird die komplexe Aufgabe in Teilschritte zerlegt, in der Ausführungsphase werden diese nacheinander abgearbeitet, wobei der Plan basierend auf Zwischenergebnissen angepasst werden kann.
Flussdiagramm:
[Aufgabe] → [Plan erstellen: Teilschritte zerlegen] → [Schritt 1 ausführen] → [Schritt 2 ausführen] → ... → [Schritt N ausführen] → [Endgültige Antwort]
Beispielcode:
def plan_and_solve(task):
# Planungsphase
plan = llm.generate_plan(task) # z. B.: ["Material suchen", "Informationen ordnen", "Bericht schreiben"]
context = {}
for step in plan:
# Jeden Schritt ausführen
result = execute_step(step, context)
context[step] = result
# Ergebnisse zusammenführen
final = llm.synthesize(context)
return final
Beispiel:
- Aufgabe: „Einen Blog über KI-Agenten schreiben“
- Plan:
1. Definition und neueste Entwicklungen von KI-Agenten recherchieren
2. Kernpunkte lesen und zusammenfassen
3. Blog-Gliederung erstellen
4. Inhalt ausfüllen
5. Korrekturlesen und veröffentlichen
- Ausführung: Jeden Schritt nacheinander erledigen, am Ende den Blog ausgeben.
3. Reflection
Kernidee: Der Agent reflektiert während oder nach der Ausführung über sein eigenes Verhalten, bewertet Ergebnisse und verbessert nachfolgende Aktionen. Dies umfasst Selbstkritik, Fehlerkorrektur oder Strategieoptimierung.
Flussdiagramm:
[Aktion] → [Ergebnis beobachten] → [Reflection: Erfolg bewerten] → [Bei Misserfolg: Strategie anpassen] → [Erneut handeln] → ... → [Erfolg]
Beispielcode:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Reflection
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Aufgabenbeschreibung oder Strategie basierend auf Reflection anpassen
task = reflection['improved_task']
return None
Beispiel:
- Aufgabe: „Berechne 1234 * 5678“
- Aktion: Direkt berechnen, Ergebnis 7006652
- Reflection: Berechnungsprozess prüfen, Übertragungsfehler feststellen
- Anpassung: Neu berechnen, korrektes Ergebnis 7006652 (tatsächlich korrekt)
- Bei weiterem Fehler: Reflection fortsetzen, bis korrekt.
Zusammenfassung und Vergleich
| Methode | Merkmale | Anwendungsszenarien |
|---|---|---|
| ReAct | Reasoning und Acting wechseln sich ab, dynamische Anpassung | Aufgaben mit Echtzeit-Informationsaustausch (z. B. Frage-Antwort, Suche) |
| Plan-and-Solve | Erst planen, dann ausführen, strukturierte Zerlegung | Komplexe mehrschrittige Aufgaben (z. B. Schreiben, Datenanalyse) |
| Reflection | Selbstreflexion und Korrektur, iterative Optimierung | Aufgaben mit hohem Genauigkeitsbedarf (z. B. Mathematik, Codegenerierung) |
In der Praxis werden die Methoden oft kombiniert, z. B. ReAct mit Reflexionsmechanismus oder Plan-and-Solve mit Reflexion nach jedem Schritt.
评论
暂无已展示的评论。
发表评论(匿名)