Externe Agenten für Beobachtbarkeit und Auswertung registrieren (Vorschau)

Important

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

Important

Wenn Sie externe Agents mit anderen Microsoft Produkten und Diensten verwenden, müssen Sie alle relevanten Dokumentationen für solche Produkte und Dienste lesen und verwandte Risiken und Compliance-Überlegungen verstehen.

Wenn Sie externe Agents mit Drittanbieterservern, Agents, Code oder nicht Azure Direct-Modellen ("Drittanbietersysteme") verwenden, tun Sie dies auf eigenes Risiko. Drittanbietersysteme sind nicht Microsoft Produkte unter den Microsoft Produktbedingungen und unterliegen ihren eigenen Lizenzbedingungen von Drittanbietern. Sie sind für alle Nutzungs- und damit verbundenen Kosten verantwortlich.

Es wird empfohlen, alle Daten zu überprüfen, die mit Drittanbietersystemen geteilt und empfangen werden, und von Drittanbieterpraktiken für die Verarbeitung, Teilen, Aufbewahrung und den Speicherort von Daten Kenntnis zu haben. Ebenso ist es wichtig, die Datenpraktiken dieser nicht zu Foundry gehörenden Microsoft-Dienste und -Funktionen zu prüfen, wenn Sie sich mit ihnen verbinden oder sie integrieren.  Es liegt in Ihrer Verantwortung, zu verwalten, ob Ihre Daten außerhalb der Compliance- und geografischen Grenzen Ihrer Organisation und alle damit verbundenen Auswirkungen fließen und dass entsprechende Berechtigungen, Grenzen und Genehmigungen bereitgestellt werden.

Sie sind dafür verantwortlich, Anwendungen, die Sie im Kontext Ihrer spezifischen Anwendungsfälle erstellen, sorgfältig zu überprüfen und zu testen und alle geeigneten Entscheidungen und Anpassungen zu treffen. Dazu gehört die Implementierung ihrer eigenen verantwortungsvollen KI-Entschärfungen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Siehe den Transparenzhinweis des Foundry Agent Service.

mit Microsoft Foundry Agent Service können Sie Agents registrieren, die außerhalb von Foundry ausgeführt werden, auf jeder Cloud, lokal oder einem anderen Host, sodass Sie die Ablaufverfolgungsansicht und Auswertungserfahrung von Foundry verwenden können. Foundry speichert nur Registrierungsmetadaten für diese Agents. Sie hostet die Runtime nicht, fungiert nicht als Proxy und ruft sie nicht auf.

Externe Agents unterscheiden sich von benutzerdefinierten Agents der Steuerungsebene, die den Datenverkehr über ein AI-Gateway weiterleiten. Mit externen Agents behält Ihr Agent seinen vorhandenen Endpunkt bei und teilt nur die OpenTelemetry-Telemetrie. Es ist kein KI-Gateway erforderlich.

In diesem Artikel erfahren Sie, wie Sie:

  • Instrumentieren Sie einen externen Agent, damit er OpenTelemetry-Spans an Application Insights ausgibt.
  • Registrieren Sie den Agenten in Foundry als external-Agenten.
  • Überprüfen Sie die Traces im Foundry-Portal.
  • Führen Sie eine auf dem Trace basierende Bewertung für die erfasste Telemetrie des Agents aus.

Das folgende Diagramm zeigt den Datenfluss: Ihr externer Agent sendet OpenTelemetry-Spans mit einem gen_ai.agent.id-Attribut an eine mit Ihrem Foundry-Projekt verbundene Application Insights-Ressource. Ein separater Registrierungsaufruf erstellt den Agentdatensatz in Foundry. Das Foundry-Portal gleicht daraufhin Traces nach Agent-ID ab und zeigt sie in der Trance-Ansicht des Agents an.

Diagramm, das den Datenfluss für die Überwachbarkeit externer Agenten zeigt. Der externe Agent sendet OpenTelemetry-Spans an Application Insights, das mit der Trace-Ansicht im Foundry-Portal verbunden ist. Ein separater Registrierungsaufruf erstellt den Agenteneintrag im Foundry-Projekt.

Important

Externe Agenten sind in der Vorschau. Erstellen und Aktualisieren von Anforderungen erfordern den Foundry-Features: ExternalAgents=V1Preview Header. Aufrufer des SDK aktivieren dies, indem sie AIProjectClient mit allow_preview=True erstellen.

Voraussetzungen

  • Ein Foundry-Projekt, das mit einer Application Insights-Ressource verbunden ist.

  • Ein Agent, der außerhalb von Foundry ausgeführt wird und OpenTelemetry ausgeben kann, erstreckt sich auf diese Application Insights-Ressource.

  • Python 3.11 oder höher.

  • Foundry User-Rolle im Projekt.

  • Leser-Rolle oder Überwachungsleser-Rolle für die verbundene Application Insights-Ressource, um Traces anzuzeigen.

    Important

    Die Foundry-RBAC-Rollen wurden kürzlich umbenannt. Foundry User, Foundry Owner, Foundry Account Owner und Foundry Project Manager wurden zuvor Azure KI-Benutzer, Azure KI-Besitzer, Azure KI-Kontobesitzer und Azure AI Project Manager benannt. Möglicherweise werden die vorherigen Namen an einigen Stellen weiterhin angezeigt, während der Umbenennungsrollout ausgeführt wird. Die Rollen-IDs und Kernberechtigungen bleiben durch die Umbenennung unverändert.

  • DefaultAzureCredential Konfiguriert. Melden Sie sich mit az login an, oder richten Sie eine verwaltete Identität oder einen Dienstprinzipal ein.

  • (Nur zur Auswertung) Eine Azure OpenAI-Bereitstellung mit einem GPT-Modell, das den Chatabschluss unterstützt (z. B. gpt-5-mini).

Instrumentieren des externen Agents mit OpenTelemetry

Bevor Sie den Agent in Foundry registrieren, konfigurieren Sie ihn so, dass OpenTelemetry-Spans an die mit Ihrem Foundry-Projekt verbundene Application Insights-Ressource exportiert werden. Jeder Bereich muss das gen_ai.agent.id Attribut tragen, damit Foundry die Spanne der richtigen Agent-Registrierung zuordnen kann.

Installieren des Microsoft OpenTelemetry-Pakets

pip install "microsoft-opentelemetry[langchain]"

Konfigurieren des Exporters

Führen Sie diesen Code einmal beim Starten des Agents aus, bevor Sie Frameworkimporte durchführen, die instrumentiert werden sollten:

import os

os.environ.setdefault("AZURE_EXPERIMENTAL_ENABLE_GENAI_TRACING", "true")
os.environ.setdefault("OTEL_SEMCONV_STABILITY_OPT_IN", "gen_ai_latest_experimental")
os.environ.setdefault("OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT", "SPAN_AND_EVENT")

from microsoft.opentelemetry import use_microsoft_opentelemetry

# Human-readable name for the agent
AGENT_NAME = os.environ.get("AGENT_NAME", "weather-agent")
# Unique ID emitted as gen_ai.agent.id on every span.
# Foundry matches traces to registrations by this value.
OTEL_AGENT_ID = os.environ.get("OTEL_AGENT_ID", f"{AGENT_NAME}-v1")

use_microsoft_opentelemetry(
    enable_azure_monitor=True,
    azure_monitor_connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"],
    sampling_ratio=1.0,
    instrumentation_options={
        "fastapi": {"enabled": False},
        "langchain": {
            "enabled": True,
            "agent_id": OTEL_AGENT_ID,
            "agent_name": AGENT_NAME,
        },
    },
)

Legen Sie die APPLICATIONINSIGHTS_CONNECTION_STRING Umgebungsvariable auf dem Host fest, auf dem der Agent ausgeführt wird. Verwenden Sie die Verbindungszeichenfolge aus der Application Insights-Ressource, die mit Ihrem Foundry-Projekt verknüpft ist. Um die Verbindungszeichenfolge zu finden, öffnen Sie das Foundry-Portal, navigieren Sie zu Ihrem Projekt und wählen Sie Verwalten>>. Wählen Sie die Application Insights-Ressource aus, um die Verbindungszeichenfolge anzuzeigen. Öffnen Sie alternativ die Application Insights-Ressource direkt im Azure-Portal, und kopieren Sie die Verbindungszeichenfolge von der Seite Overview.

Nach der Konfiguration werden nachfolgende OpenTelemetry-Spans aus Ihrem Agent-Framework automatisch an Application Insights weitergeleitet. Jeder Span muss das gen_ai.agent.id-Attribut auf den Wert setzen, den Sie bei der Registrierung als otel_agent_id auswählen.

Wenn Ihr Agent-Framework dieses Attribut nicht automatisch festgelegt hat, fügen Sie es manuell hinzu:

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("agent-run") as span:
    span.set_attribute("gen_ai.agent.id", "travel-planner-agent-v1")
    # ... your agent logic ...

Tip

Für eine frameworkspezifische, automatische Instrumentierung (LangChain, LangGraph) kann die Microsoft OpenTelemetry-Distribution für Pythongen_ai.agent.id automatisch über instrumentation_options festlegen. Informationen zu .NET und JavaScript finden Sie unter .NET distro und JavaScript distro. Allgemeine Hinweise finden Sie unter Ablaufverfolgung für KI-Agent-Frameworks konfigurieren.

Registrieren des externen Agents in Foundry

Nachdem der Agent Spans an Application Insights ausgibt, registrieren Sie ihn in Foundry, damit diese Spans in der auf den Agent eingegrenzten Foundry-Traceansicht angezeigt werden. Durch die Registrierung wird in Foundry ein benannter Datensatz erstellt, der eingehende Traces (Abgleich über gen_ai.agent.id) mit der Foundry-Agent-Erfahrung verknüpft. Ohne diese Registrierung fließen Traces weiterhin in Application Insights, werden jedoch nicht in der Traceansicht für den Foundry-Agent angezeigt, und Sie können keine tracebasierten Auswertungen ausführen, die auf den Agent beschränkt sind.

Das SDK installieren

pip install azure-ai-projects>=2.3.0 azure-identity>=1.17.0

Erstellen der Registrierung

Sie können eine Registrierung im Foundry-Portal erstellen, indem Sie:

  1. Öffnen Sie Ihr Projekt und wählen Sie Build>Agenten>Neuer Agent.

  2. Wählen Sie "Externer Agent verknüpfen" aus.

  3. Geben Sie im daraufhin angezeigten Fenster den Agent-Namen, die Beschreibung und die OpenTelemetry-ID ein.

    Screenshot der Schaltfläche zum Verknüpfen eines externen Agents.

Überprüfen Sie die Traces im Foundry-Portal

Nachdem der Agent Datenverkehr sendet und Spans in Application Insights erfasst wurden (in der Regel nach 2 bis 5 Minuten), überprüfen Sie, ob im Foundry-Portal Traces angezeigt werden:

  1. Öffnen Sie das Foundry-Portal.

  2. Navigiere zu deinem Projekt.

  3. Wählen Sie "Agents" im linken Bereich aus.

  4. Wählen Sie den Namen des externen Agents aus (z. B. Reiseplaner-Agent).

  5. Wählen Sie die Registerkarte Traces aus, um die diesem Agenten zugeordneten Spans anzuzeigen.

Traces werden über die gen_ai.agent.id = <otel_agent_id> aus der Application Insights-Ressource abgeglichen, die mit dem Projekt verbunden ist. Sie können Eingaben, Ausgaben, Toolaufrufe und Latenz für jeden Bereich anzeigen.

Eine trace-basierte Evaluierung ausführen

Nachdem Ablaufverfolgungen in Application Insights eingegangen sind, können Sie Auswertungen direkt anhand dieser Ablaufverfolgungen durchführen. Die Erstellung eines separaten Datensatzes ist nicht erforderlich. Foundry löst Traces auf, indem die (project, agent_id) innerhalb eines Rückblickfensters abgeglichen wird.

Note

Trace-basierte Evaluierungen verwenden die OpenAI-kompatible evals API (project.get_openai_client().evals). Die systemnative project.evaluations Oberfläche unterstützt noch keine tracebasierte Auswertung.

otel_agent_id des Agenten auflösen

Um die ID des Agenten für Traces abzurufen, verwenden Sie Folgendes:

Öffnen Sie den externen Agent im Foundry-Portal, um seine Ablaufverfolgungen anzuzeigen. Verwenden Sie eine der SDK-Registerkarten, um den aufgelösten otel_agent_id Code abzurufen.

Erstellen und Ausführen der Auswertung

Verwenden Sie die otel_agent_id, um eine Auswertung der Traces anhand der vom Agent erfassten Telemetriedaten auszuführen. Eine vollständige exemplarische Vorgehensweise, die auch die Erstellung einer Bewertungsgruppe, die Konfiguration von Testkriterien und die Interpretation von Ergebnissen umfasst, finden Sie unter Trace-Bewertung (Vorschau).

Verwalten externer Agents

Verwenden Sie die gleichen SDK-Methoden zum Auflisten, Abrufen und Löschen externer Agents.

Externe Agents auflisten

Wählen Sie im Findry-Portal "Agents erstellen>" aus, um registrierte externe Agents anzuzeigen.

Löschen eines externen Agents

Verwenden Sie eine der SDK-Registerkarten, um die Registrierung eines externen Agents zu löschen. Das Löschen der Registrierung wirkt sich nicht auf den extern gehosteten Agent aus.

Referenz: AIProjectClient

Durch das Löschen der Registrierung wird der Agent aus dem Foundry-Portal entfernt, und in der Trace-Ansicht des Foundry-Agents werden keine Traces mehr angezeigt. Die Spans verbleiben in Application Insights, und der ausgeführte Agent ist davon nicht betroffen.

Problembehandlung

Problembehandlung bei fehlenden Traces

Wenn keine Spuren angezeigt werden, überprüfen Sie die folgenden Punkte:

  • Die Application Insights-Ressource ist mit dem Foundry-Projekt verbunden, in dem Sie den Agent registriert haben.
  • Die otel_agent_id in der Registrierung stimmt mit dem gen_ai.agent.id-Attribut der Spans überein.
  • Für den Agent-Prozess ist APPLICATIONINSIGHTS_CONNECTION_STRING auf die richtige Application Insights-Ressource festgelegt.
  • Spans entsprechen den OpenTelemetry-Semantikkonventionen für generative KI.

Weitere Anleitungen zur Problembehandlung finden Sie unter Problembehandlung bei Auswertungen und Beobachtbarkeitsproblemen.

Beheben von Registrierungsfehlern

Wenn create_version() (Python) oder createVersion() (JavaScript/TypeScript) fehlschlägt, überprüfen Sie die folgenden Elemente:

  • Sie haben allow_preview=True mit AIProjectClient erstellt (Python), oder Sie haben createVersion beim Aufruf von foundryFeatures: "ExternalAgents=V1Preview" übergeben (JavaScript/TypeScript). Ohne diese Opt-In werden externe Agent-Anforderungen abgelehnt.
  • Ihre Identität ist für das Projekt die Rolle Foundry-Benutzer (oder höher) zugewiesen.
  • Der Agentnamewert verwendet nur alphanumerische Zeichen, Bindestriche und Unterstriche.
  • Es ist kein Agent mit demselben Namen und einer anderen Art vorhanden. Verwenden Sie project.agents.get(), um zu überprüfen.

Aktuelle Einschränkungen

Die folgenden Foundry-Features werden für externe Agents derzeit nicht unterstützt: