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, bis 2.0 keine Breaking Changes einzuführen. Wir prüfen create_agent und seine Middleware-Hooks, Checkpointer-basierte Persistenz, Human-in-the-Loop-Interrupts sowie die Migration von Legacy-Chains nach langchain-classic — und benennen, was stabile APIs weiterhin nicht lösen.

Die Kosten eines beweglichen Ziels

LangChain galt lange als instabil. Zwischen 2023 und 2025 wechselten Teams zunächst von Chains zu LCEL-Runnables und anschließend zu vorgefertigten Agenten. Jede Deprecation-Runde band Engineering-Zeit, ohne den fachlichen Nutzen des Systems zu verändern. Für Produktionssysteme wurde diese API-Fluktuation zum stärksten Argument gegen das Framework — und zu einem häufigen Grund, Agent-Loops selbst zu implementieren.

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 Zusammenfassungen ab einem Token-Schwellwert, PII-Redaktion, Aufruflimits und Human-in-the-Loop-Freigaben. Die Komposition folgt der Semantik von Webserver-Middleware: before_*-Hooks laufen in Deklarationsreihenfolge, after_*-Hooks rückwärts, wrap_*-Hooks verschachtelt. Diese Änderung prägt die tägliche Arbeit am stärksten, denn Verhalten, das früher einen Fork des Agent-Graphen verlangte, wird nun als eigenständige Komponente deklariert.

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.

Der Mechanismus hat zwei wichtige Grenzen. Ein Checkpointer speichert threadbezogenen Kurzzeitzustand und ersetzt kein Memory-System; Wissen über Threads hinweg benötigt das separate Store-Interface. Außerdem dedupliziert Checkpointing keine Seiteneffekte. Da ein Node beim Fortsetzen von vorn ausgeführt wird, müssen externe Aufrufe idempotent oder sauber 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 eigentliche Modernisierungspfad ersetzt Chain-Klassen durch Runnable-Komposition — prompt | model | parser — oder bei Tool-Nutzung durch create_agent. LLMChain ist seit Version 0.1.17 deprecated; die Ersatz-APIs sind dokumentiert und nun stabil. Da die 0.3-Linie bis Dezember 2026 Sicherheitspatches und kritische Bugfixes erhält, besteht ein realistisches, aber endliches 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.

Offen bleibt, wie viel Framework nötig ist, wenn Modelle größere Teile der Schleife selbst übernehmen. Wandern Planung und Tool-Auswahl weiter in die Modelle, konzentrieren sich Frameworks auf Runtime-Aufgaben wie Persistenz, Freigaben und Observability. Genau auf diesen Bereich setzt LangGraph. Ob create_agent bis 2.0 tatsächlich unverändert bleibt, wird daher zum entscheidenden Test der Zusage vom 22. Oktober.

Quellen