KI-Anwendungsframework · 03

Detaillierte Analyse von LangGraph· Komplexe zustandsbehaftete Multi-Agenten-Anwendungen erstellen

Graphbasiertes Agent-Orchestrierungsframework, so einfach wie Bauklötze stapeln!

FRAMEWORK MAP
Detaillierte Analyse von LangGraph
Komplexe zustandsbehaftete Multi-Agenten-Anwendungen erstellen
Graphbasiertes Agent-Orchestrierungsframework, so einfach wie Bauklötze stapeln!
Zusammenfassung in einem Satz

LangGraph ist ein auf Graphen basierendes Framework zur Orchestrierung von Agents, das für den Aufbau komplexer zustandsbehafteter, mehrknotiger und in Schleifen ausgeführter Anwendungen entwickelt wurde und fortgeschrittene Funktionen wie bedingte Verzweigungen, parallele Ausführung und menschliches Eingreifen unterstützt.

1. Was ist LangGraph?

LangGraph ist ein graphbasiertes (Graph) Agent-Orchestrierungsframework, das speziell für die Erstellung entwickelt wurdeZustandsbehaftetMehrknotenSchleifenausführungFür komplexe Anwendungen konzipiert. Drei Kernelemente:LLM/Agent · Graph (Graphstruktur) · State (Zustand)

  • Auf Basis einer Graphstruktur orchestrieren und den Ablauf flexibel steuern
  • Unterstützt Schleifen, bedingte Verzweigungen und parallele Ausführung
  • Integriertes Zustandsmanagement, unterstützt Langzeitgedächtnis
  • Unterstützt menschliche Eingriffe (Human in the loop)
  • Hoch skalierbar, geeignet für komplexe Multi-Agenten-Systeme

2. Kernkonzepte

Graph

Besteht aus Knoten (Node) und Kanten (Edge) und definiert den Ausführungsablauf

Node (Knoten)

Eine Einheit zur Ausführung einer konkreten Aufgabe; sie kann ein LLM-Aufruf, ein Tool-Aufruf oder benutzerdefinierte Logik sein

Edge

Definiert die Verbindungen zwischen Knoten und kann bedingte oder unbedingte Sprünge sein

State (Zustand)

Globaler Zustand, der während der Graphausführung beibehalten wird und von allen Knoten gemeinsam genutzt wird

Checkpoint

Ausführungszustand speichern, Wiederherstellung unterstützen und Historie nachverfolgen

Agent (intelligenter Agent)

Ein zustandsbehafteter Agent auf Graphenbasis

3. Ausführungsablauf (Graph-Ausführungs-Engine)

Eingabe
Input
Initialzustand
State
Ausführungsknoten
Node
Status aktualisieren
Update
Bedingte Prüfung
Edge
Nächster Knoten
Next Node
Ende
End
In einer Schleife ausführen, bis die Beendigungsbedingungen erfüllt sind
Edge-Typ
  • Direct EdgeBedingungslose Kante: A → B
  • Conditional EdgeBedingte Kante: A → C (with condition)
Beispiel für eine bedingte Kante (JSON)
{
  "from": "agent",
  "condition": "state['next']",
  "edges": {
    "continue": "tools",
    "end": "end"
  }
}

4. Typische Anwendungsszenarien

Komplexes Dialogsystem

Unterstützt mehrtägige Dialoge, Kontextspeicher und Tool-Aufrufe

Multi-Agenten-Zusammenarbeit

Mehrere Agents arbeiten zusammen, um komplexe Aufgaben mit klarer Aufgabenverteilung zu erledigen

Workflow-Automatisierung

Komplexe Abläufe automatisieren und manuelle Eingriffe reduzieren

Entscheidungs- und Planungsszenarien

Zustandsbasierte Entscheidungsfindung und Bearbeitung von Planungsaufgaben

5. Codebeispiel: Erstellen eines einfachen LangGraph

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, List, Dict, Any

# 1. Zustand definieren
class AgentState(TypedDict):
    messages: Annotated[List[Dict[str, Any]], "Nachrichtenverlauf"]
    next: str
    result: str

# 2. Graph erstellen
graph = StateGraph(AgentState)

async def agent(state: AgentState):
    # LLM aufrufen, um die Benutzereingabe zu analysieren
    return {"next": "tools"}

async def tools(state: AgentState):
    # Externe Tools aufrufen
    return {"result": "Ergebnis der Tool-Ausführung"}

async def review(state: AgentState):
    # Ergebnis prüfen und entscheiden, ob beendet werden soll
    if "abgeschlossen" in state["result"]:
        return {"next": END}
    return {"next": "agent"}

# 3. Knoten hinzufügen
graph.add_node("agent", agent)
graph.add_node("tools", tools)
graph.add_node("review", review)

# 4. Kanten hinzufügen
graph.set_entry_point("agent")
graph.add_edge("agent", "tools")
graph.add_edge("tools", "review")
graph.add_conditional_edges("review", lambda x: x["next"])

# 5. Graph kompilieren
app = graph.compile()
Zustandsdefinition
Knotenfunktion
Ablaufdefinition
Schleifen unterstützen
Unterstützt bedingte Verzweigungen
Visualisierter Status

6. Erweiterte Funktionen

Zustandspersistenz

Memory, SQLite, PostgreSQL, Redis usw.

Checkpoint-Mechanismus

Unterstützt das Fortsetzen der Ausführung von jedem beliebigen Prüfpunkt aus

Manueller Eingriff

Human in the loop — im Prozess können manuelle Prüfknoten eingefügt werden

Parallele Ausführung

Mehrere Knoten parallel unterstützen, um die Effizienz zu verbessern

Visuelles Debugging

Bietet grafische Unterstützung, um das Debuggen und das Verständnis des Ablaufs zu erleichtern

Unterstützung für mehrere Agenten

Komplexe Systeme für die Zusammenarbeit mehrerer Agenten einfach erstellen

7. Vergleich mit anderen Frameworks

FrameworkAusführungsmodellStatusverwaltungProzesssteuerungSkalierbarAnwendungsszenarienVisualisierung
LangChainLineare KetteEinfacher ZustandFester AblaufMittelEinfache AnwendungBegrenzt
LangGraphGraphstrukturIntegrierter StatusFlexibel (Graph + Bedingungen)HochKomplexe Anwendungen/WorkflowsIntegrierte Unterstützung
AutoGPTEinzelagenten-SchleifeMittelSchleifenausführungMittelAutonome AufgabenausführungKeine
MetaGPTMulti-Agenten-ZusammenarbeitMittelRollenbasierte AusführungMittelTeamzusammenarbeitsaufgabenBegrenzt

8. Ökosystem und Integration

Modell
OpenAIAnthropicLlama 3
Werkzeuge
SucheRechnerAPI
Speicherung
SQLitePostgreSQLRedis
Überwachung/Bereitstellung
LangSmithProtokollverfolgungDockerFastAPI

9. Praxisbeispiele & Open-Source-Projekte