Ich habe die SmolAgents von Hugging Face ausprobiert, um KI-Agenten in ein paar Codezeilen zu erstellen, und es hat bei mir perfekt funktioniert. Vom Bau eines Forschungsagent Zu Agentischer Lappenes struggle eine nahtlose Erfahrung. Die SmolAgents von Hugging Face bieten eine einfache und effiziente Möglichkeit, KI-Agenten für verschiedene Aufgaben zu erstellen, wie z. B. Rechercheunterstützung, Beantwortung von Fragen und mehr. Die Einfachheit des Frameworks ermöglicht es Entwicklern, sich auf die Logik und Funktionalität ihrer KI-Agenten zu konzentrieren, ohne sich in komplexen Konfigurationen zu verlieren. Das Debuggen von Multi-Agent-Läufen ist jedoch aufgrund ihrer unvorhersehbaren Arbeitsabläufe und umfangreichen Protokolle eine Herausforderung und die meisten Fehler sind häufig „LLM-dumme“ Probleme, die das Modell in nachfolgenden Schritten selbst korrigiert. Eine zentrale Herausforderung bleibt die Suche nach wirksamen Methoden zur Validierung und Inspektion dieser Läufe. Hier ist OpenTelemetry ist praktisch. Mal sehen, wie es funktioniert!
Warum ist die Ausführung des Debugging-Agenten schwierig?
Aus folgenden Gründen ist die Ausführung des Debug-Brokers schwierig:
- Unvorhersehbarkeit: KI-Agenten sind auf Flexibilität und Kreativität ausgelegt, was bedeutet, dass sie nicht immer einem festen Weg folgen. Dies macht es schwierig, genau vorherzusagen, was sie tun werden, und daher ist es schwierig, Fehler zu beheben, wenn etwas schief geht.
- Komplexität: KI-Agenten führen oft viele Schritte in einem einzigen Lauf aus und jeder Schritt kann viele Protokolle (Nachrichten oder Daten darüber, was passiert) generieren. Dies kann Sie schnell überfordern, wenn Sie herausfinden möchten, was schief gelaufen ist.
- Fehler sind oft geringfügig: Viele Fehler bei Agentenläufen sind kleine Fehler (z. B. wenn der LLM falschen Code schreibt oder eine falsche Entscheidung trifft), die der Agent im nächsten Schritt selbst behebt. Diese Fehler sind nicht immer kritisch, erschweren jedoch die Nachverfolgung des Geschehens.
Welche Bedeutung hat die Anmeldung beim Agent Run?
Unter Protokoll versteht man die Aufzeichnung dessen, was während einer Agentenausführung passiert. Dies ist wichtig, weil:
- Debuggen: Wenn etwas schief geht, können Sie anhand der Protokolle herausfinden, was passiert ist.
- Überwachung: In der Produktion (wenn Ihr Agent von echten Benutzern verwendet wird) müssen Sie seine Leistung im Auge behalten. Protokolle helfen Ihnen dabei.
- Verbesserung: Durch die Überprüfung von Protokollen können Sie Muster oder wiederkehrende Probleme erkennen und Ihren Agenten im Laufe der Zeit verbessern.
Was ist OpenTelemetry?
OpenTelemetry ist ein Commonplace für Instrumentierungwas bedeutet, dass es Instruments bereitstellt, mit denen Sie automatisch aufzeichnen (oder „protokollieren“) können, was in Ihrer Software program geschieht. In diesem Fall wird es zum Protokollieren von Agentenausführungen verwendet.
Wie funktioniert es?
- Du fügst etwas hinzu Instrumentierungscode an Ihren Agenten. Dieser Code ändert nichts an der Funktionsweise des Agenten; Es zeichnet lediglich auf, was passiert.
- Wenn Ihr Agent ausgeführt wird, protokolliert OpenTelemetry automatisch alle Schritte, Fehler und andere wichtige Particulars.
- Diese Protokolle werden an eine Plattform (z. B. ein Dashboard oder ein Überwachungstool) gesendet, wo Sie sie später überprüfen können.
Warum ist das hilfreich?
- Benutzerfreundlichkeit: Sie müssen den Protokollierungscode nicht überall manuell hinzufügen. OpenTelemetry erledigt das für Sie.
- Standardisierung: OpenTelemetry ist ein weit verbreiteter Commonplace und funktioniert daher mit vielen Instruments und Plattformen.
- Klarheit: Die Protokolle sind strukturiert und organisiert, sodass Sie leichter verstehen können, was während einer Agentenausführung passiert ist.
Die Protokollierung von Agentenläufen ist unerlässlich, da KI-Agenten komplex und unvorhersehbar sind. Mit OpenTelemetry ist es einfach, Vorgänge automatisch aufzuzeichnen und zu überwachen, sodass Sie Probleme beheben, die Leistung verbessern und sicherstellen können, dass in der Produktion alles reibungslos läuft.
Wie verwende ich OpenTelemetry?
Dieses Skript richtet eine Python-Umgebung mit bestimmten Bibliotheken ein und konfiguriert OpenTelemetry für die Ablaufverfolgung. Hier ist eine Schritt-für-Schritt-Erklärung:
Hier habe ich die Abhängigkeiten installiert, benötigte Module importiert und OpenTelemetry im Terminal eingerichtet.
Abhängigkeiten installieren
!pip set up smolagents
!pip set up arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp openinference-instrumentation-smolagents
- Smolagenzien: Eine Bibliothek zum Erstellen einfacher Agenten (wahrscheinlich für KI- oder Automatisierungsaufgaben).
- arize-phoenix: Ein Device zum Überwachen und Debuggen von Modellen für maschinelles Lernen.
- opentelemetry-sdk: Das OpenTelemetry SDK zum Instrumentieren, Generieren und Exportieren von Telemetriedaten (Spuren, Metriken, Protokolle).
- opentelemetry-exporter-otlp: Ein Exporter zum Senden von Telemetriedaten im OTLP-Format (OpenTelemetry Protocol).
- openinference-instrumentation-smolagents: Eine Bibliothek, die Smolagents instrumentiert, um automatisch OpenTelemetry-Spuren zu generieren.
Erforderliche Module importieren
from opentelemetry import hint
from opentelemetry.sdk.hint import TracerProvider
from opentelemetry.sdk.hint.export import BatchSpanProcessor
from openinference.instrumentation.smolagents import SmolagentsInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.hint.export import ConsoleSpanExporter, SimpleSpanProcessor
- verfolgen: Die OpenTelemetry-Tracing-API.
- TracerProvider: Die zentrale Komponente zum Erstellen und Verwalten von Traces.
- BatchSpanProcessor: Verarbeitet Spannen stapelweise für einen effizienten Export.
- SmolagentsInstrumentor: Instrumentiert Smolagenzien automatisch, um Spuren zu erzeugen.
- OTLPSpanExporter: Exportiert Traces mithilfe des OTLP-Protokolls über HTTP.
- ConsoleSpanExporter: Exportiert Traces in die Konsole (zum Debuggen).
- SimpleSpanProcessor: Prozesse umfassen jeweils einen Prozess (nützlich zum Debuggen oder zur Ablaufverfolgung bei geringem Volumen).
Richten Sie die OpenTelemetry-Ablaufverfolgung ein
endpoint = "http://0.0.0.0:6006/v1/traces"
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))
- Endpunkt: Die URL, an die Traces gesendet werden (in diesem Fall http://0.0.0.0:6006/v1/traces).
- Trace_Provider: Erstellt eine neue TracerProvider-Instanz.
- add_span_processor: Fügt dem Anbieter einen Span-Prozessor hinzu. Hier verwendet es SimpleSpanProcessor, um Traces über OTLPSpanExporter an den angegebenen Endpunkt zu senden.
Instrument Smolagenzien
SmolagentsInstrumentor().instrument(tracer_provider=trace_provider)
Diese Zeile instrumentiert die Smolagents-Bibliothek, um mithilfe des konfigurierten Trace_Providers automatisch Ablaufverfolgungen zu generieren.
- Installiert die erforderlichen Python-Bibliotheken.
- Konfiguriert OpenTelemetry zum Sammeln von Spuren von Smolagenten.
- Sendet die Traces mithilfe des OTLP-Protokolls an einen angegebenen Endpunkt (http://0.0.0.0:6006/v1/traces).
- Wenn Sie debuggen möchten, können Sie einen ConsoleSpanExporter hinzufügen, um Ablaufverfolgungen auf dem Terminal zu drucken.
Alle Particulars finden Sie hier: http://0.0.0.0:6006/v1/traces, um den Lauf Ihres Agenten zu überprüfen.
Führen Sie den Agenten aus
from smolagents import (
CodeAgent,
ToolCallingAgent,
ManagedAgent,
DuckDuckGoSearchTool,
VisitWebpageTool,
HfApiModel,
)
mannequin = HfApiModel()
agent = ToolCallingAgent(
instruments=(DuckDuckGoSearchTool(), VisitWebpageTool()),
mannequin=mannequin,
)
managed_agent = ManagedAgent(
agent=agent,
title="managed_agent",
description="That is an agent that may do net search.",
)
manager_agent = CodeAgent(
instruments=(),
mannequin=mannequin,
managed_agents=(managed_agent),
)
manager_agent.run(
"If the US retains its 2024 progress charge, what number of years will it take for the GDP to double?"
)
So sehen die Protokolle aus:
Abschluss
Zusammenfassend lässt sich sagen, dass das Debuggen von AI-Agent-Läufen aufgrund ihrer unvorhersehbaren Arbeitsabläufe, umfangreichen Protokollierung und selbstkorrigierenden kleineren Fehler komplex sein kann. Diese Herausforderungen unterstreichen die entscheidende Rolle effektiver Überwachungstools wie OpenTelemetry, die die erforderliche Transparenz und Struktur bieten, um das Debuggen zu optimieren, die Leistung zu verbessern und einen reibungslosen Agentenbetrieb sicherzustellen. Probieren Sie es selbst aus und entdecken Sie, wie OpenTelemetry Ihren KI-Agent-Entwicklungs- und Debugging-Prozess vereinfachen und es so einfacher machen kann, einen reibungslosen, zuverlässigen Betrieb zu erreichen.
Entdecken Sie die Das Agentic AI Pioneer-Programm um Ihr Verständnis der Agenten-KI zu vertiefen und ihr volles Potenzial auszuschöpfen. Begleiten Sie uns auf dieser Reise, um modern Erkenntnisse und Anwendungen zu entdecken!