Freigeben über


Agent-Einblicke

Wichtig

Sie müssen Teil des Frontier-Vorschauversionsprogramms sein, um Vorabzugriff auf Microsoft Agent 365 zu erhalten. Frontier verbindet Sie direkt mit den neuesten KI-Innovationen von Microsoft. Frontier-Vorschauversionen unterliegen den bestehenden Vorschauversionsbedingungen Ihrer Kundenvereinbarungen. Da sich diese Funktionen noch in der Entwicklung befinden, können sich ihre Verfügbarkeit und Merkmale im Laufe der Zeit ändern.

Um am Agent 365-Ökosystem teilzunehmen, müssen Sie Agent 365 Einblicke-Funktionen zu Ihrem Agent hinzufügen. Der Agent 365 Einblicke baut auf OpenTelemetry (OTel) auf und bietet ein einheitliches Framework zum konsistenten und sicheren Erfassen von Telemetrie auf allen Agentplattformen. Durch die Implementierung dieser erforderlichen Komponente aktivieren Sie IT-Administratoren, die Aktivitäten Ihres Agents im Microsoft Admin Center (MAC) zu überwachen und Sicherheitsteams die Verwendung von Defender und Purview für die Compliance- und Bedrohungserkennung zu ermöglichen.

Wesentliche Vorteile

  • End-to-End-Sichtbarkeit: Erfassen Sie umfassende Telemetrie für jeden Agent-Aufruf, einschließlich Sitzungen, Toolanrufe und Ausnahmen, sodass Sie plattformübergreifend vollständig nachverfolgt werden können.
  • Sicherheit & Compliance Enablement: Führen Sie einheitliche Überwachungsprotokolle in Defender und Purview ein, um erweiterte Sicherheitsszenarien und Compliance-Berichte für Ihren Agent zu ermöglichen.
  • Plattformübergreifende Flexibilität: Bauen Sie auf OTel-Standards auf, und unterstützen Sie verschiedene Laufzeiten und Plattformen wie Copilot Studio, Foundry und zukünftige Agent-Frameworks.
  • Betriebseffizienz für Administratoren: Bereitstellen einer zentralen Observability in MAC, Reduzierung der Problembehandlungszeit und Verbesserung der Governance mit rollenbasierten Zugriffssteuerungen für IT-Teams, die Ihren Agent verwalten.

Installation

Verwenden Sie diese Befehle, um die Observability-Module für die von Agent 365 unterstützten Sprachen zu installieren.

pip install microsoft-agents-a365-observability-core
pip install microsoft-agents-a365-runtime

Konfiguration

Verwenden Sie die folgenden Einstellungen, um die Agent 365 Observability für Ihren Agenten zu aktivieren und anzupassen.

Die für Einblicke erforderlichen Umgebungsvariablen sind:

Umgebungsvariable Beschreibung
ENABLE_OBSERVABILITY=true Kennzeichnen, um die Ablaufverfolgung zu aktivieren/zu deaktivieren. Standardmäßig false
ENABLE_A365_OBSERVABILITY_EXPORTER=true True Exportiert Logs an unseren Service. Andernfalls fällt er auf den Konsolenexporteur zurück
from microsoft_agents_a365.observability.core import config

def token_resolver(agent_id: str, tenant_id: str) -> str | None:
    # Implement secure token retrieval here
    return "Bearer <token>"

config.configure(
    service_name="my-agent-service",
    service_namespace="my.namespace",
    token_resolver=token_resolver,
)

Schließen Sie den Tokenlöser aus, um sich bei der Konsole anzumelden.

Gepäckattribute

Wird verwendet BaggageBuilder , um Kontextinformationen festzulegen, die über alle Spannen in einer Anforderung fließen. Das SDK implementiert eine SpanProcessor Kopie aller nicht leeren Gepäckeinträge in neu gestartete Abschnitte, ohne vorhandene Attribute zu überschreiben.

from microsoft_agents_a365.observability.core.middleware.baggage_builder import BaggageBuilder

with (
    BaggageBuilder()
    .tenant_id("tenant-123")
    .agent_id("agent-456")
    .correlation_id("corr-789")
    .build()
):
    # Any spans started in this context will receive these as attributes
    pass

Tokenlöser

Wenn Sie den Agent 365-Exporter verwenden, müssen Sie eine Tokenlöserfunktion bereitstellen, die Authentifizierungstoken zurückgibt. Wenn Sie das Agent 365 Observability SDK mit dem Agent Hosting Framework verwenden, können Sie Token mithilfe der TurnContext Agent-Aktivitäten generieren

from microsoft_agents.activity import load_configuration_from_env
from microsoft_agents.authentication.msal import MsalConnectionManager
from microsoft_agents.hosting.aiohttp import CloudAdapter
from microsoft_agents.hosting.core import (
    AgentApplication,
    Authorization,
    MemoryStorage,
    TurnContext,
    TurnState,
)
from microsoft_agents_a365.runtime.environment_utils import (
    get_observability_authentication_scope,
)

agents_sdk_config = load_configuration_from_env(environ)

STORAGE = MemoryStorage()
CONNECTION_MANAGER = MsalConnectionManager(**agents_sdk_config)
ADAPTER = CloudAdapter(connection_manager=CONNECTION_MANAGER)
ADAPTER.use(TranscriptLoggerMiddleware(ConsoleTranscriptLogger()))
AUTHORIZATION = Authorization(STORAGE, CONNECTION_MANAGER, **agents_sdk_config)

AGENT_APP = AgentApplication[TurnState](
    storage=STORAGE, adapter=ADAPTER, authorization=AUTHORIZATION, **agents_sdk_config
)

@AGENT_APP.activity("message", auth_handlers=["AGENTIC"])
async def on_message(context: TurnContext, _state: TurnState):
    aau_auth_token = await AGENT_APP.auth.exchange_token(
                        context,
                        scopes=get_observability_authentication_scope(),
                        auth_handler_id="AGENTIC",
                    )
    # cache this auth token and return via token resolver

Automatische Instrumentierung

Die automatische Instrumentierung lauscht automatisch auf agentische Frameworks (SDKs) vorhandene Telemetriesignale für Ablaufverfolgungen und leitet sie an den Agent 365-Observability-Dienst weiter. Dadurch ist es für Entwickler nicht erforderlich, Überwachungscode manuell zu schreiben, das Setup zu vereinfachen und eine konsistente Leistungsnachverfolgung sicherzustellen.

Die automatische Instrumentierung wird über mehrere SDKs und Plattformen hinweg unterstützt:

Plattform Unterstützte SDKs / Frameworks
.NET Semantischer Kernel, OpenAI, Agent Framework
Python Semantischer Kernel, OpenAI, Agent Framework, LangChain
Node.js OpenAI

Anmerkung

Die Unterstützung für die automatische Instrumentierung variiert je nach Plattform- und SDK-Implementierung.

Semantischer Kernel

Die automatische Instrumentierung erfordert die Verwendung des Gepäckbauers. Legen Sie die Agent-ID und die Mandanten-ID mithilfe von BaggageBuilder.

Installieren des Pakets

pip install microsoft-agents-a365-observability-extensions-semantic-kernel

Konfigurieren des Einblicks

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.semantic_kernel import SemanticKernelInstrumentor

# Configure observability
configure(
    service_name="my-semantic-kernel-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
instrumentor = SemanticKernelInstrumentor()
instrumentor.instrument()

# Your Semantic Kernel code is now automatically traced

OpenAI

Die automatische Instrumentierung erfordert die Verwendung des Gepäckbauers. Legen Sie die Agent-ID und die Mandanten-ID mithilfe von BaggageBuilder.

Installieren Sie das -Paket.

pip install microsoft-agents-a365-observability-extensions-openai

Konfigurieren von Einblicken.

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.openai_agents import OpenAIAgentsTraceInstrumentor

# Configure observability
configure(
    service_name="my-openai-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
instrumentor = OpenAIAgentsTraceInstrumentor()
instrumentor.instrument()

# Your OpenAI Agents code is now automatically traced

Agenten-Framework

Die automatische Instrumentierung erfordert die Verwendung des Gepäckbauers. Legen Sie die Agent-ID und die Mandanten-ID mithilfe von BaggageBuilder fest.

Installieren des Pakets

pip install microsoft-agents-a365-observability-extensions-agent-framework

Konfigurieren des Einblicks

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.agentframework.trace_instrumentor import (
    AgentFrameworkInstrumentor,
)

# Configure observability
configure(
    service_name="AgentFrameworkTracingWithAzureOpenAI",
    service_namespace="AgentFrameworkTesting",
)

# Enable auto-instrumentation
AgentFrameworkInstrumentor().instrument()

LangChain-Framework

Die automatische Instrumentierung erfordert die Verwendung von BaggageBuilder. Legen Sie die Agent-ID und die Mandanten-ID mithilfe von BaggageBuilder.

Installieren Sie das -Paket.

pip install microsoft-agents-a365-observability-extensions-langchain

Konfigurieren des Einblicks

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.langchain import CustomLangChainInstrumentor

# Configure observability
configure(
    service_name="my-langchain-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
CustomLangChainInstrumentor()

# Your LangChain code is now automatically traced

Manuelle Instrumentierung

Agent 365 Observability SDK kann verwendet werden, um die interne Arbeit des Agents zu verstehen. Das SDK bietet drei Bereiche, die gestartet werden können: InvokeAgentScope, , ExecuteToolScopeund InferenceScope.

Agent-Aufruf

Dieser Bereich sollte zu Beginn des Agent-Prozesses verwendet werden. Mit dem Aufruf-Agent-Bereich erfassen Sie Eigenschaften wie den aktuellen Agent, der aufgerufen wird, Agent-Benutzerdaten usw.

from microsoft_agents_a365.observability.core.invoke_agent_scope import InvokeAgentScope
from microsoft_agents_a365.observability.core.invoke_agent_details import InvokeAgentDetails
from microsoft_agents_a365.observability.core.tenant_details import TenantDetails
from microsoft_agents_a365.observability.core.request import Request

invoke_details = InvokeAgentDetails(
    details=agent_details,        # AgentDetails instance
    endpoint=my_endpoint,         # Optional endpoint (with hostname/port)
    session_id="session-42"
)
tenant_details = TenantDetails(tenant_id="tenant-123")
req = Request(content="User asks a question")

with InvokeAgentScope.start(invoke_details, tenant_details, req):
    # Perform agent invocation logic
    response = call_agent(...)

Tool-Ausführung

Die folgenden Beispiele veranschaulichen, wie Sie die Toolausführung Ihres Agents mit Observability Tracking instrumentieren, um Telemetrie für Überwachungs- und Überwachungszwecke zu erfassen.

from microsoft_agents_a365.observability.core.execute_tool_scope import ExecuteToolScope
from microsoft_agents_a365.observability.core.tool_call_details import ToolCallDetails

tool_details = ToolCallDetails(
    tool_name="summarize",
    tool_type="function",
    tool_call_id="tc-001",
    arguments="{'text': '...'}",
    description="Summarize provided text",
    endpoint=None  # or endpoint object with hostname/port
)

with ExecuteToolScope.start(tool_details, agent_details, tenant_details):
    result = run_tool(tool_details)

Rückschluss

Die folgenden Beispiele zeigen, wie Sie KI-Modellableitungsaufrufe mit Observability Tracking zur Erfassung der Tokennutzung, Modelldetails und Antwortmetadaten instrumentieren.

from microsoft_agents_a365.observability.core.inference_scope import InferenceScope
from microsoft_agents_a365.observability.core.inference_call_details import InferenceCallDetails
from microsoft_agents_a365.observability.core.request import Request

inference_details = InferenceCallDetails(
    operationName=SomeEnumOrValue("chat"),
    model="gpt-4o-mini",
    providerName="azure-openai",
    inputTokens=123,
    outputTokens=456,
    finishReasons=["stop"],
    responseId="resp-987"
)
req = Request(content="Explain quantum computing simply.")

with InferenceScope.start(inference_details, agent_details, tenant_details, req):
    completion = call_llm(...)

Lokal überprüfen

Um zu überprüfen, dass Sie erfolgreich mit dem Observability-SDK integriert wurden, prüfen Sie die von Ihrem Agenten generierten Konsolenprotokolle.

Legen Sie die Umgebungsvariable ENABLE_A365_OBSERVABILITY_EXPORTER auf false fest. Diese Exporte umfassen (Ablaufverfolgungen) bis zur Konsole.

Beispielprotokolle

Die Logs können je nach Plattform leicht unterschiedlich aussehen.

Konsolenprotokoll Aufruf-Agenten-Spanne

Dieses Beispiel veranschaulicht eine typische Aufruf-Agenten-Spanne, die vom Konsolenexporter ausgedruckt wird, wenn die lokale Validierung aktiviert ist.

    {
    "name": "invoke_agent Azure OpenAI Agent",
    "context": {
        "trace_id": "0x4bd8f606688c3f3347d69c1b6539c957",
        "span_id": "0x0766d68605234692",
        "trace_state": "[]"
    },
    "kind": "SpanKind.CLIENT",
    "parent_id": null,
    "start_time": "2025-11-24T16:16:54.017403Z",
    "end_time": "2025-11-24T16:17:09.373357Z",
    "status": {
        "status_code": "UNSET"
    },
    "attributes": {
        "operation.source": "SDK",
        "correlation.id": "aaaa0000-bb11-2222-33cc-444444dddddd",
        "gen_ai.conversation.item.link": "http://localhost:56150/_connector",
        "gen_ai.agent.upn": "Delivery Agent",
        "gen_ai.agent.user.id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "gen_ai.caller.id": "bbbbbbbb-cccc-dddd-2222-333333333333",
        "gen_ai.caller.name": "Alex Wilber",
        "gen_ai.caller.upn": "Sample UPN",
        "gen_ai.channel.name": "msteams",
        "gen_ai.system": "az.ai.agent365",
        "gen_ai.operation.name": "invoke_agent",
        "gen_ai.agent.id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "gen_ai.agent.name": "Azure OpenAI Agent",
        "gen_ai.agent.description": "An AI agent powered by Azure OpenAI",
        "gen_ai.agent.applicationid": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "gen_ai.conversation.id": "__PERSONAL_CHAT_ID__",
        "tenant.id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "session.id": "__PERSONAL_CHAT_ID__",
        "gen_ai.execution.type": "HumanToAgent",
        "gen_ai.input.messages": "[\"hi, what can you do\"]",
        "gen_ai.output.messages": "[\"Hi! I can assist you with a variety of tasks, including answering questions, providing information on a wide range of topics, helping with problem-solving, offering writing assistance, and more. Just let me know what you need help with!\"]"
    },
    "events": [],
    "links": [],
    "resource": {
        "attributes": {
            "telemetry.sdk.language": "python",
            "telemetry.sdk.name": "opentelemetry",
            "telemetry.sdk.version": "1.38.0",
            "service.namespace": "MyAgentTesting",
            "service.name": "MyAgentTracing"
        },
        "schema_url": ""
    }}

Konsolenlog für das Ausführungstool

Dieses Beispiel zeigt eine typische Ausführungs-Tool-Spannweite, die vom Konsolenexporter während der lokalen Validierung ausgesendet wird.

{
    "name": "execute_tool get_weather",
    "context": {
        "trace_id": "0xa9a1be6323bd52476d6a28b8893c6aa8",
        "span_id": "0x1dec90d34ecc0823",
        "trace_state": "[]"
    },
    "kind": "SpanKind.INTERNAL",
    "parent_id": "0x2e727b4c133cbd50",
    "start_time": "2025-11-24T18:47:55.960305Z",
    "end_time": "2025-11-24T18:47:55.962306Z",
    "status": {
        "status_code": "UNSET"
    },
    "attributes": {
        "operation.source": "SDK",
        "correlation.id": "aaaa0000-bb11-2222-33cc-444444dddddd",
        "gen_ai.conversation.item.link": "http://localhost:56150/_connector",
        "gen_ai.agent.upn": "Delivery Agent",
        "gen_ai.agent.user.id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "gen_ai.execution.type": "HumanToAgent",
        "gen_ai.channel.name": "msteams",
        "gen_ai.system": "az.ai.agent365",
        "gen_ai.operation.name": "execute_tool",
        "gen_ai.agent.id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "gen_ai.agent.name": "Azure OpenAI Agent",
        "gen_ai.agent.description": "An AI agent powered by Azure OpenAI",
        "gen_ai.agent.applicationid": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "gen_ai.conversation.id": "__PERSONAL_CHAT_ID__",
        "tenant.id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "gen_ai.tool.name": "get_weather",
        "gen_ai.tool.arguments": "current location",
        "gen_ai.tool.type": "function",
        "gen_ai.tool.call.id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
        "gen_ai.tool.description": "Executing get_weather tool"
    },
    "events": [],
    "links": [],
    "resource": {
        "attributes": {
            "telemetry.sdk.language": "python",
            "telemetry.sdk.name": "opentelemetry",
            "telemetry.sdk.version": "1.38.0",
            "service.namespace": "MyAgentTesting",
            "service.name": "MyAgentTracing"
        },
        "schema_url": ""
    }
}

Inferenzspanne des Konsolenlogs

Dieses Beispiel zeigt eine typische Inferenzspanne aus dem Konsolenexporteur, der für die lokale Validierung verwendet wird.

{
    "name": "Chat gpt-4o-mini",
    "context": {
        "trace_id": "0xceb86559a6f7c2c16a45ec6e0b201ae1",
        "span_id": "0x475beec8c1c4fa56",
        "trace_state": "[]"
    },
    "kind": "SpanKind.CLIENT",
    "parent_id": "0x959a854f18fa2c22",
    "start_time": "2025-11-24T18:04:07.061703Z",
    "end_time": "2025-11-24T18:04:09.506951Z",
    "status": {
        "status_code": "UNSET"
    },
    "attributes": {
        "operation.source": "SDK",
        "correlation.id": "aaaa0000-bb11-2222-33cc-444444dddddd",
        "gen_ai.conversation.item.link": "http://localhost:56150/_connector",
        "gen_ai.agent.upn": "Delivery Agent",
        "gen_ai.agent.user.id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "gen_ai.execution.type": "HumanToAgent",
        "gen_ai.channel.name": "msteams",
        "gen_ai.system": "az.ai.agent365",
        "gen_ai.agent.id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "gen_ai.agent.name": "Azure OpenAI Agent",
        "gen_ai.agent.description": "An AI agent powered by Azure OpenAI",
        "gen_ai.agent.applicationid": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "gen_ai.conversation.id": "__PERSONAL_CHAT_ID__",
        "tenant.id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "gen_ai.input.messages": "hi, what can you do",
        "gen_ai.operation.name": "Chat",
        "gen_ai.request.model": "gpt-4o-mini",
        "gen_ai.provider.name": "Azure OpenAI",
        "gen_ai.output.messages": "\"Hello! I can help answer questions, provide information, assist with problem-solving, offer writing suggestions, and more. Just let me know what you need!\"",
        "gen_ai.usage.input_tokens": "33",
        "gen_ai.usage.output_tokens": "32",
        "gen_ai.response.finish_reasons": "[\"stop\"]"
    },
    "events": [],
    "links": [],
    "resource": {
        "attributes": {
            "telemetry.sdk.language": "python",
            "telemetry.sdk.name": "opentelemetry",
            "telemetry.sdk.version": "1.38.0",
            "service.namespace": "MyAgentTesting",
            "service.name": "MyAgentTracing"
        },
        "schema_url": ""
    }
}

Anforderungen an die Beobachtbarkeit

IT-Administratoren nutzen die in Ihrem Code eingestellten Daten, um die Aktivitäten Ihres Agenten zu überwachen. Unvollständige Daten bedeuten, dass die Vorteile der Beobachtbarkeit nicht vollständig ausgeschöpft werden. Agenten müssen die erforderlichen Daten bereitstellen, um alle erwarteten Vorteile zu erhalten. Ein Validierungsprozess überprüft, ob diese Daten existieren.

Innerhalb der Telemetrie gibt es Konzepte wie Umfang oder Kontext. Jede Operation, die Ihr Agent ausführt, liegt in einem anderen Rahmen. Die Daten müssen in die BaggageScope mit Baggage erstellten Attribute oder in den einzelnen Scopes gemäß Manual Instrumentation enthalten sein.

Um Ihre Implementierung zu validieren, folgen Sie den Anweisungen zur lokalen Validierung zur Erstellung von Konsolenprotokollen für Ihre Instrumentierung. Dann überprüfe ich den Abschnitt [Validieren für erforderliche Attribute](#validate für rewuired Attribute), um herauszufinden, welche Attribute erforderlich und welche optional sind. Alle erforderlichen Attribute müssen gesetzt werden, um die Validierung erfolgreich zu bestehen.

Überprüfen Sie die erforderlichen Eigenschaften und Parameterwerte, die für diese Klassen beschrieben sind:

  • Eigenschaften, die mit der BaggageBuilder-Klasse gesetzt werden, können von den Eigenschaften der jeweiligen Scopes gesetzt oder überschrieben werden.

  • Setzen Sie die Eigenschaften in der folgenden Tabelle mit der Methode InvokeAgentScope.start.

    Daten Beschreibung
    invoke_agent_details.details.agent_id Der eindeutige Bezeichner für den KI-Agent
    invoke_agent_details.details.agent_name Der lesbare Name des KI-Agenten
    invoke_agent_details.details.agent_auid Die Agent-Benutzer-ID (AUID)
    invoke_agent_details.details.agent_upn Der Benutzerprinzipalname des Agents (UPN)
    invoke_agent_details.details.agent_blueprint_id Die Agent-Blueprint-/Anwendungs-ID
    invoke_agent_details.details.tenant_id Die Mandanten-ID für den Agent
    invoke_agent_details.details.conversation_id Der Bezeichner für die Unterhaltung oder Sitzung
    invoke_agent_details.endpoint Der Endpunkt für den Agent-Aufruf
    tenant_details.tenant_id Der eindeutige Bezeichner für den Mandanten
    request.content Der Inhalt der Nutzlast, der zum Aufruf an den Agenten gesendet wurde
    request.execution_type Invocation-Typ, der den Ursprung der Anfrage angibt (zum Beispiel HumanToAgent oder AgentToAgent)
    caller_details.caller_id Der eindeutige Bezeichner für den Aufrufer
    caller_details.caller_upn Der Benutzerprinzipalname (UPN) des Aufrufers
    caller_details.caller_user_id Die Benutzer-ID des Anrufers
    caller_details.tenant_id Die Mandanten-ID des Anrufers
  • Setzen Sie die Eigenschaften in der folgenden Tabelle mit der Methode ExecuteToolScope.start.

    Daten Beschreibung
    details.tool_name Der Name des auszuführenden Tools
    details.arguments Toolargumente/Parameter
    details.tool_call_id Der eindeutige Bezeichner für den Toolaufruf
    details.tool_type Der Typ des auszuführenden Tools
    details.endpoint Wenn ein externer Werkzeugaufruf durchgeführt wird
    agent_details.agent_id Der eindeutige Bezeichner für den KI-Agent
    agent_details.agent_name Der lesbare Name des KI-Agenten
    agent_details.agent_auid Die Agent-Benutzer-ID
    agent_details.agent_upn Der Benutzerprinzipalname des Agents (UPN)
    agent_details.agent_blueprint_id Die Agent-Blueprint-/Anwendungs-ID
    agent_details.tenant_id Mieter-ID des Maklers.
    agent_details.conversation_id Die Konversations-ID für die Agenten-Invocation.
    tenant_details.tenant_id Mieter-ID des Maklers.
  • Setzen Sie die Eigenschaften in der folgenden Tabelle mit der Methode InferenceScope.start.

    Daten Beschreibung
    details.operationName Der Vorgangsname/-typ für die Ableitung
    details.model Der Modellname/-bezeichner
    details.providerName Der Name des Anbieters
    agent_details.agent_id Der eindeutige Bezeichner für den KI-Agent
    agent_details.agent_name Der lesbare Name des KI-Agenten
    agent_details.agent_auid Die Agent-Benutzer-ID (AUID)
    agent_details.agent_upn Der Benutzerprinzipalname des Agents (UPN)
    agent_details.agent_blueprint_id Die Agent-Blueprint-/Anwendungs-ID
    agent_details.tenant_id Der eindeutige Bezeichner für den Mandanten
    agent_details.conversation_id Der Bezeichner für die Unterhaltung oder Sitzung
    tenant_details.tenant_id Der eindeutige Bezeichner für den Mandanten
    request.content Der Nutzlastinhalt wurde dem Agenten zur Schlussfolgerung übermittelt
    request.execution_type Invocation-Typ, der den Ursprung der Anfrage angibt (zum Beispiel HumanToAgent oder AgentToAgent)
    request.source_metadata Stellen Sie die Kanalinformationen dar

Validieren für Store-Publishing

Verwenden Sie Konsolenlogs, um Ihre Observability-Integration für den Agenten vor der Veröffentlichung zu validieren, indem Sie den erforderlichen Aufruf-Agenten, das ausführende Tool und die Inferenz-Scopes implementieren. Vergleiche dann die Logs deines Agenten mit den folgenden Attributlisten, um sicherzustellen, dass alle erforderlichen Attribute vorhanden sind; Erobere Attribute auf jedem Scope oder über den Gepäckbauer und füge optionale Attribute nach eigenem Ermessen hinzu.

Für weitere Informationen zu den Anforderungen an die Ladenveröffentlichung siehe die Richtlinien zur Store-Validierung.

InvokeAgentScope-Attribute

Die folgende Liste fasst die erforderlichen und optionalen Telemetrieattribute zusammen, die beim Starten eines aufgezeichnet werden InvokeAgentScope.

"attributes": {
        "correlation.id": "Optional",
        "gen_ai.agent.applicationid": "Required",
        "gen_ai.agent.description": "Optional",
        "gen_ai.agent.id": "Required",
        "gen_ai.agent.name": "Required",
        "gen_ai.agent.thought.process": "Optional",
        "gen_ai.agent.upn": "Required",
        "gen_ai.agent.user.id": "Required",
        "gen_ai.caller.agent.applicationid": "Required (if execution type is agent to agent)",
        "gen_ai.caller.agent.id": "Required (if execution type is agent to agent)",
        "gen_ai.caller.agent.name": "Required (if execution type is agent to agent)",
        "gen_ai.caller.client.ip": "Required",
        "gen_ai.caller.id": "Required",
        "gen_ai.caller.name": "Optional",
        "gen_ai.caller.upn": "Required",
        "gen_ai.channel.link": "Optional",
        "gen_ai.channel.name": "Required",
        "gen_ai.conversation.id": "Required",
        "gen_ai.conversation.item.link": "Optional",
        "gen_ai.execution.type": "Required",
        "gen_ai.input.messages": "Required",
        "gen_ai.operation.name": "Required (Set by the SDK)",
        "gen_ai.output.messages": "Required",
        "gen_ai.system": "Optional",
        "hiring.manager.id": "Optional",
        "operation.source": "Required (SDK sets a default value)",
        "server.address": "Required",
        "server.port": "Required",
        "session.id": "Optional",
        "session.description": "Optional",
        "tenant.id": "Required"
    },

ExecuteToolScope-Attribute

Die folgende Liste fasst die erforderlichen und optionalen Telemetrieattribute zusammen, die beim Starten eines aufgezeichnet werden ExecuteToolScope.

"attributes": {
        "correlation.id": "Optional",
        "gen_ai.agent.applicationid": "Required",
        "gen_ai.agent.description": "Optional",
        "gen_ai.agent.id": "Required",
        "gen_ai.agent.name": "Required",
        "gen_ai.agent.upn": "Required",
        "gen_ai.agent.user.id": "Required",
        "gen_ai.caller.client.ip": "Required",
        "gen_ai.channel.name": "Required",
        "gen_ai.conversation.id": "Required",
        "gen_ai.conversation.item.link": "Optional",
        "gen_ai.execution.type": "HumanToAgent",
        "gen_ai.operation.name": "Required (Set by the SDK)",
        "gen_ai.system": "Optional",
        "gen_ai.tool.arguments": "Required",
        "gen_ai.tool.call.id": "Required",
        "gen_ai.tool.description": "Optional",
        "gen_ai.tool.name": "Required",
        "gen_ai.tool.type": "Required",
        "operation.source": "Required (SDK sets a default value)",
        "server.address": "Required (if tool call is external)",
        "server.port": "Required (if tool call is external)",
        "session.id": "Optional",
        "session.description": "Optional",
        "tenant.id": "Required"
    },

InferenceScope-Attribute

Die folgende Liste fasst die erforderlichen und optionalen Telemetrieattribute zusammen, die beim Starten eines aufgezeichnet werden InferenceScope.

"attributes": {
        "correlation.id": "Optional",
        "gen_ai.agent.applicationid": "Required",
        "gen_ai.agent.description": "Optional",
        "gen_ai.agent.id": "Required",
        "gen_ai.agent.name": "Required",
        "gen_ai.agent.thought.process": "Optional",
        "gen_ai.agent.upn": "Required",
        "gen_ai.agent.user.id": "Required",
        "gen_ai.caller.client.ip": "Required",
        "gen_ai.channel.link": "Optional",
        "gen_ai.channel.name": "Required",
        "gen_ai.conversation.id": "Required",
        "gen_ai.conversation.item.link": "Optional",
        "gen_ai.execution.type": "Required",
        "gen_ai.input.messages": "Required",
        "gen_ai.operation.name": "Chat",
        "gen_ai.output.messages": "Required",
        "gen_ai.provider.name": "Required",
        "gen_ai.request.model": "Required",
        "gen_ai.response.finish_reasons": "Optional",
        "gen_ai.usage.input_tokens": "Optional",
        "gen_ai.usage.output_tokens": "Optional",
        "hiring.manager.id": "Optional",
        "operation.source": "Required (SDK sets a default value)",
        "session.description": "Optional",
        "session.id": "Optional",
        "tenant.id": "Required"
    }

Testen Ihres Agents mit Einblick

Nachdem Sie Observability in Ihrem Agenten implementiert haben, testen Sie, ob Telemetrie korrekt erfasst wird. Befolgen Sie das Testhandbuch, um Ihre Umgebung einzurichten, und konzentrieren Sie sich in erster Linie auf den Abschnitt Observability-Protokolle anzeigen, um zu prüfen, ob ihre Einblick-Implementierung wie erwartet funktioniert.