Compartir a través de


Observabilidad del agente

Importante

Debe formar parte del programa de versión preliminar de Frontier para obtener acceso anticipado a Microsoft Agent 365. Frontier le conecta directamente con las innovaciones de inteligencia artificial más recientes de Microsoft. Las versiones preliminares de Frontier están sujetas a los términos de vista previa existentes en tus acuerdos con clientes. Dado que estas características siguen en desarrollo, su disponibilidad y funcionalidades pueden cambiar con el tiempo.

Para participar en el ecosistema de Agent 365, debe agregar funcionalidades de observabilidad de Agent 365 al agente. La observabilidad de Agent 365 se basa en OpenTelemetry (OTel) y proporciona un marco unificado para capturar la telemetría de forma coherente y segura en todas las plataformas de agente. Al implementar este componente necesario, permite a los administradores de TI supervisar la actividad del agente en el Centro de administración de Microsoft (MAC) y permitir que los equipos de seguridad usen Defender y Purview para la detección de amenazas y cumplimiento.

Beneficios clave

  • Visibilidad integral: capture telemetría completa para cada invocación de agente, incluidas las sesiones, las llamadas a herramientas y las excepciones, lo que proporciona una rastreabilidad completa en todas las plataformas.
  • Habilitación de seguridad y cumplimiento: envíe registros de auditoría unificados a Defender y Purview, permitiendo escenarios de seguridad avanzada e informes de cumplimiento para su agente.
  • Flexibilidad multiplataforma: compile los estándares de OTel y admita diversos runtimes y plataformas como Copilot Studio, Foundry y marcos de agente futuros.
  • Eficiencia operativa para administradores: proporcione observabilidad centralizada en MAC, reduciendo el tiempo de solución de problemas y mejorando la gobernanza con controles de acceso basados en roles para los equipos de TI que administran el agente.

Instalación

Use estos comandos para instalar los módulos de observabilidad para los idiomas admitidos por Agent 365.

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

Configuración

Utiliza las siguientes configuraciones para habilitar y personalizar la observabilidad del Agente 365 para tu agente.

Las variables de entorno necesarias para la observabilidad son:

Variable de entorno Descripción
ENABLE_OBSERVABILITY=true Marca para habilitar o deshabilitar el seguimiento. De manera predeterminada, false
ENABLE_A365_OBSERVABILITY_EXPORTER=true True exporta registros a nuestro servicio. De lo contrario, vuelve al exportador de la consola.
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,
)

Excluya la resolución de tokens para iniciar sesión en la consola.

Atributos de equipaje

Use BaggageBuilder para establecer información contextual que fluye a través de todos los intervalos de una solicitud. El SDK implementa una SpanProcessor copia de todas las entradas de equipaje no vacías en intervalos recién iniciados sin sobrescribir los atributos existentes.

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

Resolución de tokens

Al usar el exportador de Agent 365, debe proporcionar una función de resolución de tokens que devuelva el token de autenticación. Al usar el SDK de observabilidad de Agent 365 con el marco de hospedaje del agente, puede generar tokens mediante TurnContext de las actividades del 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

Instrumentación automática

La instrumentación automática escucha automáticamente las señales de telemetría existentes de marcos de agente (SDK) para seguimientos y las reenvía al servicio de observabilidad de Agent 365. Esto elimina la necesidad de que los desarrolladores escriban código de supervisión manualmente, simplificando la configuración y garantizando un seguimiento coherente del rendimiento.

La instrumentación automática se admite en varios SDK y plataformas:

Plataforma SDK o marcos admitidos
.NET Kernel semántico, OpenAI, Agent Framework
Python Kernel semántico, OpenAI, Agent Framework, LangChain
Node.js OpenAI

Nota

La compatibilidad con la instrumentación automática varía según la plataforma y la implementación del SDK.

Kernel semántico

La instrumentación automática requiere el uso del generador de equipaje. Establezca el id. de agente y el id. de inquilino mediante BaggageBuilder.

Instalar el paquete

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

Configuración de la observabilidad

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 instrumentación automática requiere el uso del generador de equipaje. Establezca el id. de agente y el id. de inquilino mediante BaggageBuilder.

Instale el paquete .

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

Configure la observabilidad.

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

Marco de trabajo del agente

La instrumentación automática requiere el uso del generador de equipaje. Establezca el id. de agente y el id. de inquilino mediante BaggageBuilder.

Instalar el paquete

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

Configuración de la observabilidad

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

Marco de LangChain

La instrumentación automática requiere el uso del generador de equipaje. Establezca el id. de agente y el id. de inquilino mediante BaggageBuilder.

Instale el paquete .

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

Configuración de la observabilidad

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

Instrumentación manual

El SDK de observabilidad de Agent 365 se puede usar para comprender el funcionamiento interno del agente. El SDK proporciona tres ámbitos que se pueden iniciar: InvokeAgentScope, ExecuteToolScope y InferenceScope.

Invocación de agente

Este ámbito debe usarse al principio del proceso del agente. Con el ámbito del agente de invocación, se capturan propiedades como el agente actual que se invoca, los datos de usuario del agente, etc.

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

Ejecución de herramientas

En los ejemplos siguientes se muestra cómo instrumentar la ejecución de herramientas del agente con seguimiento de observabilidad para capturar telemetría con fines de supervisión y auditoría.

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)

Inferencia

En los ejemplos siguientes se muestra cómo instrumentar llamadas de inferencia del modelo de IA con seguimiento de observabilidad para capturar el uso de tokens, los detalles del modelo y los metadatos de respuesta.

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

Validar localmente

Para verificar que has integrado con éxito con el SDK de observabilidad, examina los registros de consola generados por tu agente.

Establezca la variable de entorno ENABLE_A365_OBSERVABILITY_EXPORTER en false. Esta exportación abarca (seguimientos) a la consola.

Registros de muestra

Los troncos pueden verse ligeramente diferentes según la plataforma.

Log de consola Invoke agent span

Este ejemplo ilustra un span típico de agente de invocación impreso por el exportador de consola cuando la validación local está habilitada.

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

Registro de consola para la herramienta de ejecución

Este ejemplo muestra un span típico de herramienta de ejecución emitido por el exportador de consola durante la validación local.

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

Intervalo de inferencia logarítmica en consola

Este ejemplo demuestra una salida típica de intervalo de inferencia del exportador de consola utilizado para la validación local.

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

Requisitos de observabilidad

Los administradores de TI utilizan los datos que estableces en tu código para monitorizar la actividad de tu agente. Los datos incompletos significan que los beneficios de la observabilidad no se han realizado plenamente. Los agentes deben proporcionar los datos necesarios para recibir todos los beneficios esperados. Un proceso de validación verificará que estos datos existen.

Dentro de la telemetría existen conceptos de alcance o contexto. Cada operación que realiza tu agente existe dentro de un ámbito diferente. Los datos deben incluirse dentro de los BaggageScope atributos creados usando equipaje, o dentro de los ámbitos individuales descritos en Instrumentación Manual.

Para validar tu implementación, sigue las instrucciones para validar localmente y generar registros de consola para tu instrumentación. Luego revisa la sección [Validar para atributos requeridos](#validate-para-atributos reutilizados) para identificar qué atributos son necesarios y cuáles son opcionales. Todos los atributos requeridos deben estar configurados para superar la validación con éxito.

Revisa las propiedades requeridas y los valores de parámetros descritos para estas clases:

  • Las propiedades establecidas usando la clase BaggageBuilder pueden ser establecidas o anuladas por las propiedades de los respectivos ámbitos.

  • Establezca las propiedades en la siguiente tabla usando el método InvokeAgentScope.start.

    Data Descripción
    invoke_agent_details.details.agent_id Identificador único para el agente de IA
    invoke_agent_details.details.agent_name El nombre legible del agente de IA
    invoke_agent_details.details.agent_auid Identificador de usuario del agente (AUID)
    invoke_agent_details.details.agent_upn El nombre principal de usuario del agente (UPN)
    invoke_agent_details.details.agent_blueprint_id El plano técnico del agente o el identificador de aplicación
    invoke_agent_details.details.tenant_id Identificador de inquilino del agente
    invoke_agent_details.details.conversation_id Identificador de la conversación o sesión
    invoke_agent_details.endpoint Punto de conexión de la invocación del agente
    tenant_details.tenant_id Identificador único del inquilino
    request.content El contenido de la carga útil enviado al agente para su invocación
    request.execution_type Tipo de invocación que indica el origen de la solicitud (por ejemplo, HumanToAgent o AgentToAgent)
    caller_details.caller_id Identificador único del autor de la llamada
    caller_details.caller_upn Nombre principal de usuario (UPN) del autor de la llamada
    caller_details.caller_user_id Identificador de usuario del autor de la llamada
    caller_details.tenant_id Identificador de inquilino del autor de la llamada
  • Establezca las propiedades en la siguiente tabla usando el método ExecuteToolScope.start.

    Data Descripción
    details.tool_name Nombre de la herramienta que se está ejecutando
    details.arguments Argumentos y parámetros de la herramienta
    details.tool_call_id Identificador único de la llamada a la herramienta
    details.tool_type Tipo de la herramienta que se está ejecutando
    details.endpoint Si se realiza una llamada a una herramienta externa
    agent_details.agent_id Identificador único para el agente de IA
    agent_details.agent_name El nombre legible del agente de IA
    agent_details.agent_auid El ID de usuario del agente
    agent_details.agent_upn El nombre principal de usuario del agente (UPN)
    agent_details.agent_blueprint_id El plano técnico del agente o el identificador de aplicación
    agent_details.tenant_id Identificación de inquilino del agente.
    agent_details.conversation_id El ID de conversación para la invocación del agente.
    tenant_details.tenant_id Identificación de inquilino del agente.
  • Establezca las propiedades en la siguiente tabla usando el método InferenceScope.start.

    Data Descripción
    details.operationName Nombre o tipo de la operación para la inferencia
    details.model El nombre o identificador del modelo
    details.providerName El nombre del proveedor
    agent_details.agent_id Identificador único para el agente de IA
    agent_details.agent_name El nombre legible del agente de IA
    agent_details.agent_auid Identificador de usuario del agente (AUID)
    agent_details.agent_upn El nombre principal de usuario del agente (UPN)
    agent_details.agent_blueprint_id El plano técnico del agente o el identificador de aplicación
    agent_details.tenant_id Identificador único del inquilino
    agent_details.conversation_id Identificador de la conversación o sesión
    tenant_details.tenant_id Identificador único del inquilino
    request.content El contenido de la carga útil enviado al agente para inferencia
    request.execution_type Tipo de invocación que indica el origen de la solicitud (por ejemplo, HumanToAgent o AgentToAgent)
    request.source_metadata Representa la información del canal

Validar para la publicación en tienda

Utiliza los registros de consola para validar tu integración de observabilidad para el agente antes de publicar, implementando el agente de invocación, la herramienta de ejecución y los ámbitos de inferencia requeridos. Luego compara los registros de tu agente con las siguientes listas de atributos para verificar que todos los atributos requeridos estén presentes; Captura atributos en cada mira o a través del generador de equipaje, e incluye atributos opcionales a tu discreción.

Para más información sobre los requisitos de publicación en tiendas, consulte las directrices de validación de tiendas.

Atributos InvokeAgentScope

La siguiente lista resume los atributos de telemetría necesarios y opcionales registrados cuando inicias un InvokeAgentScopearchivo .

"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"
    },

Atributos ExecuteToolScope

La siguiente lista resume los atributos de telemetría necesarios y opcionales registrados cuando inicias un ExecuteToolScopearchivo .

"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"
    },

Atributos InferenceScope

La siguiente lista resume los atributos de telemetría necesarios y opcionales registrados cuando inicias un InferenceScopearchivo .

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

Prueba del agente con observabilidad

Después de implementar la observabilidad en tu agente, prueba que la telemetría se está capturando correctamente. Siga la guía de pruebas para configurar el entorno y, a continuación, céntrese principalmente en la sección Ver registros de observabilidad para validar que la implementación de observabilidad funciona según lo previsto.