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.
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:
- Die Frage des Schülers beantwortet.
- Bewertet, ob diese Antwort tatsächlich gut ist.
- Falls sie gut ist, dort aufhört.
- Falls sie nicht gut ist, sie überarbeitet.
- 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
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.