AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

LangChain vs. LangGraph: Die Offiziellen sagen Ihnen, was Sie wählen sollen

Der Bereich der generativen KI entwickelt sich derzeit rasch weiter, und es entstehen neue Rahmenwerke und Technologien. Daher sollten sich die Leser darüber im Klaren sein, dass der in diesem Artikel dargestellte Inhalt aktuell sein kann. In diesem Artikel werden wir die beiden vorherrschenden Frameworks für die Erstellung von LLM-Anwendungen, LangChain und LangGraph, näher betrachten und ihre Stärken und Schwächen analysieren, um Ihnen bei der Auswahl des am besten geeigneten Tools zu helfen.

blank


 

LangChain und LangGraph Foundation Komponenten

Das Verständnis der grundlegenden Elemente beider Frameworks kann Entwicklern dabei helfen, ein tieferes Verständnis für die wesentlichen Unterschiede in der Handhabung der Kernfunktionen zu erlangen. In den folgenden Beschreibungen werden nicht alle Komponenten der beiden Frameworks aufgeführt, sie sollen jedoch ein klares Verständnis ihres Gesamtkonzepts vermitteln.

LangChain

LangChain kann auf zwei Arten verwendet werden: als sequentielle Kette von vordefinierten Befehlen (Chain) und als LangChain Agent, der sich in Bezug auf die Werkzeuge und die Organisation unterscheidet. Die Kette verwendet einen vordefinierten linearen Arbeitsablauf, während der Agent als Koordinator fungiert und dynamischere (nicht-lineare) Entscheidungen treffen kann.

  • KetteChains: Eine Kombination von Schritten, die Aufrufe von LLMs, Agenten, Tools, externen Datenquellen und prozeduralem Code enthalten können. Ketten können einen einzelnen Prozess auf der Grundlage logischer bedingter Verzweigungen in mehrere Pfade aufteilen.
  • Agent oder LLMWährend das LLM selbst in der Lage ist, Antworten in natürlicher Sprache zu generieren, kombiniert der Agent das LLM mit zusätzlichen Fähigkeiten, die es ihm ermöglichen, Schlussfolgerungen zu ziehen, das Werkzeug aufzurufen und zu versuchen, das Werkzeug aufzurufen, wenn es fehlschlägt.
  • Werkzeug: sind Codefunktionen, die in einer Kette aufgerufen oder von einem Agenten ausgelöst werden können, um mit einem externen System zu interagieren.
  • EingabeaufforderungSystem-Eingabeaufforderungen (um anzuzeigen, wie das Modell die Aufgabe erfüllen soll und welche Werkzeuge zur Verfügung stehen), eingespeiste Informationen aus externen Datenquellen (um mehr Kontext für das Modell zu liefern) und Benutzereingabeaufgaben.

LangGraph

LangGraph verfolgt einen anderen Ansatz bei der Erstellung von KI-Workflows. Wie der Name schon sagt, orchestriert es Workflows als Graph. Aufgrund seiner Fähigkeit, sich zwischen KI-Agenten, prozeduralem Code und anderen Tools zu bewegen, eignet es sich besser für komplexe Anwendungsszenarien, in denen lineare Ketten, Verzweigungsketten oder einfache Agentensysteme nicht ausreichen.LangGraph wurde entwickelt, um komplexere bedingte Logik und Rückkopplungsschleifen zu handhaben, und ist leistungsfähiger als LangChain.

  • GrafikLangGraph unterstützt auch zyklische Graphen, die Schleifen und Rückkopplungsmechanismen erzeugen, die einen mehrfachen Zugriff auf bestimmte Knoten ermöglichen.
  • KnotenpunktSchritt: Bezeichnet einen Schritt in einem Arbeitsablauf, z. B. eine LLM-Abfrage, einen API-Aufruf oder die Ausführung eines Tools.
  • Rand und bedingter RandKanten werden verwendet, um Knoten zu verbinden und den Informationsfluss so zu definieren, dass die Ausgabe eines Knotens als Eingabe für den nächsten verwendet wird. Bedingte Kanten ermöglichen den Informationsfluss von einem Knoten zum anderen, wenn bestimmte Bedingungen erfüllt sind. Der Entwickler kann diese Bedingungen individuell anpassen.
  • StaatDer Zustand ist eine entwicklerdefinierte Variable TypedDict-Objekt, die alle relevanten Informationen für die aktuelle Ausführung des Graphen enthält. Der Zustand ist eine vom Entwickler definierte Variable TypedDict-Objekt, die alle relevanten Informationen enthält, die für die aktuelle Ausführung des Graphen benötigt werden.LangGraph aktualisiert den Zustand automatisch an jedem Knoten.
  • Agent oder LLMDer LLM im Graphen ist nur für die Erzeugung von Textantworten auf Eingaben zuständig. Die Agentenfunktion hingegen ermöglicht es dem Graphen, mehrere Knoten zu enthalten, die verschiedene Komponenten des Agenten darstellen (z. B. Argumentation, Werkzeugauswahl und Werkzeugausführung). Der Agent kann entscheiden, welche Pfade er im Graphen einschlagen will, den Zustand des Graphen aktualisieren und mehr Aufgaben als nur die Texterzeugung durchführen.

Kurz gesagt, LangChain eignet sich besser für lineare und werkzeugbasierte Aufrufe, während LangGraph besser für komplexe, mehrpfadige und KI-Workflows mit Feedback-Mechanismen geeignet ist.

 

Unterschiede zwischen LangChain und LangGraph in der Art und Weise, wie die Kernfunktionen gehandhabt werden

LangGraph und LangChain überschneiden sich in einigen ihrer Fähigkeiten, gehen aber unterschiedlich an das Problem heran; LangChain konzentriert sich auf lineare Workflows (über Ketten) oder verschiedene KI-Agenten-Muster, während LangGraph sich auf die Erstellung flexiblerer, feinkörniger, prozessbasierter Workflows konzentriert, die KI-Agenten einbeziehen können, Werkzeugaufrufe, prozeduralen Code, etc.

Im Allgemeinen hat LangChain eine relativ niedrige Lernkurve, da es eine stärkere Abstraktionskapselung und vordefinierte Konfigurationen bietet, was die Anwendung von LangChain auf einfache Nutzungsszenarien erleichtert. LangGraph hingegen erlaubt eine feinere Anpassung des Workflow-Designs, was bedeutet, dass es weniger abstrakt ist und Entwickler mehr lernen müssen, um es effektiv zu nutzen.

Werkzeuganrufe

LangChain

In LangChain hängt die Art und Weise, wie ein Werkzeug aufgerufen wird, davon ab, ob eine Reihe von Schritten in der Kette sequentiell ausgeführt werden oder ob nur Agentenfähigkeiten verwendet werden (die nicht explizit in der Kette definiert sind).

  • Die Werkzeuge werden als vordefinierte Schritte in die Kette aufgenommen, was bedeutet, dass sie nicht unbedingt dynamisch vom Agenten aufgerufen werden, sondern dass zum Zeitpunkt der Gestaltung der Kette entschieden wird, welche Werkzeuge aufgerufen werden.
  • Wenn der Agent nicht in einer Kette definiert ist, hat er mehr Autonomie und kann anhand der Liste der Tools, auf die er Zugriff hat, entscheiden, welches Tool er wann aufruft.

Beispiel für einen Prozess für den Kettenansatz:

blank

Dies ist ein Beispiel für den Ablauf der Agentenmethode:

blank

LangGraph

In LangGraph wird ein Werkzeug in der Regel als ein Knoten im Graphen dargestellt. Enthält der Graph einen Agenten, so ist dieser dafür verantwortlich zu entscheiden, welches Werkzeug aufgerufen werden soll, und zwar auf der Grundlage seiner Argumentationsfähigkeit. Wenn der Agent ein Werkzeug auswählt, springt der Workflow zum entsprechenden Werkzeugknoten, um die Operation des Werkzeugs auszuführen. Die Kante zwischen dem Agenten und dem Werkzeugknoten kann bedingte Logik enthalten, die zusätzliche Entscheidungslogik hinzufügt, um zu entscheiden, ob ein Werkzeug ausgeführt werden soll oder nicht. Auf diese Weise kann der Entwickler eine feinere Kontrolle ausüben. Ist kein Agent im Graphen vorhanden, wird das Werkzeug ähnlich wie eine LangChain-Kette aufgerufen, d. h. das Werkzeug wird im Workflow auf der Grundlage der vordefinierten bedingten Logik ausgeführt.

Enthält ein Beispiel für den Ablauf von Diagrammen für Agenten:

blank

Beispiel für den Ablauf eines Diagramms ohne einen Agenten:

blank

Dialog über Geschichte und Erinnerung

LangChain

LangChain bietet eine eingebaute Abstraktionsschicht für die Verwaltung von Gesprächsverlauf und Speicher. Sie unterstützt die Speicherverwaltung auf verschiedenen Granularitätsebenen und kontrolliert so die Menge der Token Menge, vor allem auf folgende Weise:

  • Gesprächsverlauf der gesamten Sitzung (Gesprächsverlauf der gesamten Sitzung)
  • Zusammengefasste Version des Gesprächsverlaufs
  • Benutzerdefinierter Speicher (CDM)

Darüber hinaus können die Entwickler das Langzeitgedächtnissystem so anpassen, dass es den Dialogverlauf in einer externen Datenbank speichert und bei Bedarf relevante Erinnerungen abruft.

LangGraph

In LangGraph ist State für die Verwaltung des Speichers zuständig, der die Zustandsinformationen durch Aufzeichnung der zu jedem Zeitpunkt definierten Variablen festhält:

  • Dialog mit der Geschichte
  • Schritte zur Umsetzung des Mandats
  • Die letzte Ausgabe des Sprachmodells
  • Weitere wichtige Informationen

Der Zustand kann zwischen den Knoten weitergegeben werden, so dass jeder Knoten Zugriff auf den aktuellen Zustand des Systems hat. LangGraph selbst bietet jedoch keinen Langzeitspeicher über Sitzungen hinweg. Wenn Entwickler Speicher dauerhaft speichern müssen, können sie spezielle Knoten einführen, um Speicher und Variablen in einer externen Datenbank zu speichern und später abzurufen.

Gebrauchsfertige RAG-Fähigkeit

LangChain

LangChain unterstützt von Haus aus komplexe RAG Workflows und bietet eine Reihe von ausgefeilten Werkzeugen, um Entwicklern die Integration von RAG in ihre Anwendungen zu erleichtern. Zum Beispiel bietet es:

  • Dokument laden
  • Text-Parsing
  • Erstellung einbetten
  • Vektorspeicher
  • Retrieval Capabilities (Retrieval-Fähigkeiten)

Entwickler können die von LangChain zur Verfügung gestellten APIs (wie z.B. die langchain.document_loaders, undlangchain.embeddings im Gesang antworten langchain.vectorstores), um RAG-Workflows zu implementieren.

LangGraph

In LangGraph müssen die RAGs vom Entwickler entworfen und als Teil der Graphenstruktur implementiert werden. Zum Beispiel können Entwickler separate Knoten für jeden erstellen:

  • Dokument-Parsing
  • Einbettungsberechnung (Einbettungsberechnung)
  • Semantische Suche (Retrieval)

Diese Knoten können durch normale Kanten oder bedingte Kanten miteinander verbunden werden, und der Zustand der einzelnen Knoten kann zur Weitergabe von Informationen verwendet werden, um Daten zwischen verschiedenen Schritten der RAG-Pipeline auszutauschen.

Parallelität

LangChain

LangChain erlaubt die parallele Ausführung von mehreren Ketten oder Agenten, die mit der RunnableParallel Klasse, um grundlegende Parallelverarbeitung zu implementieren.

Wenn jedoch fortgeschrittenere parallele Berechnungen oder asynchrone Werkzeugaufrufe erforderlich sind, müssen Entwickler Python-Bibliotheken wie asyncio) Selbstimplementierung.

LangGraph

LangGraph unterstützt natürlich die parallele Ausführung von Knoten, solange es keine Abhängigkeiten zwischen diesen Knoten gibt (z.B. kann die Ausgabe eines LLM nicht als Eingabe für den nächsten verwendet werden). Das bedeutet, dass mehrere Agenten gleichzeitig ausgeführt werden können, sofern es sich nicht um voneinander abhängige Knoten handelt.

Wird auch von LangGraph unterstützt:

  • ausnutzen RunnableParallel Mehrere Diagramme ausführen
  • Mit Pythons asyncio Werkzeug zum parallelen Aufruf von Bibliotheken

Wiederholungslogik und Fehlerbehandlung

LangChain

Die Fehlerbehandlung von LangChain muss vom Entwickler explizit definiert werden, was über:

  • Einführung der Wiederholungslogik in der Kette (Wiederholungslogik)
  • Behandlung von Fehlern bei Tool-Anrufen im Agenten

LangGraph

LangGraph kann die Fehlerbehandlungslogik direkt in den Workflow einbetten, indem es die Fehlerbehandlung zu einem eigenen Knoten macht.

  • Wenn eine Aufgabe fehlschlägt, können Sie zu einem anderen Fehlerbehandlungsknoten springen oder es am aktuellen Knoten erneut versuchen.
  • Fehlgeschlagene Knoten werden einzeln erneut versucht, anstatt dass der gesamte Workflow erneut ausgeführt wird.
  • Auf diese Weise kann das Diagramm von der Fehlerstelle aus weiter ausgeführt werden, ohne bei Null beginnen zu müssen.

Wenn Ihre Aufgabe mehrere Schritte und Werkzeugaufrufe umfasst, kann dieser Fehlerbehandlungsmechanismus sehr wichtig sein.

 

Wie wählt man zwischen LangChain und LangGraph?

Entwickler können:

  • Nur LangChain verwenden
  • Nur LangGraph verwenden
  • LangChain und LangGraph zusammen verwenden

Es ist auch möglich, die Graphenstrukturierungsfunktionen von LangGraph mit anderen Agenten-Frameworks wie Microsofts AutoGen zu kombinieren, z.B. durch die Kombination des AutoGen Agent als ein Knoten von LangGraph.

LangChain und LangGraph haben beide ihre Vorteile, und die Wahl des richtigen Tools kann verwirrend sein.

Wann sollte man sich für LangChain entscheiden?

Wenn Entwickler schnell KI-Workflows erstellen müssen, sollten sie LangChain für die folgenden Situationen in Betracht ziehen:

  • lineare AufgabeVordefinierte Arbeitsabläufe für das Abrufen von Dokumenten, die Texterstellung, die Zusammenfassung usw.
  • AI Agent erfordert dynamische EntscheidungsfindungDie Steuerung von komplexen Prozessen ist jedoch nicht erforderlich.

Wann sollte man sich für LangGraph entscheiden?

Wenn das Anwendungsszenario einen nicht-linearen (nicht-linearen) Workflow erfordert, sollten Sie LangGraph für die folgenden Situationen in Betracht ziehen:

  • Die Aufgabe beinhaltet eine dynamische Interaktion zwischen mehreren Komponenten.
  • Erfordert bedingte Beurteilungen, komplexe Verzweigungslogik, Fehlerbehandlung oder parallele Ausführung.
  • Die Entwickler sind bereit, einige der von LangChain nicht angebotenen Funktionen selbst zu implementieren.

Wann sollte ich LangChain und LangGraph zusammen verwenden?

Wenn man die Vorteile der leicht verfügbaren Abstraktionsmöglichkeiten von LangChain (z.B. RAG-Komponenten, Dialogspeicher, etc.) und der nichtlinearen Orchestrierungsmöglichkeiten von LangGraph nutzen möchte, kann man in Betracht ziehen, beide zu verwenden.

Zusammen können die beiden ihre jeweiligen Stärken voll ausschöpfen, um flexiblere und leistungsfähigere KI-Workflows zu schaffen.

CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " LangChain vs. LangGraph: Die Offiziellen sagen Ihnen, was Sie wählen sollen

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)