Unser Newsletter rund um technische Themen,
das Unternehmen und eine Karriere bei uns.

7 Minuten Lesezeit (1351 Worte)

KI-Workflows leicht gemacht: mit LangGraph zum intelligenten Agenten

In der heutigen Zeit greifen immer mehr Anwendungen auf Künstliche Intelligenz (KI) zurück, um komplexe Aufgaben zu lösen. Von Chatbots, die Kundenanfragen bearbeiten, bis zu automatisierten Planungssystemen – solche Anwendungen müssen oft mehr tun, als nur auf eine Anfrage zu antworten. Sie müssen eigenständig Entscheidungen treffen, verschiedene Schritte ausführen und manchmal auch flexibel Aufgaben planen und reflektieren. Solche Systeme werden als KI-Agenten bezeichnet.

Doch wie baut man solche Agenten? Und wie behält man die Kontrolle über die oft komplexen Abläufe, die damit einhergehen? Genau hier kommt LangGraph ins Spiel.

Was ist LangGraph und warum ist es wichtig?

LangGraph ist eine Open-Source Bibliothek für die Programmiersprachen Python und JavaScript. Sie richtet sich an Entwickler, die KI-Agenten bauen möchten – Systeme, die in der Lage sind, basierend auf Large Language Models (LLMs) Entscheidungen zu treffen und Workflows zu steuern.

Die zunehmende Leistungsfähigkeit von LLMs hat enorme Potenziale zur Automatisierung von Prozessen geschaffen. Die Modelle können heute weit mehr als nur Text generieren. Richtig eingesetzt können sie komplexe Aufgaben verstehen, Entscheidungen treffen und dynamische Workflows steuern. Doch um solche Systeme erfolgreich zu realisieren, braucht es die passenden Werkzeuge. LangGraph bietet hier eine praktische Lösung, um flexible Kontrollflüsse zu gestalten und die Komplexität zu beherrschen.

Grundprinzip von LangGraph

LangGraph basiert auf der Idee, Workflows als Graphen zu modellieren. Ein solcher Graph besteht aus Knoten (z. B. Verarbeitungsschritte) und Kanten (Verbindungen zwischen diesen Schritten). Die Kanten sind gerichtet, was bedeutet, dass sie eine festgelegte Richtung haben und den Fluss von einer Aufgabe zur nächsten bestimmen. Dabei können die Graphen auch Zyklen enthalten, sodass ein vorheriger Schritt im Workflow erneut durchlaufen werden kann.

In LangGraph werden die Knoten als Nodes und die Kanten als Edges bezeichnet. Ein Node könnte beispielsweise eine Anfrage an eine API oder ein KI-Modell darstellen. Eine Edge definiert, welcher Schritt basierend auf den Ergebnissen oder Bedingungen des vorherigen Schritts als Nächstes ausgeführt wird. Diese Struktur ermöglicht eine intuitive und flexible Modellierung von Prozessen. 

Kernkonzepte von LangGraph

LangGraph basiert auf wenigen grundlegenden Strukturen, die das Framework für den Aufbau einer Anwendung bilden:

  1. Graph: Das zentrale Element, das den Workflow abbildet. Der Graph besteht aus einem State, Nodes und Edges.
  2. State: Der Zustand, der während der Ausführung des Graphen zwischen den Nodes weitergegeben wird. Jeder Node aktualisiert den State durch seinen Rückgabewert. Das Schema des States kann in Python entweder als TypedDict oder Pydantic Model definiert werden.
  3. Nodes: Die Bausteine eines Workflows, in denen die Verarbeitung stattfindet. Ein Node ist eine aufrufbare Funktion, die als Argument den State übergeben bekommt. Im Node können Änderungen am State vorgenommen werden. Sie können klassischen Programmcode enthalten, wie Datenmanipulationen oder Berechnungen. Ebenso ist es möglich, KI-Modelle in Nodes einzubinden. Wichtig ist jedoch, dass LangGraph nicht ausschließlich für KI-Anwendungen gedacht ist, sondern auch für nicht KI-gestützte Workflows geeignet ist.
  4. Edges: Die Verbindungen zwischen den Nodes, die den logischen Ablauf definieren. Es wird zwischen normalen und bedingten Edges unterschieden. Bei normalen Edges folgt auf einen Node immer ein festgelegter Nachfolger. Bedingte Edges nutzen eine Funktion, um den Nachfolger auszuwählen.

Diese modulare Architektur macht LangGraph sehr leistungsfähig: Workflows können Stück für Stück aufgebaut, getestet und erweitert werden. Außerdem kann der Graph visualisiert werden, um den Ablauf besser nachvollziehen zu können. Dies erleichtert nicht nur das Debugging und die Fehlersuche, sondern dient auch als nützliches Werkzeug zur Dokumentation komplexer Workflows. Hier ist ein Beispiel einer Visualisierung aus der LangGraph Dokumentation: 

Was sind die Stärken von LangGraph?

Die Graph-basierte Struktur gibt Entwickler:innen ein hohes Maß an Kontrolle, die Abläufe zu gestalten. So können lineare, verschachtelte oder parallele Prozesse modelliert werden und verschiedene Szenarien von einfachen Agenten bis zu komplexen Multi-Agenten-Systemen umgesetzt werden.

Des Weiteren unterstützt LangGraph die Persistenz des Zustands. Der State kann nach jedem Schritt automatisch gespeichert werden. Dadurch können vergangene Ausführungen betrachtet und von einem beliebigen Schritt wieder aufgenommen werden. Außerdem eröffnet es die Möglichkeit, einer Anwendung ein Gedächtnis zu geben, um beispielsweise einem Chatbot die Beantwortung von Folgefragen zu ermöglichen.

Durch die Persistenz wird auch die 'Human-in-the-Loop' Funktionalität ermöglicht. Dies bedeutet, dass Menschen in kritischen Punkten eines Workflows eingreifen, den aktuellen State des Graphen einsehen, Änderungen vornehmen und die Ausführung des Graphen nach dem Eingriff fortsetzen können. 

Typische Anwendungsfälle für LangGraph

LangGraph eignet sich für eine Vielzahl von Anwendungen, bei denen komplexe Abläufe koordiniert werden müssen. Ein typischer Anwendungsbereich sind Chatbots, die über einfache Frage-Antwort-Szenarien hinausgehen. So können nicht nur Informationen bereitgestellt, sondern auch Aktionen ausführt werden, etwa das Buchen eines Termins oder das Versenden von Benachrichtigungen.

Ein weiteres wichtiges Einsatzgebiet sind RAG-Systeme (Retrieval-Augmented Generation). Hierbei handelt es sich um Agenten, die in der Lage sind, aktuelle Informationen aus externen Quellen abzurufen und diese in ihre Antworten zu integrieren. Dies ist besonders nützlich für dynamische Inhalte, wie beispielsweise tagesaktuelle Nachrichten.

Darüber hinaus wird LangGraph häufig für Planungsagenten verwendet. Diese Systeme können komplexe Aufgaben planen, überwachen und bei Bedarf dynamisch anpassen. Ein Beispiel ist die Einsatzplanung in der Logistik. Hier könnte ein Agent zunächst optimale Routen und Zeitpläne für ein Transportunternehmen erstellen. Wenn unerwartete Störungen wie Verkehrsbehinderungen auftreten, kann der Agent in Echtzeit neu planen und alternative Routen vorschlagen. 

Was hat LangGraph mit LangChain und LangSmith zu tun?

LangGraph steht oft in Verbindung mit zwei anderen Tools:

  • LangChain: Dieses Open-Source Framework bietet eine einfache Möglichkeit über ein standardisiertes Interface mit verschiedenen Sprachmodellen zu interagieren. Es ist ideal, wenn schnelle Abfragen oder einfache Workflows benötigt werden.
  • LangSmith: Ein kostenpflichtiges Monitoring-Tool, mithilfe dessen Anwendungen überwacht werden können. Es ermöglicht eine detaillierte Analyse, hilft bei der Fehlerdiagnose und bietet wertvolle Einblicke zur Optimierung.

Während jedes Tool unabhängig von den anderen genutzt werden kann, bietet ihre Kombination ein mächtiges Ökosystem für die Entwicklung und Verwaltung von KI-Agenten.

Darüber hinaus gibt es noch die LangGraph Platform – eine kommerzielle Lösung für die Bereitstellung von Agenten in Produktionsumgebungen, falls dies nicht selbst übernommen werden möchte. 

Technischer Einstieg in LangGraph

In dieser Einführung wird die Programmiersprache Python verwendet. Um mit LangGraph zu starten, könnt ihr die Bibliothek wie folgt installieren:

pip install langgraph

Nach der Installation könnt ihr einen ersten einfachen Workflow erstellen. Der erste Schritt besteht darin, den State zu definieren. In diesem Beispiel besteht er aus einer Nachricht, die vom Datentyp String sein muss:

from typing_extensions import TypedDict

class State(TypedDict):
    message: str 

Im nächsten Schritt erstellen wir einen Node, der den State als Eingabe erhält und mit einer festgelegten Ausgabe aktualisiert: 

def hello_world(state: State):
    return {"message": "Hello World!"} 

Nun bauen wir den Graphen zusammen. Hier wird der State sowie der Node registriert und mit den Edges wird der Kontrollfluss festgelegt. Anschließend wird der Graph kompiliert, damit er ausführbar wird: 

from langgraph.graph import StateGraph, START, END

graph_builder = StateGraph(State)
graph_builder.add_node("hello_world", hello_world)
graph_builder.add_edge(START, "hello_world")
graph_builder.add_edge("hello_world", END)

graph = graph_builder.compile() 

Jetzt können wir den Graphen ausführen, wobei ein State als Eingabe erwartet wird:

print(graph.invoke({"message": ""}))

Die Ausgabe ist der modifizierte State:

{'message': 'Hello World!'}

Von hier aus könnt ihr Schritt für Schritt komplexere Workflows aufbauen. Um einen echten Agenten zu erstellen, kann beispielsweise mit LangChain ein LLM integriert werden und dessen Ausgabe genutzt werden, um den weiteren Kontrollfluss zu steuern.

Fazit: Für wen lohnt sich LangGraph und wie startet man?

LangGraph ist ideal für Entwickler:innen, die ein hohes Maß an Flexibilität und gleichzeitig eine klare Struktur bei der Entwicklung von KI-Agenten benötigen. Durch die Möglichkeit, den Zustand eines Workflows persistent zu speichern und bei Bedarf fortzusetzen sowie durch die Unterstützung von Human-in-the-Loop-Szenarien, erhalten Entwickler:innen alle notwendigen Werkzeuge, um leistungsstarke und robuste Agenten zu erstellen. Diese Funktionen bieten nicht nur die nötige Flexibilität, um dynamische, anpassungsfähige Systeme zu entwickeln, sondern auch die Kontrolle, die für komplexe und fehlerresistente Anwendungen erforderlich ist.

Mit einer guten Dokumentation und einer aktiven Community ist der Einstieg einfach – und die Möglichkeiten nahezu unbegrenzt.

Wenn ihr Unterstützung bei der Umsetzung eurer LangGraph-Projekte benötigt, stehen wir euch gerne mit unserer Expertise zur Seite. Kontaktiert uns, um gemeinsam eure maßgeschneiderte Lösung zu entwickeln. 

Weiterführende Links

Die offizielle Dokumentation bietet weitere Details und Beispiele, um tiefer in LangGraph einzusteigen.

Seminarempfehlung

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Montag, 13. Januar 2025

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.

Weitere Artikel in der Kategorie