Condividi tramite


Osservabilità dell'agente

Importante

Devi far parte del programma di anteprima Frontier per ottenere l'accesso in anteprima a Microsoft Agent 365. Frontier ti mette in contatto diretto con le ultime innovazioni di Microsoft nell'IA. Le anteprime Frontier sono soggette alle condizioni di anteprima esistenti dei tuoi contratti del cliente. Poiché queste funzionalità sono ancora in fase di sviluppo, la disponibilità e le funzionalità possono cambiare nel tempo.

Per partecipare all'ecosistema Agent 365, devi aggiungere le funzionalità di osservabilità di Agent 365 all'agente. L'osservabilità di Agent 365 si basa su OpenTelemetry (OTel) e fornisce un framework unificato per acquisire i dati di telemetria in modo coerente e sicuro in tutte le piattaforme dell'agente. Mediante l'implementazione di questo componente necessario, consenti agli amministratori IT a monitorare l'attività dell'agente nell'interfaccia di amministrazione di Microsoft e consenti ai team di sicurezza di usare Defender e Purview per la conformità e il rilevamento delle minacce.

Vantaggi chiave

  • Visibilità end-to-end: acquisisci dati di telemetria completi per ogni chiamata dell'agente, incluse sessioni, chiamate agli strumenti ed eccezioni, offrendo la tracciabilità completa tra le piattaforme.
  • Abilitazione di sicurezza e conformità: inserisci log di controllo unificati in Defender e Purview, abilitando scenari di sicurezza avanzati e report di conformità per l'agente.
  • Flessibilità multipiattaforma: crea standard OTel e supporta runtime e piattaforme diverse, ad esempio Copilot Studio, Foundry e framework di agenti futuri.
  • Efficienza operativa per gli amministratori: offri osservabilità centralizzata in MAC, riduci i tempi di risoluzione dei problemi e migliora la governance con i controlli degli accessi in base al ruolo per i team IT che gestiscono l'agente.

Installazione

Usa questi comandi per installare i moduli di osservabilità per le lingue supportate da Agent 365.

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

Configurazione

Usa le seguenti impostazioni per abilitare e personalizzare l'Osservabilità dell'Agente 365 per il tuo agente.

Le variabili di ambiente necessarie per l'osservabilità sono:

Variabile di ambiente Descrizione
ENABLE_OBSERVABILITY=true Flag per abilitare/disabilitare la traccia. Per impostazione predefinita false
ENABLE_A365_OBSERVABILITY_EXPORTER=true True esporta i registri al nostro servizio. In caso contrario, esegue il fallback all'utilità di esportazione della console
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,
)

Escludi lo strumento di risoluzione dei token per accedere alla console.

Attributi di baggage

Utilizza BaggageBuilder per impostare informazioni contestuali che passano attraverso tutti gli intervalli di una richiesta. L'SDK implementa una SpanProcessor copia di tutte le voci di baggage non interrotte in intervalli appena avviati senza sovrascrivere gli attributi esistenti.

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

Strumento di risoluzione dei token

Quando si usa l'utilità di esportazione di Agent 365, è necessario fornire una funzione di risoluzione dei token che restituisce il token di autenticazione. Quando si usa l'SDK di osservabilità di Agent 365 con il framework di hosting dell'agente, è possibile generare token usando TurnContext dalle attività dell'agente

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

Strumentazione automatica

La strumentazione automatica ascolta automaticamente i segnali di telemetria esistenti dei framework agenti (SDK) per le tracce e li inoltra al servizio di osservabilità di Agent 365. Ciò elimina la necessità per gli sviluppatori di scrivere manualmente il codice di monitoraggio, semplificando la configurazione e garantendo un monitoraggio coerente delle prestazioni.

La strumentazione automatica è supportata su più SDK e piattaforme:

Piattaforma SDK/framework supportati
.NET Kernel semantico, OpenAI, Agent Framework
Python Kernel semantico, OpenAI, Agent Framework, LangChain
Node.js OpenAI

Nota

Il supporto per la strumentazione automatica varia in base all'implementazione della piattaforma e dell'SDK.

Kernel semantico

La strumentazione automatica richiede l'uso del generatore di baggage. Imposta l'ID agente e l'ID tenant usando BaggageBuilder.

Installare il pacchetto

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

Configurare l'osservabilità

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

La strumentazione automatica richiede l'uso del generatore di baggage. Imposta l'ID agente e l'ID tenant usando BaggageBuilder.

Installare il pacchetto .

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

Configura l'osservabilità.

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

Framework dell'agente

La strumentazione automatica richiede l'uso del generatore di baggage. Imposta l'ID agente e l'ID tenant usando BaggageBuilder.

Installare il pacchetto

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

Configurare l'osservabilità

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()

Framework LangChain

La strumentazione automatica richiede l'uso del generatore di baggage. Imposta l'ID agente e l'ID tenant usando BaggageBuilder.

Installare il pacchetto .

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

Configurare l'osservabilità

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

Strumentazione manuale

L'SDK di osservabilità di Agent 365 può essere usato per comprendere il funzionamento interno dell'agente. L'SDK fornisce tre ambiti che possono essere avviati: InvokeAgentScope, ExecuteToolScopee InferenceScope.

Chiamata dell'agente

Questo ambito deve essere usato all'inizio del processo dell'agente. Con l'ambito di chiamata dell'agente si acquisisce proprietà come l'agente corrente richiamato, i dati utente dell'agente e così via.

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(...)

Esecuzione degli strumenti

Gli esempi seguenti illustrano come instrumentare l'esecuzione degli strumenti dell'agente con il rilevamento dell'osservabilità per acquisire i dati di telemetria a scopo di monitoraggio e controllo.

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)

Inferenza

Gli esempi seguenti illustrano come instrumentare le chiamate di inferenza del modello di intelligenza artificiale con il rilevamento dell'osservabilità per acquisire l'utilizzo dei token, i dettagli del modello e i metadati della risposta.

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(...)

Convalida in locale

Per verificare che tu abbia integrato con successo con l'SDK di osservabilità, esamina i log della console generati dal tuo agente.

Impostare la variabile di ambiente ENABLE_A365_OBSERVABILITY_EXPORTER su false. Queste esportazioni si estendono (tracce) nella console.

Esempi di log

I log potrebbero apparire leggermente diversi a seconda della piattaforma.

Log console Invoke agent span

Questo esempio illustra uno span tipico di invoke agent stampato dall'esportatore della console quando la validazione locale è attivata.

    {
    "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": ""
    }}

Log console per lo strumento di esecuzione

Questo esempio mostra una tipica span di strumento di esecuzione emessa dall'esportatore console durante la validazione locale.

{
    "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": ""
    }
}

Intervallo di inferenza dei log della console

Questo esempio dimostra un tipico output di intervallo di inferenza dall'esportatore console utilizzato per la validazione locale.

{
    "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": ""
    }
}

Requisiti di osservabilità

Gli amministratori IT utilizzano i dati che inserisci nel tuo codice per monitorare l'attività del tuo agente. Dati incompleti significano che i benefici dell'osservabilità non sono pienamente realizzati. Gli agenti devono fornire i dati necessari per ricevere tutti i benefici attesi. Un processo di validazione verificherà che questi dati esistano.

All'interno della telemetria esistono concetti di ambito o contesto. Ogni operazione che il tuo agente esegue esiste in un ambito diverso. I dati devono essere inclusi all'interno degli BaggageScopeattributi creati usando Baggage, o all'interno degli ambiti individuali come descritto in Strumentazione Manuale.

Per validare la tua implementazione, segui le istruzioni per validare localmente e generare log console per la tua strumentazione. Successivamente si ripassa la sezione [Valida per attributi richiesti] (#validate-per-richiedi attributi) per identificare quali attributi sono richiesti e quali opzionali. Tutti gli attributi richiesti devono essere impostati per superare con successo la validazione.

Rivedere le proprietà richieste e i valori dei parametri descritti per queste classi:

  • Le proprietà impostate tramite la classe BaggageBuilder possono essere impostate o sovrascritte dalle proprietà dei rispettivi ambiti.

  • Imposta le proprietà nella tabella seguente usando il metodo InvokeAgentScope.start.

    Data Descrizione
    invoke_agent_details.details.agent_id Identificatore univoco per l'agente di intelligenza artificiale
    invoke_agent_details.details.agent_name Nome leggibile dell'agente di intelligenza artificiale
    invoke_agent_details.details.agent_auid ID utente agente (AUID)
    invoke_agent_details.details.agent_upn Nome dell'entità utente dell'agente (UPN)
    invoke_agent_details.details.agent_blueprint_id ID progetto/applicazione dell'agente
    invoke_agent_details.details.tenant_id ID tenant per l'agente
    invoke_agent_details.details.conversation_id Identificatore della conversazione o della sessione
    invoke_agent_details.endpoint Endpoint per la chiamata dell'agente
    tenant_details.tenant_id Identificatore univoco per il tenant
    request.content Il contenuto del payload inviato all'agente per l'invocazione
    request.execution_type Tipo di invocazione che indica l'origine della richiesta (ad esempio, HumanToAgent o AgentToAgent)
    caller_details.caller_id Identificatore univoco per il chiamante
    caller_details.caller_upn Nome dell'entità utente (UPN) del chiamante
    caller_details.caller_user_id ID utente del chiamante
    caller_details.tenant_id ID tenant del chiamante
  • Imposta le proprietà nella tabella seguente usando il metodo ExecuteToolScope.start.

    Data Descrizione
    details.tool_name Nome dello strumento da eseguire
    details.arguments Argomenti/parametri dello strumento
    details.tool_call_id Identificatore univoco per la chiamata allo strumento
    details.tool_type Tipo dello strumento in esecuzione
    details.endpoint Se viene effettuata una chiamata di uno strumento esterno
    agent_details.agent_id Identificatore univoco per l'agente di intelligenza artificiale
    agent_details.agent_name Nome leggibile dell'agente di intelligenza artificiale
    agent_details.agent_auid L'ID utente dell'agente
    agent_details.agent_upn Nome dell'entità utente dell'agente (UPN)
    agent_details.agent_blueprint_id ID progetto/applicazione dell'agente
    agent_details.tenant_id ID inquilino per l'agente.
    agent_details.conversation_id L'ID della conversazione per l'invocazione dell'agente.
    tenant_details.tenant_id ID inquilino per l'agente.
  • Imposta le proprietà nella tabella seguente usando il metodo InferenceScope.start.

    Data Descrizione
    details.operationName Nome/tipo dell'operazione per l'inferenza
    details.model Nome/identificatore del modello
    details.providerName Il nome del fornitore
    agent_details.agent_id Identificatore univoco per l'agente di intelligenza artificiale
    agent_details.agent_name Nome leggibile dell'agente di intelligenza artificiale
    agent_details.agent_auid ID utente agente (AUID)
    agent_details.agent_upn Nome dell'entità utente dell'agente (UPN)
    agent_details.agent_blueprint_id ID progetto/applicazione dell'agente
    agent_details.tenant_id Identificatore univoco per il tenant
    agent_details.conversation_id Identificatore della conversazione o della sessione
    tenant_details.tenant_id Identificatore univoco per il tenant
    request.content Il contenuto del payload inviato all'agente per l'inferenza
    request.execution_type Tipo di invocazione che indica l'origine della richiesta (ad esempio, HumanToAgent o AgentToAgent)
    request.source_metadata Rappresenta le informazioni sul canale

Valida per l'editoria in negozio

Usa i log della console per validare l'integrazione dell'osservabilità per l'agente prima di pubblicare implementando l'agente di invocazione, lo strumento di esecuzione e gli ambiti di inferenza richiesti. Poi confronta i log del tuo agente con le seguenti liste di attributi per verificare che tutti gli attributi richiesti siano presenti; Cattura gli attributi su ciascun telescopio o tramite il baggage builder, e includi attributi opzionali a tua discrezione.

Per maggiori informazioni sui requisiti di pubblicazione dei negozi, consulta le linee guida per la validazione dei negozi.

Attributi InvokeAgentScope

L'elenco seguente riassume gli attributi di telemetria richiesti e opzionali registrati quando si avvia un 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"
    },

Attributi ExecuteToolScope

L'elenco seguente riassume gli attributi di telemetria richiesti e opzionali registrati quando si avvia un 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"
    },

Attributi InferenceScope

L'elenco seguente riassume gli attributi di telemetria richiesti e opzionali registrati quando si avvia un 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"
    }

Testare l'agente con l'osservabilità

Dopo aver implementato l'osservabilità nel tuo agente, verifica che la telemetria venga catturata correttamente. Segui la guida ai test per configurare l'ambiente, quindi concentrati principalmente sulla sezione Visualizzare i log di osservabilità per verificare che l'implementazione dell'osservabilità funzioni come previsto.