Startseite / Artikel

LangChain gegen LangGraph: Die Wahl zwischen Ketten und zustandsbehafteten Graphen

LangChain bietet lineare Ketten; LangGraph fügt Zustandsbasierte, verzweigte Arbeitsabläufe hinzu. Einfache Beispiele für beide sowie eine einfache Methode, um zu entscheiden, was Ihre Anwendung benötigt.

Verlag: REACTAPP.TOP5 Min. Lesezeit1088 Wörter

Quellen: LangChain vs LangGraph: What’s the Difference?

Falls Sie in die Welt der KI-Entwicklung einsteigen, tauchen überall zwei Namen auf:

LangChain und LangGraph.

Auf den ersten Blick scheinen sie austauschbar zu sein. Sind es dasselbe Tool? Muss man beides lernen? Und wie entscheidet man, welches für das eigene Projekt geeignet ist?

Lassen Sie uns das anhand eines einfachen Beispiels erläutern.

Was ist LangChain?

Bilden Sie sich LangChain als Werkzeugkasten zum Zusammenbauen von KI-Anwendungen vor.

Es stellt Ihnen fertige Komponenten zur Verfügung, mit denen Sie LLMs nutzen und sie mit anderen Ressourcen verbinden können, wie zum Beispiel:

  • Prompts
  • LLMs
  • Tools
  • APIs
  • Dokumente
  • Vektordatenbanken
  • Retrievern

Nehmen wir an, Sie möchten einen einfachen KI-Tutor entwickeln.

Der Ablauf könnte dann so aussehen:

Student Question
       ↓
     Prompt
       ↓
      LLM
       ↓
     Answer

LangChain macht das Zusammenstellen dieser Art von Pipeline ziemlich unkompliziert.

Einfaches LangChain-Beispiel

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful programming teacher."),
    ("human", "{question}")
])chain = prompt | llmresponse = chain.invoke({
    "question": "What is recursion?"
})print(response.content)

Die Logik hier ist einfach und linear:

Frage → Prompt → LLM → Antwort

Genau solche geradlinigen Pipelines sind das, wofür LangChain hervorragt.

Was ist LangGraph?

Nehmen wir nun an, Ihr KI-Tutor muss mehr als nur einen Durchlauf bewältigen.

Anstatt einfach eine Antwort herauszugeben, möchten Sie, dass er Folgendes tut:

  1. Die Frage des Schülers beantwortet.
  2. Bewertet, ob diese Antwort tatsächlich gut ist.
  3. Falls sie gut ist, dort aufhört.
  4. Falls sie nicht gut ist, sie überarbeitet.
  5. Die überarbeitete Antwort erneut überprüft.

Der Ablauf sieht jetzt eher so aus:

Student Question
                    ↓
              Generate Answer
                    ↓
               Check Answer
                ↙        ↘
             Good          Bad
              ↓             ↓
            Finish       Improve
                            ↓
                       Check Again

Genau für solche Szenarien wurde LangGraph entwickelt.

LangGraph ermöglicht es Ihnen, Workflows zu entwerfen, die Folgendes beinhalten können:

  • Mehrere Schritte
  • Bedingte Verzweigungen
  • Schleifen
  • Gemeinsamer Zustand
  • Entscheidungspunkte
  • Freigabe durch einen Menschen im Prozess
  • Erweitertes Verhalten der Agenten

Ein einfaches LangGraph-Beispiel

Zunächst definieren Sie den Zustand, den Ihre Anwendung verfolgen muss.

from typing import TypedDict
class State(TypedDict):
    question: str
    answer: str
    good: bool

Der Zustand verfolgt drei Dinge:

question
answer
good

Daraufhin erstellen Sie einzelne Schritte, die als Nodes bezeichnet werden, innerhalb Ihres Graphen.

Antwort generieren

def generate_answer(state):
    response = llm.invoke(
        f"Answer this question simply:\n{state['question']}"
    )    return {
        "answer": response.content
    }

Antwort überprüfen

def check_answer(state):
    response = llm.invoke(
        f"""
        Is this answer good?        Question:
        {state['question']}        Answer:
        {state['answer']}        Reply only YES or NO.
        """
    )    return {
        "good": response.content.strip().upper() == "YES"
    }

Anschließend definieren Sie eine Entscheidungsfunktion:

def decision(state):
    if state["good"]:
        return "finish"    return "improve"

Wichtig ist hier, dass LangGraph für die Verbindung dieser Nodes zuständig ist und entscheidet , welcher Node als Nächstes ausgeführt wird.

Falls die Überprüfung fehlschlägt, kann der Graph zum Verbesserungspunkt zurückkehren und die Überprüfung anschließend erneut ausführen.

Was ist also der Hauptunterschied?

Die einfachste Art, den Unterschied darzustellen, ist folgende:

LangChain = Bausteine

LangChain stellt die einzelnen Komponenten bereit, aus denen man eine KI-Anwendung zusammenstellt.

Zum Beispiel:

LLM
Prompt
Retriever
Tool
Vector Database
     ↓
   LangChain

LangGraph = Workflow

LangGraph bestimmt, wie diese Komponenten miteinander interagieren und in welcher Reihenfolge.

Start
         ↓
      Generate
         ↓
       Check
      ↙     ↘
    Good     Bad
     ↓        ↓
   Finish   Improve
              ↓
            Check

Sind LangChain und LangGraph Konkurrenten?

Nicht wirklich.

Sie sind dafür konzipiert, nebeneinander verwendet zu werden.

Zum Beispiel:

LangGraph
                     ↓
          ┌──────────┴──────────┐
          ↓                     ↓
     LangChain              LangChain
     Retriever                 Tools
          ↓                     ↓
          └──────────┬──────────┘
                     ↓
                    LLM

LangChain stellt die Bausteine und Tools bereit, während LangGraph den umfassenderen Workflow darum herum orchestriert.

Wann sollten Sie LangChain verwenden?

LangChain ist die richtige Wahl, wenn Ihre Anwendung einen eher linearen Ablauf verfolgt.

Typische Fälle sind:

  • Ein einfacher Chatbot
  • Eine auf RAG basierende Anwendung
  • Antworten auf Fragen aus einem PDF
  • Suchen in Dokumenten
  • Eine einfache App, die auf einem LLM basiert
  • Einfache Aufrufe von Tools

Ein grundlegender Ablauf könnte hier etwa so aussehen:

User
 ↓
Retrieve Information
 ↓
LLM
 ↓
Answer

Für diese Arten von Konfigurationen ist es in der Regel übertrieben, eine vollständige Graphenstruktur zu erstellen.

Wann sollten Sie LangGraph verwenden?

LangGraph kommt dann zum Tragen, wenn Ihre Anwendung verzweigte Logik und Entscheidungen erfordert, nicht nur eine feste Abfolge von Schritten.

Dazu gehören Situationen wie:

  • Autonome KI-Agenten
  • Workflows mit mehreren Schritten
  • Systeme mit mehreren kooperierenden Agenten
  • Prozesse mit menschlicher Beteiligung
  • Flüsse, die in Schleifen laufen müssen
  • Apps, die einen dauerhaften Zustand über verschiedene Schritte hinweg benötigen
  • Fortgeschrittene Ketten zur Aufrufung von Tools
  • Zum Beispiel stellen Sie sich einen KI-Tutor vor, der so strukturiert ist:

    Student asks question
            ↓
    Analyze level
            ↓
    Generate explanation
            ↓
    Give quiz
            ↓
    Check answer
            ↓
    Correct?
       ↙          ↘
     YES           NO
      ↓             ↓
    Next topic   Explain again
    

    Genau bei dieser Art von Verzweigungen und zustandsbasiertem Verhalten zeigt LangGraph seine Stärken.

    Die einfachste Analogie

    Stellen Sie sich den Bau eines Hauses vor.

    LangChain fungiert als Ihre Werkzeugkiste.

    Es stellt Ihnen Dinge wie folgt zur Verfügung:

    Ziegel, Werkzeuge, Materialien und Komponenten.

    LangGraph dient als Bauplan.

    Er definiert die Reihenfolge:

    Grundstein legen → Wände errichten → Dach anbringen → Arbeit überprüfen → falls etwas nicht stimmt, zurückgehen und korrigieren.

    Kurz gesagt:

    LangChain hilft Ihnen dabei, die einzelnen Teile zusammenzubauen.

    LangGraph hilft Ihnen dabei, den Prozess zu verwalten.

    Fazit

    Anstatt LangChain und LangGraph als unverbundene Tools zu betrachten, ist es genauer, sie als zwei Ebenen desselben Frameworks zu sehen.

    AI Application
                  ↓
              LangGraph
           (Workflow / Logic)
                  ↓
              LangChain
          (Tools / Components)
                  ↓
                 LLM
    

    Falls Ihr Anwendungsfall einfach ist, wird LangChain allein wahrscheinlich ausreichen.

    Sobald Ihre Anwendung State-Tracking, bedingte Logik, Schleifen oder komplexe Agentenverhaltensweisen erfordert, ist LangGraph die bessere Wahl.

    In vielen Produktivsystemen werden jedoch sowohl LangChain als auch LangGraph kombiniert.

    Die Regel, die man sich merken sollte:

    LangChain erstellt die einzelnen Komponenten. LangGraph verbindet sie und steuert den Ablauf.