Zum Inhalt springen

ReAct-Pattern

ReAct-Pattern (Reason + Act) verzahnt LLM-Reasoning mit Tool-Aufrufen in einer Schleife: Thought, Action, Observation. Yao et al. 2022, Abgrenzung zu CoT.

Das ReAct-Pattern ist ein Bauplan für KI-Agenten: Ein großes Sprachmodell (LLM, Large Language Model, die KI hinter ChatGPT und ähnlichen Systemen) wechselt in einer Schleife zwischen Nachdenken (Thought), Handeln (Action, also einem Werkzeug-Aufruf wie einer Web-Suche) und Beobachten (Observation, dem Ergebnis dieses Aufrufs), bis eine Endantwort steht. Der Begriff geht auf [Yao et al. 2022](https://arxiv.org/abs/2210.03629) zurück, das Akronym steht für „Reason + Act" (Denken plus Handeln) und meint ausdrücklich dieses KI-Muster, nicht die gleichnamige JavaScript-Bibliothek für Web-Oberflächen.

Was ist das ReAct-Pattern?

Das ReAct-Pattern verbindet zwei Fähigkeiten großer Sprachmodelle, die vorher getrennt genutzt wurden: das Ausformulieren von Zwischenschritten (Reasoning, also lautes Nachdenken auf Papier) und das Aufrufen externer Werkzeuge (Acting, etwa eine Web-Suche oder einen Datenbank-Zugriff). In einem einzigen Auftrag an das Modell wechseln sich beide Modi ab. Das Modell schreibt zuerst einen Gedanken („Ich brauche das Geburtsdatum der Person"), löst dann eine Aktion aus („search[Geburtsdatum Person X]"), liest das Ergebnis des Werkzeugs („Observation: 1954") und formuliert daraus den nächsten Gedanken. Die Schleife endet, sobald das Modell eine finale Antwort ausgibt oder eine vorher gesetzte Schritt-Obergrenze erreicht ist.

Eingeführt wurde das Muster von [Yao et al. 2022](https://arxiv.org/abs/2210.03629) in „ReAct: Synergizing Reasoning and Acting in Language Models" (Princeton/Google Research). Die Autoren zeigten, dass die Verschränkung beider Modi Aufgaben löst, an denen reines Chain-of-Thought scheitert (fehlender Fakten-Zugriff, Halluzinationen bei Multi-Hop-Fragen) und an denen reines Tool-Use scheitert (kein Plan zwischen den Aufrufen). Ergebnisse auf HotpotQA (Multi-Hop-QA), Fever (Fakten-Prüfung), ALFWorld und WebShop (interaktive Text-Umgebungen) belegten den Effekt.

Das Muster ist zum Grundbaustein produktiver Agent-Frameworks geworden. LangChain modelliert es als Standard-Agent-Executor, LangGraph bildet die Schleife als expliziten Zustands-Graphen ab, LlamaIndex nutzt es in den Query- und Agent-Engines. Function Calling (OpenAI, Anthropic Tool Use, Google Gemini) ist die zugrundeliegende Schnittstelle, über die das Modell Actions strukturiert ausgibt und Observations zurückerhält. Neuere Reasoning-Modelle (OpenAI o-Serie, DeepSeek-R1) internalisieren den Thought-Schritt teilweise im verborgenen „Thinking"-Trace, geben Actions aber weiter explizit aus.

Der operative Kostenpunkt bleibt: Jede Iteration ist ein zusätzlicher Modell-Aufruf mit dem gesamten bisherigen Trace im Kontext. Ohne harte Iterations-Limits, Kostenzähler und Guardrails eskaliert das Muster in Endlosschleifen oder Werkzeug-Missbrauch. Das ist der Punkt, an dem produktive ReAct-Implementierungen typischerweise Retries, Timeout-Politiken und Observability (LangSmith, Langfuse, OpenTelemetry) einziehen.

Abgrenzung zu Chain-of-Thought, Tool-Use, Agentic Workflow, Reflexion und Plan-and-Execute

Der Begriff wird häufig mit angrenzenden Mustern vermischt oder ungenau als Synonym für „Agent" verwendet. Die relevanten Trennlinien:

BegriffMerkmalVerhältnis zum ReAct-Pattern
Chain-of-Thought (CoT)Zwischenschritte in Text, keine Werkzeug-AufrufeVorläufer; ReAct fügt Actions und Observations in die Kette ein
Tool-Use / Function CallingWerkzeug-Aufruf allgemein, ohne Schleifen-ZwangBaustein; ReAct ist ein Schleifen-Muster darüber
Agentic WorkflowVordefinierter Kontrollfluss, festes Graph-DesignReAct ist LLM-gesteuert; Workflow-Muster (Routing, Orchestrator-Worker) sind entwickler-gesteuert
Reflexion (Shinn et al. 2023)Selbstkritik-Loop nach fehlgeschlagenem VersuchErweiterung; hängt eine Verbal-Reinforcement-Phase an den ReAct-Trace
Plan-and-ExecuteErst kompletter Plan, dann sequenzielle AusführungAlternative; Planung vorne statt schrittweise Reasoning-Action-Verschränkung

Chain-of-Thought ([Wei et al. 2022](https://arxiv.org/abs/2201.11903)) ist der Reasoning-only-Vorläufer: Das Modell schreibt Zwischenschritte, greift aber auf keine externen Werkzeuge zu. ReAct hebt genau diese Beschränkung auf, indem es die Kette um Actions und Observations erweitert. Tool-Use bezeichnet umgekehrt die reine Werkzeug-Aufruf-Fähigkeit ohne verzahnte Reasoning-Phase. Ein einzelner Function-Call ist noch kein ReAct-Muster.

Agentic Workflows bilden die Gegenkategorie: Der Kontrollfluss steht im Code, das Modell füllt Rollen in einem festen Graphen aus. Das ReAct-Pattern gehört zur Agent-Seite dieser Trennung, weil das Modell im Loop entscheidet, welche Aktion als Nächstes fällt und wann abgebrochen wird. Reflexion ([Shinn et al. 2023](https://arxiv.org/abs/2303.11366)) hängt an einen fehlgeschlagenen ReAct-Trace eine Selbstkritik-Phase an, die als Prompt-Verstärkung in den nächsten Versuch einfließt. Plan-and-Execute ([Wang et al. 2023](https://arxiv.org/abs/2305.04091)) trennt Planung und Ausführung: Zuerst produziert das Modell einen kompletten Schritt-Plan, dann werden die Schritte sequenziell ausgeführt. Die Reasoning-Action-Verschränkung pro Schritt fehlt.

Zur Namensverwechslung: „React" (ohne Bindestrich, Groß-R, klein-a) bezeichnet die 2013 von Meta veröffentlichte JavaScript-UI-Library. Das ReAct-Pattern in dieser Definition ist ein LLM-Agent-Design und hat mit React.js keine gemeinsame Historie oder technische Grundlage. Verwechslungen entstehen häufig in Suchergebnissen und werden durch Kontextangabe (LLM, Agent, Yao 2022) aufgelöst.

Beispiel: Multi-Hop-Frage aus HotpotQA

Ein klassisches Beispiel aus dem Yao-Paper zeigt den Unterschied. Frage: „Wie hoch ist das Eastern Ferry Building, das direkt an das Rathaus der Stadt grenzt, in der der Autor von Foundation geboren wurde?"

Ohne ReAct-Muster halluziniert ein Standardmodell entweder eine Zahl oder gibt „unbekannt" zurück, weil die Antwort aus drei verketteten Fakten besteht, die im Vortrainings-Wissen selten gemeinsam vorkommen. Mit ReAct-Muster erzeugt das Modell eine sichtbare Kette:

  • Thought: „Ich muss zuerst den Autor von Foundation ermitteln."
  • Action: search["Foundation Roman Autor"]
  • Observation: „Isaac Asimov"
  • Thought: „Nun der Geburtsort von Asimov."
  • Action: search["Isaac Asimov Geburtsort"]
  • Observation: „Petrowitschi, Sowjetunion" (Asimov emigrierte als Kind nach New York)
  • Thought: „Die Frage bezieht sich auf die tatsächlich mit Asimov verknüpfte Stadt. Zweiter Suchlauf."
  • Action: search["Isaac Asimov Aufwuchs Stadt"]
  • Observation: „Brooklyn / New York City"
  • Thought: „Rathaus New York City ist City Hall; Eastern Ferry Building nebenan."
  • Action: lookup["Eastern Ferry Building New York City Höhe"]
  • Observation: „nicht in Wikipedia-Index gefunden"
  • Thought: „Frage enthält eine fiktive Prämisse; Antwort mit dieser Einschränkung."
  • Final Answer: „Kein Gebäude dieses Namens grenzt an die New Yorker City Hall; die Prämisse trifft nicht zu."

Der Trace ist der Kern des Musters. Er macht die Antwortkette sichtbar, entscheidbar und replizierbar. Fehlerhafte Zwischenschritte werden zur Debug-Grundlage, verpasste Werkzeug-Aufrufe zur konkreten Verbesserung. Das gleiche Muster trägt produktive Anwendungen: einen Kundenservice-Agenten, der zwischen Vertragsdaten-Lookup, Rechnungs-API und Antwort-Generierung wechselt; einen Coding-Agenten, der zwischen Datei-Lesen, Test-Ausführung und Diff-Vorschlag alterniert; einen Research-Agenten, der Web-Suche, Extraktion und Zwischensynthese verschränkt. Der Kostenpunkt gilt überall: Ohne Iterations-Cap und Kostenbudget kippt die Schleife.

ReAct-Pattern im eigenen Unternehmen umsetzen?

Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.

Gespräch vereinbaren