Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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, aggiungi capacità di osservabilità Agent 365 al tuo agente. Agent 365 Observability si basa su OpenTelemetry (OTel) e fornisce un framework unificato per catturare telemetria in modo coerente e sicuro su tutte le piattaforme agent. Implementando questo componente richiesto, permetti agli amministratori IT di monitorare l'attività del tuo agente nel centro amministrativo Microsoft e consenti ai team di sicurezza di utilizzare Defender e Purview per la conformità e il rilevamento delle minacce.
Vantaggi chiave
- Visibilità end-to-end: Cattura una telemetria completa per ogni invocazione di agente, incluse sessioni, chiamate agli strumenti ed eccezioni, offrendoti completa tracciabilità su tutte le piattaforme.
- Abilitazione di sicurezza e conformità: Inserisci log di audit unificati in Defender e Purview, abilitando scenari di sicurezza avanzati e report di conformità per il tuo agente.
- Flessibilità multipiattaforma: Costruire sugli standard OTel e supportare runtime e piattaforme diverse come Copilot Studio, Foundry e future agency framework.
- Efficienza operativa per gli amministratori: Fornire un'osservazione centralizzata nel centro di amministrazione Microsoft 365, riducendo i tempi di risoluzione dei problemi e migliorando la governance con controlli di accesso basati sui ruoli per i team IT che gestiscono il tuo 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.
Imposta le variabili ambientali per l'osservabilità:
| Variabile di ambiente | Descrizione |
|---|---|
ENABLE_OBSERVABILITY=true |
Segnala per abilitare o disabilitare il tracciamento. Il valore predefinito è false. |
ENABLE_A365_OBSERVABILITY_EXPORTER=true |
Imposta per true esportare i log al servizio. Altrimenti, viene utilizzato l'esportatore 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,
)
Il risolver dei token è escluso dal login 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 che copia tutte le voci di bagagli non vuote in span appena avviati senza sovrascrivere 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. Questa funzione elimina la necessità per gli sviluppatori di scrivere manualmente il codice di monitoraggio, semplifica la configurazione e garantisce un monitoraggio costante delle prestazioni.
Molteplici SDK e piattaforme supportano l'auto-strumentazione:
| 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
Configura 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
Configura 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
Configura 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
Usa l'SDK di osservabilità dell'Agent 365 per comprendere il funzionamento interno dell'agente.
L'SDK fornisce tre ambiti che puoi iniziare: InvokeAgentScope, ExecuteToolScope, e InferenceScope.
Invocazione dell'agente
Usa questo ambito all'inizio del processo da agente. Utilizzando l'ambito dell'agente invoke, puoi catturare proprietà come l'agente attualmente invocato, i dati utente dell'agente e altro ancora.
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 dello strumento
I seguenti esempi mostrano come aggiungere il tracciamento dell'osservabilità all'esecuzione dello strumento del tuo agente. Questo tracciamento cattura la telemetria a scopo di monitoraggio e audit.
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(...)
Valida localmente
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. Questa impostazione esporta le span (tracce) sulla console.
Esempi di log
I log potrebbero apparire leggermente diversi a seconda della piattaforma.
Log console Invoke agent span
Questo esempio mostra una tipica span di invoke agent che l'esportatore della console stampa quando la validazione locale è abilitata.
{
"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 che l'esportatore della console emette 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 mostra un tipico intervallo di inferenza che l'esportatore della console fornisce 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 non si realizzano pienamente i benefici dell'osservabilità. Gli agenti devono fornire i dati necessari per ricevere tutti i benefici attesi. Un processo di validazione verifica l'esistenza di questi dati.
All'interno della telemetria, esistono concetti di ambito o contesto. Ogni operazione che il tuo agente esegue esiste in un ambito diverso. Devi includere i dati creati BaggageScope usando attributi 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. Devi impostare tutti gli attributi richiesti per superare con successo la validazione.
Rivedere le proprietà richieste e i valori dei parametri descritti per queste classi:
Le proprietà impostate usando la classe BaggageBuilder potrebbero 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_idIdentificatore univoco per l'agente di intelligenza artificiale invoke_agent_details.details.agent_nameNome leggibile dell'agente di intelligenza artificiale invoke_agent_details.details.agent_auidID utente agente (AUID) invoke_agent_details.details.agent_upnNome dell'entità utente dell'agente (UPN) invoke_agent_details.details.agent_blueprint_idID progetto/applicazione dell'agente invoke_agent_details.details.tenant_idID tenant per l'agente invoke_agent_details.details.conversation_idIdentificatore della conversazione o della sessione invoke_agent_details.endpointEndpoint per la chiamata dell'agente tenant_details.tenant_idIdentificatore univoco per il tenant request.contentIl contenuto del payload inviato all'agente per l'invocazione request.execution_typeTipo di invocazione che indica l'origine della richiesta (ad esempio, HumanToAgentoAgentToAgent)caller_details.caller_idIdentificatore univoco per il chiamante caller_details.caller_upnNome dell'entità utente (UPN) del chiamante caller_details.caller_user_idID utente del chiamante caller_details.tenant_idID tenant del chiamante Imposta le proprietà nella tabella seguente utilizzando il metodo ExecuteToolScope.start.
Data Descrizione details.tool_nameNome dello strumento da eseguire details.argumentsArgomenti o parametri degli strumenti details.tool_call_idIdentificatore univoco per la chiamata allo strumento details.tool_typeTipo dello strumento in esecuzione details.endpointSe viene effettuata una chiamata di uno strumento esterno agent_details.agent_idIdentificatore univoco per l'agente di intelligenza artificiale agent_details.agent_nameNome leggibile dell'agente di intelligenza artificiale agent_details.agent_auidL'ID utente dell'agente agent_details.agent_upnNome dell'entità utente dell'agente (UPN) agent_details.agent_blueprint_idIl progetto dell'agente o l'ID applicazione agent_details.tenant_idID inquilino per l'agente. agent_details.conversation_idL'ID della conversazione per l'invocazione dell'agente. tenant_details.tenant_idID inquilino per l'agente. Imposta le proprietà nella tabella seguente utilizzando il metodo InferenceScope.start.
Data Descrizione details.operationNameIl nome o tipo dell'operazione per l'inferenza details.modelIl nome o l'identificatore del modello details.providerNameIl nome del fornitore agent_details.agent_idIdentificatore univoco per l'agente di intelligenza artificiale agent_details.agent_nameNome leggibile dell'agente di intelligenza artificiale agent_details.agent_auidID utente agente (AUID) agent_details.agent_upnNome dell'entità utente dell'agente (UPN) agent_details.agent_blueprint_idIl progetto dell'agente o l'ID applicazione agent_details.tenant_idIdentificatore univoco per il tenant agent_details.conversation_idIdentificatore della conversazione o della sessione tenant_details.tenant_idIdentificatore univoco per il tenant request.contentIl contenuto del payload inviato all'agente per l'inferenza request.execution_typeTipo di invocazione che indica l'origine della richiesta (ad esempio, HumanToAgentoAgentToAgent)request.source_metadataRappresenta le informazioni sul canale
Valida per l'editoria in negozio
Prima di pubblicare, usa i log della console per validare l'integrazione dell'osservabilità per l'agente implementando gli ambiti richiesti di invoke agent, run tool e inference. Poi confronta i log del tuo agente con le seguenti liste di attributi per verificare che tutti gli attributi richiesti siano presenti. Cattura attributi su ogni mirino o tramite il bagluggage 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.platformid": "Optional",
"gen_ai.agent.type": "Optional",
"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.agent.platformid": "Optional",
"gen_ai.caller.agent.type": "Optional",
"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.platformid": "Optional",
"gen_ai.agent.type": "Optional",
"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": "Optional",
"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",
"hiring.manager.id": "Optional",
"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.platformid": "Optional",
"gen_ai.agent.type": "Optional",
"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": "Optional",
"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 sia catturata correttamente. Segui la guida ai test per impostare il tuo ambiente. Poi concentrati principalmente sulla sezione View Observability logs per verificare che la tua implementazione di osservabilità sta funzionando come previsto.
Verifica:
- Passa a:
https://admin.cloud.microsoft/#/agents/all - Seleziona il tuo agente > Attività
- Dovresti vedere le sessioni e le chiamate agli strumenti
Risoluzione dei problemi
Questa sezione descrive i problemi comuni durante l'implementazione e l'utilizzo dell'osservabilità.
Suggerimento
La Guida alla risoluzione dei problemi dell'Agente 365 contiene raccomandazioni di alto livello, best practice e link a contenuti di risoluzione dei problemi per ogni fase del ciclo di sviluppo dell'Agente 365.
I dati di osservabilità non compaiono
Sintomi:
- L'agente è in corsa
- Niente telemetria nel centro amministrativo
- Non si vede l'attività degli agenti
Causa radice:
- L'osservabilità non è abilitata
- Errori di configurazione
- Problemi con i risolutori dei token
Soluzioni: Prova i seguenti passaggi per risolvere il problema:
Verifica l'osservabilità è abilitata
Abilita i flag di osservabilità nel tuo ambiente.
# .env file ENABLE_OBSERVABILITY=true ENABLE_A365_OBSERVABILITY_EXPORTER=trueControlla la configurazione del token resolver
Assicurati che il tuo codice implementi correttamente il risolver dei token. Controlla direttamente l'ultimo codice nell'SDK.
Controlla la presenza di errori nei log
Usa il
az webapp log tailcomando per cercare nei log errori legati all'osservabilità.# Look for observability-related errors az webapp log tail --name <your-app-name> --resource-group <your-resource-group> | Select-String "observability"Verifica esportazione telemetria
Conferma che la telemetria è generata ed esportata come previsto.
- Aggiungi l'esportatore console per i test
- Controlla se la telemetria viene generata localmente
Scopri di più sul test dell'osservabilità: