LangGraph Studio bietet eine neue Möglichkeit zur Entwicklung von LLM-Anwendungen, indem es eine spezialisierte Agenten-IDE bereitstellt, die die Visualisierung, Interaktion und das Debuggen komplexer Agentenanwendungen ermöglicht
Mit visuellen Diagrammen und der Möglichkeit, den Status zu bearbeiten, können Sie die Arbeitsabläufe der Agenten besser verstehen und schneller iterieren. LangGraph Studio lässt sich in LangSmith integrieren, sodass Sie mit Teamkollegen zusammenarbeiten können, um Fehlermodi zu debuggen.
Während der Betaphase steht LangGraph Studio allen LangSmith-Benutzern aller Tarifstufen kostenlos zur Verfügung. Melden Sie sich hier bei LangSmith an.
Laden Sie die neueste .dmg
Datei von LangGraph Studio herunter, indem Sie hier klicken oder die Veröffentlichungsseite besuchen.
Derzeit wird nur macOS unterstützt. Die Unterstützung für Windows und Linux ist in Kürze verfügbar. Wir sind auch darauf angewiesen, dass die Docker Engine läuft. Derzeit unterstützen wir nur die folgenden Laufzeiten:
LangGraph Studio erfordert Docker-Compose Version 2.22.0+ oder höher. Bitte stellen Sie sicher, dass Docker Desktop oder Orbstack installiert ist und ausgeführt wird, bevor Sie fortfahren.
Um LangGraph Studio zu verwenden, stellen Sie sicher, dass Sie ein Projekt mit einer eingerichteten LangGraph-App haben.
Für dieses Beispiel verwenden wir dieses Beispiel-Repository, das eine Datei requirements.txt
für Abhängigkeiten verwendet:
git clone https://github.com/langchain-ai/langgraph-example.git
Wenn Sie stattdessen eine pyproject.toml
Datei zum Verwalten von Abhängigkeiten verwenden möchten, können Sie dieses Beispiel-Repository verwenden.
git clone https://github.com/langchain-ai/langgraph-example-pyproject.git
Anschließend möchten Sie eine .env
Datei mit den relevanten Umgebungsvariablen erstellen:
cp .env.example .env
Anschließend sollten Sie die .env
Datei öffnen und die relevanten OpenAI-, Anthropic- und Tavily-API-Schlüssel eingeben.
Wenn Sie sie bereits in Ihrer Umgebung festgelegt haben, können Sie sie mit den folgenden Befehlen in dieser .env-Datei speichern:
echo " OPENAI_API_KEY= " $OPENAI_API_KEY " " > .env
echo " ANTHROPIC_API_KEY= " $ANTHROPIC_API_KEY " " >> .env
echo " TAVILY_API_KEY= " $TAVILY_API_KEY " " >> .env
Hinweis: Fügen Sie der .env-Datei KEINEN LANGSMITH_API_KEY hinzu. Wir erledigen dies automatisch für Sie, wenn Sie sich authentifizieren. Eine manuelle Einstellung kann jedoch zu Fehlern führen.
Sobald Sie das Projekt eingerichtet haben, können Sie es in LangGraph Studio verwenden. Lass uns eintauchen!
Wenn Sie die LangGraph Studio-Desktop-App zum ersten Mal öffnen, müssen Sie sich über LangSmith anmelden.
Sobald Sie sich erfolgreich authentifiziert haben, können Sie den zu verwendenden LangGraph-Anwendungsordner auswählen – entweder per Drag-and-Drop oder manuell in der Dateiauswahl. Wenn Sie das Beispielprojekt verwenden, wäre der Ordner langgraph-example
.
Wichtig
Das von Ihnen ausgewählte Anwendungsverzeichnis muss die korrekt konfigurierte Datei langgraph.json
enthalten. Weitere Informationen zur Konfiguration finden Sie hier und zur Einrichtung einer LangGraph-App hier.
Sobald Sie ein gültiges Projekt auswählen, startet LangGraph Studio einen LangGraph-API-Server und Sie sollten eine Benutzeroberfläche mit Ihrem gerenderten Diagramm sehen.
Jetzt können wir das Diagramm ausführen! Mit LangGraph Studio können Sie Ihr Diagramm mit verschiedenen Eingaben und Konfigurationen ausführen.
So starten Sie einen neuen Lauf:
agent
. Die Liste der Diagramme entspricht den graphs
in Ihrer langgraph.json
-Konfiguration.Input
.Submit
um das ausgewählte Diagramm aufzurufen.Das folgende Video zeigt, wie man einen neuen Lauf startet:
Um die Konfiguration für einen bestimmten Diagrammlauf zu ändern, klicken Sie im Abschnitt Input
auf die Schaltfläche Configurable
. Klicken Sie dann auf Submit
um das Diagramm aufzurufen.
Wichtig
Damit das Menü Configurable
sichtbar ist, stellen Sie sicher, dass Sie beim Erstellen StateGraph
das Konfigurationsschema angeben. Weitere Informationen zum Hinzufügen eines Konfigurationsschemas zu Ihrem Diagramm finden Sie hier.
Das folgende Video zeigt, wie Sie die Konfiguration bearbeiten und einen neuen Lauf starten:
Wenn Sie LangGraph Studio öffnen, befinden Sie sich automatisch in einem neuen Thread-Fenster. Wenn Sie einen bestehenden Thread geöffnet haben, befolgen Sie diese Schritte, um einen neuen Thread zu erstellen:
+
, um ein neues Thread-Menü zu öffnen.Das folgende Video zeigt, wie man einen Thread erstellt:
So wählen Sie einen Thread aus:
New Thread
/ Thread <thread-id>
um eine Dropdown-Liste mit Threads zu öffnen.Das folgende Video zeigt, wie man einen Thread auswählt:
Mit LangGraph Studio können Sie den Thread-Status bearbeiten und die Threads verzweigen, um eine alternative Diagrammausführung mit dem aktualisierten Status zu erstellen. Um es zu tun:
Fork
um den Status zu aktualisieren und eine neue Diagrammausführung mit dem aktualisierten Status zu erstellen.Das folgende Video zeigt, wie man einen Thread im Studio bearbeitet:
Möglicherweise möchten Sie Ihr Diagramm Schritt für Schritt ausführen oder die Diagrammausführung vor/nach der Ausführung eines bestimmten Knotens stoppen. Sie können dies tun, indem Sie Interrupts hinzufügen. Interrupts können für alle Knoten (dh schrittweises Durchlaufen der Agentenausführung) oder für bestimmte Knoten festgelegt werden. Ein Interrupt in LangGraph Studio bedeutet, dass die Diagrammausführung sowohl vor als auch nach der Ausführung eines bestimmten Knotens unterbrochen wird.
Um die Agentenausführung Schritt für Schritt zu durchlaufen, können Sie Interrupts zu allen oder einer Teilmenge von Knoten im Diagramm hinzufügen:
Interrupt
.Interrupt on all
.Das folgende Video zeigt, wie man allen Knoten Interrupts hinzufügt:
+
angezeigt werden.+
um das ausgewählte Diagramm aufzurufen.Input
/Konfiguration hinzufügen und Submit
klickenDas folgende Video zeigt, wie man Interrupts zu einem bestimmten Knoten hinzufügt:
Um den Interrupt zu entfernen, befolgen Sie einfach denselben Schritt und drücken Sie x
-Taste auf der linken Seite des Knotens.
Zusätzlich zum Unterbrechen auf einem Knoten und Bearbeiten des Diagrammstatus möchten Sie möglicherweise Human-in-the-Loop-Workflows mit der Möglichkeit unterstützen, den Status manuell zu aktualisieren. Hier ist eine modifizierte Version von agent.py
mit agent
und human
Knoten, bei der die Diagrammausführung auf human
Knoten unterbrochen wird. Dadurch können Sie Eingaben als Teil des human
Knotens senden. Dies kann nützlich sein, wenn Sie möchten, dass der Agent Benutzereingaben erhält. Dies ersetzt im Wesentlichen die Verwendung input()
wenn Sie dies über die Befehlszeile ausführen würden.
from typing import TypedDict , Annotated , Sequence , Literal
from langchain_core . messages import BaseMessage , HumanMessage
from langchain_anthropic import ChatAnthropic
from langgraph . graph import StateGraph , END , add_messages
class AgentState ( TypedDict ):
messages : Annotated [ Sequence [ BaseMessage ], add_messages ]
model = ChatAnthropic ( temperature = 0 , model_name = "claude-3-sonnet-20240229" )
def call_model ( state : AgentState ) -> AgentState :
messages = state [ "messages" ]
response = model . invoke ( messages )
return { "messages" : [ response ]}
# no-op node that should be interrupted on
def human_feedback ( state : AgentState ) -> AgentState :
pass
def should_continue ( state : AgentState ) -> Literal [ "agent" , "end" ]:
messages = state [ 'messages' ]
last_message = messages [ - 1 ]
if isinstance ( last_message , HumanMessage ):
return "agent"
return "end"
workflow = StateGraph ( AgentState )
workflow . set_entry_point ( "agent" )
workflow . add_node ( "agent" , call_model )
workflow . add_node ( "human" , human_feedback )
workflow . add_edge ( "agent" , "human" )
workflow . add_conditional_edges (
"human" ,
should_continue ,
{
"agent" : "agent" ,
"end" : END ,
},
)
graph = workflow . compile ( interrupt_before = [ "human" ])
Das folgende Video zeigt, wie Sie bei einer Unterbrechung manuell Statusaktualisierungen (in unserem Beispiel Nachrichten) senden können:
Mit LangGraph Studio können Sie Ihre Projektkonfiguration ( langgraph.json
) interaktiv ändern.
Gehen Sie folgendermaßen vor, um die Konfiguration im Studio zu ändern:
Configure
. Dadurch wird ein interaktives Konfigurationsmenü mit den Werten geöffnet, die der vorhandenen langgraph.json
entsprechen.Save and Restart
um den LangGraph-API-Server mit der aktualisierten Konfiguration neu zu laden.Das folgende Video zeigt, wie Sie die Projektkonfiguration im Studio bearbeiten:
Mit LangGraph Studio können Sie Ihren Diagrammcode ändern und die Änderungen live mit dem interaktiven Diagramm synchronisieren.
Gehen Sie folgendermaßen vor, um Ihr Diagramm im Studio zu ändern:
Open in VS Code
. Dadurch wird das Projekt geöffnet, das derzeit in LangGraph Studio geöffnet ist..py
Dateien vor, in denen das kompilierte Diagramm definiert ist, oder an den zugehörigen Abhängigkeiten.Das folgende Video zeigt, wie man den Code-Editor aus dem Studio öffnet:
Nachdem Sie den zugrunde liegenden Code geändert haben, können Sie auch einen Knoten im Diagramm wiedergeben. Wenn beispielsweise ein Agent schlecht reagiert, können Sie die Implementierung des Agentenknotens in Ihrem Code-Editor aktualisieren und erneut ausführen. Dies kann die Iteration auf Agenten mit langer Laufzeit erheblich erleichtern.
LangGraph Studio verlässt sich auf Docker Compose, um die API, Redis und Postgres auszuführen, wodurch wiederum ein eigenes Netzwerk erstellt wird. Um auf lokale Dienste zuzugreifen, müssen Sie daher host.docker.internal
als Hostnamen anstelle von localhost
verwenden. Weitere Einzelheiten finden Sie unter Nr. 112.
Standardmäßig versuchen wir, das Image so klein wie möglich zu machen, daher fehlen einige Abhängigkeiten wie gcc
oder build-essentials
im Basisimage. Wenn Sie zusätzliche Abhängigkeiten installieren müssen, können Sie dies tun, indem Sie zusätzliche Dockerfile-Anweisungen im Abschnitt dockerfile_lines
Ihrer langgraph.json
-Datei hinzufügen:
{
"dockerfile_lines": [
"RUN apt-get update && apt-get install -y gcc"
]
}
Weitere Informationen finden Sie unter So passen Sie Dockerfile an.