LangChain LangSmith -- Observability
LangSmith ist die offizielle Observability-Plattform von LangChain, die Ihnen hilft, Ausführungsprozesse von Agents nachzuverfolgen, die Leistung zu überwachen und Probleme zu debuggen.
Was ist LangSmith
Wenn ein Agent im Hintergrund läuft, können Sie nicht sehen, was darin passiert — welche Modelle aufgerufen wurden, welche Tools ausgeführt wurden und wie viele Tokens jeder Schritt verbraucht hat. LangSmith löst dieses "Black-Box"-Problem.
| Funktionen | Beschreibung |
|---|---|
| Ausführungsverfolgung | Zeichnet den Ausführungsverlauf jedes Agent-Schritts auf |
| Leistungsüberwachung | Verfolgt den Zeitverbrauch und die Token-Nutzung jedes Aufrufs |
| Debug-Replay | Detaillierte Informationen zu historischen Ausführungen anzeigen |
| Evaluierungstests | Testsets erstellen, um die Agent-Leistung zu bewerten |
Schnellstart
Registrierung und Installation
$ pip install langsmith
Aufsmith.langchain.comregistrieren Sie ein Konto, erhalten Sie einen API Key und konfigurieren Sie ihn dann in .env:
Beispiel
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_pt_your_key_here
LANGCHAIN_PROJECT=my-agent-project
Automatisches Tracing
Beispiel
load_dotenv() # LangSmith-Konfiguration wird automatisch geladen
from langchain.agents import create_agent
from langchain.chat_models import init_chat_model
from langchain.messages import HumanMessage
from langchain.tools import tool
# Nach dem Setzen der Umgebungsvariablen werden alle Agent-Ausführungen automatisch verfolgt
# Kein zusätzlicher Code erforderlich!
@tool
def search_course(keyword: str) -> str:
"""Kurse suchen"""
return f"Suchergebnisse: Kurse zu {keyword}"
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0)
agent = create_agent(
model=model,
tools=[search_course],
system_prompt="Du bist der Assistent des Example-Tutorials.",
)
# Diese Ausführung wird automatisch in LangSmith aufgezeichnet
result = agent.invoke({
"messages": [HumanMessage(content="Python-Kurse suchen")]
})
# Öffne https://smith.langchain.com, um Trace-Aufzeichnungen anzuzeigen
print("Abgeschlossen. Bitte gehe in die LangSmith-Konsole, um Trace-Details anzuzeigen")
Trace-Aufzeichnungen anzeigen
In der LangSmith-Konsole kannst du den vollständigen Ablauf jeder Agent-Ausführung sehen:
- Ausführungs-Zeitleiste: Vollständige Zeitleiste vom Modellaufruf → Tool-Aufruf → erneutem Modellaufruf
- Ein-/Ausgabe: Die Eingabenachrichten und die vom Modell zurückgegebenen Ergebnisse für jeden Schritt
- Token-Nutzung: Token-Verbrauch und Kostenschätzung für jeden Modellaufruf
- Latenzanalyse: Zeitliche Verteilung der einzelnen Schritte
- Fehlermeldungen: Wenn in einem Schritt ein Fehler auftritt, können Sie den vollständigen Fehler-Stacktrace sehen
Manuelles Erstellen von Traces
Beispiel
# Verwenden Sie den @traceable-Decorator, um Funktionen zu markieren, die nachverfolgt werden müssen
@traceable
def process_user_query(query: str) -> dict:
"""Benutzeranfrage verarbeiten (diese Funktion wird separat nachverfolgt)"""
# Vorverarbeitung
cleaned = query.strip().lower()
# Agent aufrufen
result = agent.invoke({"messages": [HumanMessage(content=cleaned)]})
return {
"query": bereinigt,
"answer": result["messages"][-1].content,
}
# In LangSmith sehen Sie process_user_query als eigenständigen Schritt
result = process_user_query("Python-Kursempfehlungen")
print(result["answer"])
Allgemeine Konfiguration
| Umgebungsvariablen | Beschreibung | Beispiel |
|---|---|---|
| LANGCHAIN_TRACING_V2 | Tracing aktivieren (muss gesetzt sein auf) | wahr |
| LANGCHAIN_API_KEY | LangSmith API-Schlüssel | lsv2_pt_xxx |
| LANGCHAIN_PROJECT | Projektname (wird zum Gruppieren von Traces verwendet) | my-agent |
| LANGCHAIN_ENDPOINT | API-Endpunkt (Standard ist in Ordnung) | https://api.smith.langchain.com |
Andere ErweiterungenIn der Produktion wird empfohlen, die Trace-Sampling-Rate von LangSmith niedriger einzustellen (um die hohen Kosten für die Aufzeichnung aller Anfragen zu vermeiden), und vollständiges Tracing nur zu aktivieren, wenn Debugging erforderlich ist.