Start KI-Lösungen Fertige Lösungen Peers & Simulation RAG & Retrieval Use Cases Frameworks Blog English Kontakt
Zurück zum Blog

LangChain und LangGraph 1.0 in der Praxis

LangChain 1.0 und LangGraph 1.0 erschienen am 22. Oktober 2025 mit der Zusage: keine Breaking Changes bis 2.0. Wir untersuchen create_agent und seine Middleware-Hooks, Persistenz über Checkpointer, Human-in-the-Loop-Interrupts und die Migration von Legacy-Chains nach langchain-classic — einschließlich der Grenzen der stabilen APIs.

Die Kosten eines beweglichen Ziels

LangChain hatte den Ruf der Instabilität. Zwischen 2023 und 2025 migrierten Teams von Chains zu LCEL-Runnables zu vorgefertigten Agenten; jede Deprecation-Runde kostete Engineering-Zeit, ohne das Systemverhalten zu ändern. Für Produktionssysteme war die API-Fluktuation das stärkste Argument gegen das Framework — und ein häufiger Grund, Agent-Loops von Hand zu bauen.

Am 22. Oktober 2025 hat LangChain die Version 1.0 von langchain und langgraph veröffentlicht, in Python und TypeScript, mit einer expliziten Zusage: keine Breaking Changes bis 2.0. Dieser Artikel untersucht, was die Releases enthalten, wie sich die neuen Primitive in der Praxis verhalten und was eine Migration von 0.x tatsächlich bedeutet.

Aufgabeziel Agentplanen · entscheiden Toolapi · mcp Ergebnisgeprüft
Eine Aufgabe kommt an — der Agent plant den nächsten Schritt. 1/4

Was am 22. Oktober 2025 erschienen ist

LangChain 1.0 ist ein Neuaufbau um eine einzige Abstraktion. create_agent implementiert die Standard-Tool-Calling-Schleife und läuft auf der LangGraph-Runtime; es ersetzt create_react_agent, das in langgraph.prebuilt jetzt als deprecated markiert ist. Die Paketoberfläche schrumpft auf Agent-Bausteine. Python 3.9 wird nach dem End-of-Life im Oktober 2025 nicht mehr unterstützt; 1.0 erfordert Python 3.10 oder neuer.

LangGraph 1.0 ist das leisere Release. Seine APIs für Durable Execution, Streaming und State-Management waren bei Unternehmen wie Uber, LinkedIn und Klarna bereits im Produktionseinsatz; das 1.0-Label stabilisiert sie nahezu ohne Breaking Changes. Neu in LangChain sind zudem Standard-Content-Blocks: eine providerunabhängige content_blocks-Eigenschaft, die Reasoning-Spuren, Zitate und Tool-Calls über Modellanbieter hinweg normalisiert.

create_agent und der Middleware-Vertrag

create_agent führt Modell- und Tool-Aufrufe in einer Schleife aus, bis das Modell keine Tools mehr anfordert. Anpassung geschieht nicht durch Subclassing, sondern über Middleware: Objekte, die bis zu sechs Hooks rund um die Schleife implementieren. Node-Hooks liefern State-Updates zurück; Wrap-Hooks kontrollieren den Aufruf selbst und können abkürzen, wiederholen oder das Modell pro Request austauschen.

LangChain liefert vorgefertigte Middleware für Zusammenfassung ab einem Token-Schwellwert, PII-Redaktion, Aufruflimits und Human-in-the-Loop-Freigaben. Die Komposition folgt Webserver-Semantik: before_*-Hooks laufen von vorn nach hinten, after_*-Hooks in umgekehrter Reihenfolge, wrap_*-Hooks verschachteln sich. Dieser Teil von 1.0 verändert die tägliche Arbeit am stärksten — was früher einen Fork des Agent-Graphen erforderte, ist jetzt eine deklarierte Komponente.

HookZeitpunktTypischer Einsatz
before_agentEinmal beim Start des AgentenMemory laden, Eingaben validieren
before_modelVor jedem ModellaufrufHistorie kürzen, PII redigieren
wrap_model_callUm jeden ModellaufrufRetries, Caching, Modellwechsel
wrap_tool_callUm jeden Tool-AufrufErgebnisse abfangen, Ausführung steuern
after_modelNach jeder ModellantwortGuardrails, menschliche Freigabe
after_agentEinmal beim Abschluss des AgentenErgebnisse sichern, Aufräumen

Checkpointer machen Zustand persistent

Ein Checkpointer persistiert den Graph-Zustand nach jedem Super-Step, adressiert über eine thread_id in der Laufkonfiguration. Dieser eine Mechanismus ermöglicht Konversationskontinuität, fehlertolerante Fortsetzung nach Abstürzen, Time-Travel-Debugging und Interrupts. InMemorySaver ist nur für die Entwicklung gedacht; SqliteSaver und PostgresSaver überstehen Prozessneustarts und sind die Produktionsoptionen.

Zwei Grenzen gehören dazu. Ein Checkpointer ist threadbezogener Kurzzeitzustand, kein Memory-System; threadübergreifendes Wissen erfordert das separate Store-Interface. Und Checkpointing dedupliziert keine Seiteneffekte: Beim Fortsetzen wird ein Node von seinem Anfang an erneut ausgeführt, externe Aufrufe müssen daher idempotent oder isoliert sein.

Interrupts für menschliche Freigaben

Die Funktion interrupt() pausiert einen Graphen an beliebiger Stelle innerhalb eines Nodes. Die Runtime sichert den Zustand über den Checkpointer, liefert dem Aufrufer eine JSON-serialisierbare Payload unter __interrupt__ und wartet unbegrenzt. Fortgesetzt wird mit Command(resume=wert) und derselben thread_id; der Wert wird zum Rückgabewert von interrupt().

In create_agent verpackt HumanInTheLoopMiddleware dieses Muster: Sie deklariert, welche Tools eine Freigabe erfordern und welche Entscheidungen zulässig sind — approve, edit oder reject — bevor ein Tool-Call ausgeführt wird. Ein Vorbehalt bleibt: Der unterbrochene Node startet beim Fortsetzen von vorn, Code vor dem interrupt()-Aufruf läuft also zweimal. Platzieren Sie Seiteneffekte hinter dem Freigabepunkt.

Abschied von Legacy-Chains

In 1.0 schlagen Importe von LLMChain, ConversationChain, den Retriever-Modulen, der Indexing-API und dem Hub fehl. Sie sind nach langchain-classic umgezogen, das parallel zu 1.0 installierbar ist; das Umstellen des Import-Präfixes auf langchain_classic stellt das alte Verhalten wieder her. Dieser Schritt ist mechanisch und kauft Zeit. Modernisierung ist er nicht — langchain-classic trägt den deprecateten Code unverändert weiter.

Der Weg nach vorn ersetzt Chain-Klassen durch Runnable-Komposition — prompt | model | parser — oder durch create_agent, wo Tool-Nutzung im Spiel ist. LLMChain ist seit Version 0.1.17 deprecated, die Ersatz-APIs sind dokumentiert und stabil. Die 0.3-Linie bleibt mit Sicherheitspatches und kritischen Bugfixes bis Dezember 2026 im Wartungsmodus; das ist das realistische Migrationsfenster.

Prebuilt-Agenten migrieren separat. create_react_agent funktioniert weiter, ist aber deprecated; der Ersatz ist create_agent aus langchain.agents. Die Zuordnung ist eng: Der prompt-Parameter wird zu system_prompt, Pre- und Post-Model-Hooks werden zu Middleware. Tool-Fehlerbehandlung wandert in wrap_tool_call-Middleware. Planen Sie pro Agent einen Tag für die Umbenennung plus einen Regressionslauf — nach unserer Erfahrung nicht mehr.

Was 1.0 nicht löst

API-Stabilität ist ein Vertrag über Signaturen, nicht über Verhalten. Agenten bleiben nichtdeterministisch; ein gepinntes Framework pinnt keine Modellausgaben. Evaluations-Suiten, Tracing und Regressionstests bleiben Pflicht. Die Stabilitätszusage gilt zudem nur für langchain und langgraph — Provider-Pakete wie langchain-openai und langchain-anthropic versionieren unabhängig und folgen den API-Änderungen ihrer Anbieter.

Middleware hebt die Decke und verlangt Disziplin. Sechs Hooks über mehrere gestapelte Middleware erzeugen Verschachtelungen, über die explizit nachgedacht werden muss; Reihenfolgefehler sind still. Checkpointed State ist versionierte Daten Ihrer Anwendung: Wenn sich Ihr State-Schema weiterentwickelt, ist die Migration persistierter Threads Ihre Aufgabe, nicht die des Frameworks.

Ausblick vom November 2025

Wir bei Blue IT Systems lesen die 1.0-Releases als Beginn einer Konsolidierung. Mit stabilen Schnittstellen wird Middleware zur Wiederverwendungseinheit; wir erwarten binnen Monaten ein Ökosystem von Dritt-Middleware — Guardrails, Kostenkontrollen, Audit-Logging. Durable Execution und Interrupt-basierte Freigaben werden zur Grundausstattung jedes Agent-Frameworks, nicht zum Unterscheidungsmerkmal.

Die offene Frage ist, wie viel Framework übrig bleibt, wenn Modelle mehr von der Schleife übernehmen. Wandern Planung und Tool-Auswahl in die Modelle selbst, schrumpfen Frameworks auf Runtime-Belange: Persistenz, Freigaben, Observability. Genau dort hat LangGraph seinen Einsatz platziert. Ob die create_agent-Abstraktion unverändert bis 2.0 hält, wird der eigentliche Test der Zusage vom 22. Oktober.

Quellen