React-Agent-Architektur: Muster, Fallstricke, Lösungen

Verstehe das ReAct-Pattern in der React-Agent-Architektur: Reason-Act-Schleifen, Tool-Nutzung und Guardrails gegen typische Production-Fehler.
Auf dieser Seite
  1. Kern des Patterns
  2. Problem
  3. Lösung
  4. Wie es funktioniert
  5. Wichtig: Der Agent führt Aktionen nicht selbst aus
  6. Im Code sieht das so aus
  7. So sieht das während der Ausführung aus
  8. Wann es passt - und wann nicht
  9. Passt
  10. Passt nicht
  11. Wann ReAct verwenden (vs andere Patterns)
  12. Wie man es mit anderen Patterns kombiniert
  13. Kurz gesagt
  14. Vorteile und Nachteile
  15. FAQ
  16. Was als Nächstes

Kern des Patterns

ReAct (Reasoning + Acting) ist ein Pattern, mit dem ein Agent Schritt für Schritt arbeitet und nach jeder Aktion auf Basis des erhaltenen Ergebnisses entscheidet.

Wann sinnvoll: wenn sich der gesamte Weg nicht zuverlässig im Voraus planen lässt und der nächste Schritt vom Ergebnis des vorherigen abhängt.


Jeder Schritt besteht aus drei Aktionen:

  • Think — entscheidet, was als Nächstes zu tun ist
  • Act — führt eine Aktion aus oder ruft ein Tool auf
  • Observe — analysiert das Ergebnis

Danach entscheidet der Agent erneut, welchen nächsten Schritt er macht.

ReAct-Agent: Schritt-für-Schritt-Handeln

Problem

Stell dir vor: Du bist zum ersten Mal in einer neuen Stadt und suchst eine geöffnete Apotheke mit dem benötigten Medikament.

Du weißt nicht im Voraus:

  • welche Apotheken in der Nähe sind
  • ob sie jetzt geöffnet sind
  • ob sie das benötigte Präparat haben

Es ist unmöglich, sofort einen vollständigen Plan zu erstellen, weil jeder Schritt vom neuen Ergebnis abhängt.

Darum handelst du im Zyklus:

  1. Nächste Apotheke gefunden
  2. Geprüft, ob sie geöffnet ist
  3. Wenn nicht, zur nächsten gewechselt
  4. Wiederholt, bis du die richtige gefunden hast

Also ständig: Information -> Entscheidung -> Aktion -> neue Information.

Und wenn du dich zwingst, die Route direkt festzulegen ("#1 -> #2 -> #3"), ist das ein Plan auf Verdacht.

Genau darin liegt das Problem: Bei vielen Aufgaben lassen sich nicht alle Schritte im Voraus korrekt planen.

Lösung

ReAct löst das über Entscheidungen während der Ausführung, nicht über einen starren Plan im Voraus.

Analogie: Das ist wie Navigation unterwegs. Du planst das nächste Manöver nach jeder neuen Abzweigung oder Sperrung. Die Route wird unterwegs präzisiert und nicht ein für alle Mal fixiert.

Schlüsselprinzip: Ein vollständiger Plan ist nicht sofort möglich, deshalb muss sich der Agent nach jedem Ergebnis anpassen.

Statt erst kompletter Plan -> dann Ausführung arbeitet der Agent so:

  1. Überlegung (Think): trifft eine Entscheidung
  2. Aktion (Act): führt eine Aktion aus
  3. Beobachtung (Observe): analysiert das Ergebnis

Danach bestimmt er den nächsten Schritt auf Basis des neuen Kontexts.

Wenn eine Apotheke geschlossen ist, "drückt" der Agent den alten Plan nicht durch, sondern passt die Aktionen sofort an.

Jedes neue Ergebnis:

  • wird dem Kontext hinzugefügt
  • beeinflusst die nächste Entscheidung
  • ändert die weitere Route

ReAct führt kein vorab festgelegtes Skript aus, sondern passt sich bei jedem Schritt an.

Das Modell kann "wollen", Aktionen endlos zu wiederholen. Deshalb definiert die Ausführungsrichtlinie (execution-policy) die Bedingungen zum Stoppen des Zyklus.

Wie es funktioniert

Diagram

Wichtig: Der Agent führt Aktionen nicht selbst aus

Im Schritt Überlegung (Think) entscheidet der Agent nur, was als Nächstes getan werden soll.

Aber er führt die Aktion nicht selbstständig aus.

Er erzeugt die Entscheidung als Text, zum Beispiel:

„Tool search_docs mit Parameter X aufrufen“

Danach:

  • liest das System um den Agenten diese Entscheidung
  • führt die Aktion aus oder ruft das Tool auf
  • gibt das Ergebnis zurück

Dieses Ergebnis wird zur neuen Beobachtung (Observe).

Beschreibung des vollständigen Flows: Think → Act → Observe

Überlegung (Think)
Der Agent entscheidet, was als Nächstes getan werden soll.

Aktion (Act)
Das System führt eine Aktion aus oder ruft ein Tool auf.

Beobachtung (Observe)
Die Umgebung gibt ein Ergebnis zurück, das zum neuen Kontext wird.

Der Agent trifft nur Entscheidungen.

Alle Aktionen werden von einer externen Ausführungsschicht (execution layer) ausgeführt.

Wenn diese Schicht keine Grenzen hat, kann der Agent:

  • ein Tool dutzende Male aufrufen
  • dieselben Aktionen wiederholen
  • das Budget für API-Aufrufe aufbrauchen

Der Zyklus wiederholt sich, bis die Aufgabe erledigt ist oder Stoppbedingungen erreicht sind.

Im Code sieht das so aus

PYTHON
max_steps = 8

for step_no in range(1, max_steps + 1):
    thought = think(context)
    action = act(thought)
    result = observe(action)

    context.append(result)  # Observe -> neuer context für den nächsten Think.

    if is_done(result):
        done = True
        break

if not done:
    return stop_with_reason("max_steps_reached")

So sieht das während der Ausführung aus

TEXT
Goal: nächste geöffnete Apotheke finden

Think: eine Apotheke in der Nähe finden
Act: das System ruft find_nearby_pharmacies(user_location) auf
Observe: Liste von Apotheken erhalten, nach Entfernung sortiert
Zwischen Iterationen: Die Apothekenliste wird in den context aufgenommen

Think: die erste (nächste) Apotheke prüfen
Act: das System ruft check_pharmacy("Apotheke #1") auf
Observe: Apotheke ist geschlossen
Zwischen Iterationen: Der Status "geschlossen" wird in den context aufgenommen

Think: die nächste Apotheke prüfen
Act: das System ruft check_pharmacy("Apotheke #2") auf
Observe: Apotheke ist geöffnet

Think: das ist die nächste geöffnete Apotheke
Act: das System gibt die Adresse zurück
Observe: der Nutzer hat das Ergebnis erhalten
Stop: Bedingung erfüllt, der Zyklus endet

Der Agent entscheidet, was zu tun ist, führt eine Aktion aus und bekommt ein Ergebnis.

Jedes Ergebnis wird dem Kontext hinzugefügt und wird zur Basis für den nächsten Schritt.

Vollständiges ReAct-Agent-Beispiel

PYPython
TSTypeScript · bald

Wann es passt - und wann nicht

Passt

SituationWarum ReAct passt
Der Weg zum Ergebnis ist nicht offensichtlichReAct präzisiert den Plan bei jedem Schritt anhand neuer Beobachtungen.
Der nächste Schritt hängt von der Tool-Antwort abDie Logik Think -> Act -> Observe ist genau für diesen Zyklus gemacht.
Du musst mit APIs, Datenbanken, Suche oder anderen Tools arbeitenDer Agent ruft Tools während der Ausführung auf und passt sich an.

Passt nicht

SituationWarum ReAct nicht passt
Die Aufgabe hat ein festes, vorhersehbares SzenarioEin vordefinierter Pipeline-Ablauf ist einfacher und günstiger.
Kritische Antwortgeschwindigkeit ist erforderlich (minimale Latenz)Jeder Zyklus kostet zusätzliche Zeit durch weitere Überlegungsschritte und Aufrufe.
Jeder Tool-Aufruf ist teuer oder streng limitiertOhne harte Grenzen kann ReAct viele Iterationen ausführen.

Wenn du ReAct wählst, setze Grenzen sofort: max_steps, Timeouts, Stoppbedingungen und Budget für Tool-Aufrufe.

Wann ReAct verwenden (vs andere Patterns)

Verwende ReAct, wenn der Agent Schritt für Schritt auf Basis vorheriger Ergebnisse entscheiden muss.

Kurzer Test:

  • wenn du brauchst "Ergebnis gesehen -> nächsten Schritt entschieden" -> ReAct
  • wenn du brauchst "zuerst ein großes Ziel in Teilaufgaben zerlegen" -> Task Decomposition Agent
Vergleich mit anderen Patterns und Beispiele

Schnellübersicht:

Wenn die Aufgabe so aussieht...Verwende
Nach jedem Schritt muss entschieden werden, was als Nächstes passiertReAct-Agent
Zuerst muss ein großes Ziel in kleinere ausführbare Aufgaben zerlegt werdenTask Decomposition Agent
Code soll ausgeführt, Ergebnisse geprüft und sicher iteriert werdenCode Execution Agent
Daten sollen analysiert und daraus Schlussfolgerungen abgeleitet werdenData Analysis Agent
Recherche aus mehreren Quellen mit strukturierten Belegen ist nötigResearch Agent

Beispiele:

ReAct: "Finde die Ursache eines API-Ausfalls: Logs prüfen -> Fehler anschauen -> den nächsten Check anhand des Ergebnisses ausführen".

Task Decomposition: "Plane den Launch eines neuen Tarifs: zerlege die Aufgabe in Teilaufgaben für Content, Technik, QA und Support".

Code Execution: "Berechne 12-Monats-Retention in Python und prüfe die Formeln auf realen Daten".

Data Analysis: "Analysiere eine Sales-CSV: finde Trends, Anomalien und gib kurze Schlussfolgerungen".

Research: "Sammle Daten zu 5 Wettbewerbern aus mehreren Quellen und erstelle eine Vergleichszusammenfassung".

Wie man es mit anderen Patterns kombiniert

ReAct wird häufig zusammen mit anderen Patterns genutzt.

  • ReAct + RAG — wenn Fakten fehlen, holt der Agent sie zuerst aus der Wissensbasis und geht erst dann weiter.
  • ReAct + Reflection — nach jedem Schritt prüft der Agent sich selbst, um Fehler schnell zu erkennen und zu korrigieren.
  • ReAct + Supervisor — riskante Aktionen führt der Agent nicht selbst aus, sondern gibt sie zur Freigabe an einen Menschen.

ReAct ergänzt den Entscheidungszyklus. Andere Patterns ergänzen Kontrolle, Gedächtnis oder Koordination.

Kurz gesagt

Kurzfazit

ReAct-Agent:

  • trifft Entscheidungen schrittweise
  • führt eine Aktion aus
  • analysiert das Ergebnis

Und wiederholt den Zyklus, bis die Aufgabe erledigt ist.

Vorteile und Nachteile

Vorteile

passt sich schnell an neue Daten an

Fehler sind bereits im nächsten Schritt sichtbar

funktioniert gut, wenn sich Bedingungen während der Ausführung ändern

jeder Schritt ist leicht zu erklären

Nachteile

kann durch zusätzliche Schritte langsamer sein

kann sich ohne Limits in einer Schleife festfahren

Stoppbedingungen müssen klar definiert sein

FAQ

Q: Plant ReAct alle Schritte im Voraus?
A: Nein. Es trifft nach jeder Aktion eine neue Entscheidung.

Q: Kann ReAct in einer Schleife stecken bleiben?
A: Ja, wenn keine Stoppbedingungen definiert sind.

Q: Funktioniert ReAct ohne Tools?
A: Ja. Der Agent kann den Zyklus Think -> Act -> Observe auch ohne Tool-Aufrufe nutzen, zum Beispiel um den Ansatz für eine Aufgabe zu ändern. Aber ohne Zugriff auf externe Aktionen kann er keine neuen Daten erhalten und arbeitet nur mit dem, was bereits im Kontext vorhanden ist.

Was als Nächstes

ReAct erlaubt einem Agenten, Schritt für Schritt zu handeln.

Aber was tun, wenn die Aufgabe komplex ist und aus mehreren Teilaufgaben besteht?

⏱️ 11 Min. LesezeitAktualisiert Mär, 2026Schwierigkeit: ★★☆
Praktische Fortsetzung

Beispiele zur Musterimplementierung

Setze das Thema direkt mit Beispielprojekten um.

Python
ReAct Agent — Python (vollständige Implementierung mit LLM)
Beispiel öffnen
TypeScript
ReAct Agent — TypeScript (vollständige Implementierung)
Demnächst
Integriert: Production ControlOnceOnly
Guardrails für Tool-Calling-Agents
Shippe dieses Pattern mit Governance:
  • Budgets (Steps / Spend Caps)
  • Tool-Permissions (Allowlist / Blocklist)
  • Kill switch & Incident Stop
  • Idempotenz & Dedupe
  • Audit logs & Nachvollziehbarkeit
Integrierter Hinweis: OnceOnly ist eine Control-Layer für Production-Agent-Systeme.
Autor

Diese Dokumentation wird von Engineers kuratiert und gepflegt, die AI-Agenten in der Produktion betreiben.

Die Inhalte sind KI-gestützt, mit menschlicher redaktioneller Verantwortung für Genauigkeit, Klarheit und Produktionsrelevanz.

Patterns und Empfehlungen basieren auf Post-Mortems, Failure-Modes und operativen Incidents in produktiven Systemen, auch bei der Entwicklung und dem Betrieb von Governance-Infrastruktur für Agenten bei OnceOnly.