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.

FunktionenBeschreibung
AusführungsverfolgungZeichnet den Ausführungsverlauf jedes Agent-Schritts auf
LeistungsüberwachungVerfolgt den Zeitverbrauch und die Token-Nutzung jedes Aufrufs
Debug-ReplayDetaillierte Informationen zu historischen Ausführungen anzeigen
EvaluierungstestsTestsets 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

# .env-Datei
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_pt_your_key_here
LANGCHAIN_PROJECT=my-agent-project

Automatisches Tracing

Beispiel

from dotenv import load_dotenv
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

from langsmith import traceable

# 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

UmgebungsvariablenBeschreibungBeispiel
LANGCHAIN_TRACING_V2Tracing aktivieren (muss gesetzt sein auf)wahr
LANGCHAIN_API_KEYLangSmith API-Schlüssellsv2_pt_xxx
LANGCHAIN_PROJECTProjektname (wird zum Gruppieren von Traces verwendet)my-agent
LANGCHAIN_ENDPOINTAPI-Endpunkt (Standard ist in Ordnung)https://api.smith.langchain.com

In 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.

Andere Erweiterungen