Skip to main content

LangGraph

FÜR AI-AGENTENChatGPTClaude

Ein Low-Level-Framework des LangChain-Teams zur Erstellung deterministischer, zyklischer Multi-Agenten-Systeme in Form von Zustandsautomaten (State Machines) mit umfassender Unterstützung für Persistenz.

1. Konzeptüberblick und systemische Herausforderungen

Der Versuch, einen robusten Produktions-Agenten mit einfachen while True-Schleifen in Python oder linearen Ketten zu bauen, stößt schnell auf kritische ingenieurtechnische Grenzen:

  1. Fehlende Persistenz: Wenn der Server während eines 5-minütigen Agent-Prozesses neu gestartet wird, gehen der gesamte aktuelle Zustand und Fortschritt unwiederbringlich verloren.
  2. Unkontrollierbarer Flow (Black Box Problem): Es ist schwierig vorherzusagen, wann der Agent die Arbeit beenden wird oder wie man ihn bei einem Validierungsfehler gezwungenermaßen einen Schritt zurücksetzen kann.
  3. Unmöglichkeit langfristiger Pausen (Human-in-the-Loop): Die Ausführung des Programms anzuhalten, um auf eine Benutzerbestätigung zu warten, ohne den Prozessspeicher im normalen Code zu blockieren, ist extrem komplex.

LangGraph löst diese Probleme, indem es Agentensysteme als Stateful Graphs modelliert. Jeder komplexe Prozess wird in transparente Nodes, Übergangskanten (Edges) und einen einzigen typisierten State zerlegt, der nach jedem Schritt atomar in der Datenbank persistiert wird.

2. Architektonische Taxonomie und mentales Modell

Die LangGraph-Architektur basiert auf vier zentralen Entitäten:

  • 1. Shared State: Ein streng typisiertes Interface (via TypedDict oder Pydantic). Definiert das Datenschema, das allen Nodes zur Verfügung steht. Für Felder können spezifische Reducers definiert werden, z. B. Annotated[list, add_messages], die neue Nachrichten automatisch anhängen, statt das Array zu überschreiben.
  • 2. Nodes: Gewöhnliche synchrone oder asynchrone Funktionen. Jede Node nimmt den aktuellen State entgegen, führt Berechnungen durch (Modellaufruf, Testausführung oder DB-Zugriff) und gibt ein partielles State Update (State Delta) zurück.
  • 3. Edges & Conditional Edges:
    • Standard Edges: Determinierter Übergang von Node A zu Node B.
    • Conditional Edges: Eine Router-Funktion analysiert die letzte Modellausgabe und entscheidet, wohin der Flow geleitet wird (z. B.: Wenn ein Tool aufgerufen wurde -> tools; wenn eine finale Antwort gefunden wurde -> END).
  • 4. Checkpointers: Treiber für die langfristige Speicherung (MemorySaver für Tests, PostgresSaver / SqliteSaver für Produktion). Erstellen unveränderliche Snapshots bei jedem Superstep.

3. Technischer Pipeline und interne Mechanik

Die Ausführung des Graphen folgt dem Modell des Bulk Synchronous Parallelism (BSP):

  1. State Initialization (Session Start): Der Graph empfängt die Eingabe und ein Konfigurationsobjekt mit dem Schlüssel thread_id. Der Checkpointer lädt den zuletzt gespeicherten State für diesen Thread.
  2. Superstep Execution: Alle aktiven Nodes der aktuellen Phase werden parallel ausgeführt. Jede Node liest denselben State-Snapshot und generiert ihren eigenen Update-Patch.
  3. Reducer Aggregation & Checkpoint Commit (State Merge): Nach Abschluss aller Nodes der Phase wendet das System die Reducers auf die erhaltenen Änderungen an, bildet den neuen State und persistiert ihn atomar in der Datenbank.
  4. Edge Routing & Interrupt Inspection (Routing und Pause-Prüfung): Bedingte Übergänge werden evaluiert. Wenn der Graph auf einen Unterbrechungspunkt (interrupt_before) trifft, wird die Ausführung sicher beendet und die Kontrolle an die externe Anwendung übergeben.

4. Praktische Ingenieurs-Szenarien in der Produktion

01. Autonomer Entwicklungszyklus und Code-Fehlerbehebung

Ein Graph mit vier Nodes:

  • generate_code -> run_unit_tests -> evaluate_output.
  • Wenn die Tests erfolgreich bestehen -> Übergang zu create_pr.
  • Wenn die Tests fehlschlagen -> leitet eine bedingte Edge den State zurück zu generate_code zusammen mit dem Fehler-Stacktrace (mit einer Begrenzung auf maximal 5 Iterationen).

02. Finanzieller Human-in-the-Loop Prozess

Ein Agent analysiert widersprüchliche Kundenrechnungen. Wenn der Rückerstattungsbetrag unter $100 liegt, führt der Graph die Rückerstattung automatisch über die Node execute_refund aus. Liegt der Betrag darüber, wird der Graph unterbrochen (interrupt), generiert einen Link zum Genehmigungsformular für den Manager und setzt die Arbeit erst fort, nachdem ein Webhook vom Menschen empfangen wurde.

03. Multi-Agenten-System „Supervisor – Specialists“

Die zentrale Node Supervisor fungiert als Top-Level-Router. Je nach Aufgabentyp schaltet er den Kontext zwischen spezialisierten Subgraphs um: ResearchSubgraph (Websuche und Analyse) und DraftingSubgraph (Vertragsgenerierung), wobei er den einheitlichen Unternehmenskontext verwaltet.

5. Fallstricke, häufige Fehler und Sicherheit

  • State Bloat: Das Speichern von gigabytegroßen PDF-Dateien oder massiven Tabellen im Shared State führt dazu, dass jeder Checkpoint in PostgreSQL hunderte Millisekunden benötigt. Bewahren Sie im State nur leichte Metadaten und S3-URLs der Artefakte auf.
  • Recursion Limit Exceeded: Wenn bedingte Edges keinen garantierten Ausstieg aus der Schleife haben, bricht die Ausführung mit einem Systemfehler ab, wenn die Tiefengrenze erreicht ist (standardmäßig 25 Schritte). Kontrollieren Sie die Versuchsanzahl immer direkt im State-Schema.
  • Nicht serialisierte Objekte im State: Der Versuch, einen offenen Dateideskriptor, eine DB-Verbindung oder ein funktionales Closure im State zu speichern, führt zum Absturz des Checkpointers beim Serialisierungsversuch in JSON/Pickle.
/ Häufig gestellte FragenSchema.org FAQPage

FAQ: LangGraph

Klassische LangChain-Ketten waren streng azyklisch (DAG) – Daten flossen nur in eine Richtung. Reale agentische Prozesse erfordern jedoch Zyklen: mehrfache Versuche, Rückkehr zur Nachbearbeitung nach Linter-Fehlern, bedingte Verzweigungen und Anhalten zur menschlichen Bestätigung. LangGraph hat Agenten in vollwertige Zustandsautomaten (State Machines) umgewandelt.
/ Interne Links
Alle Begriffe