Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Vigtigt!
Anvend Microsoft OpenTelemetry Distro for at aktivere observationsmulighed i Agent 365. Denne distribution leverer én samlet observationsmuligheds-SDK til hele Microsofts økosystem, som understøtter Agent 365, Microsoft Foundry, Azure Monitor og meget mere. Den nuværende tilgang, som er beskrevet i denne artikel, fungerer stadig uden ændringer. Du kan finde migrationsvejledninger på forskellige sprog i følgende vejledninger:
- Python-migreringsvejledning
- JavaScript/TypeScript-migreringsguide
- .NET-migrationsguide For den underliggende datamodel, identitet og autentificering, omfang og samtykke samt grænser – som gælder for alle integrationsveje – se koncepter for observationsmuligheder i Agent 365.
Bemærk!
Observationsmulighed er et af de trinvise mulighedsniveauer i Kom i gang med Agent 365-udvikling og gælder for alle agenttyper.
Hvis du vil deltage i Agent 365-økosystemet, skal du føje funktioner for Agent 365-observerbarhed i din agent. Agent 365-observerbarhed bygger på OpenTelemetry (OTel) og giver en samlet struktur til at registrere telemetri på en ensartet og sikker måde på tværs af alle agentplatforme. Ved at implementere denne påkrævede komponent giver du it-administratorer mulighed for at overvåge din agents aktivitet i Microsoft Administration, og du giver sikkerhedsteams tilladelse til at bruge Defender og Purview til overholdelse og trusselsregistrering.
Vigtigste fordele
- Komplet synlighed: Hent omfattende telemetri for hver agentaktivering, herunder sessioner, værktøjskald og undtagelser, hvilket giver dig fuld sporing på tværs af platforme.
- Aktivering af sikkerhed og overholdelse af angivne standarder: Indfør samlede overvågningslogge i Defender og Purview, hvilket muliggør avancerede sikkerhedsscenarier og rapportering af overholdelse af angivne standarder for din agent.
- Fleksibilitet på tværs af platforme: Bygger på OTel-standarder og understøtter forskellige kørsler og platforme, f.eks. Copilot Studio, Foundry og fremtidige agentstrukturer.
- Driftseffektivitet for administratorer: Angiv central observerbarhed i Microsoft 365 Administration, hvilket reducerer fejlfindingstiden og forbedrer styringen med rollebaserede adgangskontroller for it-teams, der administrerer din agent.
Understøttede agenter
Følgende agenttyper understøtter Agent 365-observationsmulighed:
- Microsoft Agent 365-aktiverede agenter: Brug observationsmuligheds-SDK'en til at instrumentere din agent.
- Brugerdefinerede motoragenter: Brug observationsmuligheds-SDK'en til at instrumentere din agent.
- Beskrivende agenter: Observationsmulighed understøttes uden yderligere konfiguration. SDK-implementering er ikke nødvendig.
Installation
Brug disse kommandoer til at installere modulerne for observerbarhed for de sprog, der understøttes af Agent 365.
Installer de primære observationsmuligheds- og runtime-pakker. Alle agenter, der benytter Agent 365-observerbarhed, har brug for disse pakker.
pip install microsoft-agents-a365-observability-core
pip install microsoft-agents-a365-runtime
Hvis din agent bruger Microsoft Agents Hosting-pakken, skal du installere hosting-integrationspakken. Pakken indeholder middleware, der automatisk udfylder bagage og områder fra TurnContext, og inkluderer token-cachelagring til observationsmuligheds-eksportøren.
pip install microsoft-agents-a365-observability-hosting
Hvis din agent bruger et af de understøttede AI-frameworks, skal du installere den tilsvarende automatiske instrumenteringsudvidelse for automatisk at registrere telemetri uden manuel instrumenteringskode. Få konfigurationsoplysninger i Automatisk instrumentering.
# For Semantic Kernel
pip install microsoft-agents-a365-observability-extensions-semantic-kernel
# For OpenAI Agents SDK
pip install microsoft-agents-a365-observability-extensions-openai
# For Microsoft Agent Framework
pip install microsoft-agents-a365-observability-extensions-agent-framework
# For LangChain
pip install microsoft-agents-a365-observability-extensions-langchain
Konfiguration
Brug følgende indstillinger til at aktivere og tilpasse Agent 365-observerbarhed for din agent.
Sæt miljøvariablen ENABLE_A365_OBSERVABILITY_EXPORTER til true for at få observationsmulighed. Denne indstilling eksporterer logfiler til tjenesten og kræver, at du angiver en token_resolver. Ellers anvendes konsoleksportøren.
from microsoft_agents_a365.observability.core import configure
def token_resolver(agent_id: str, tenant_id: str) -> str | None:
# Implement secure token retrieval here
return "Bearer <token>"
configure(
service_name="my-agent-service",
service_namespace="my.namespace",
token_resolver=token_resolver,
)
Token-løsningsfunktionen kan ikke logføre på konsollen.
Du kan tilpasse eksportørens funktionsmåde ved at videregive en Agent365ExporterOptions-forekomst til exporter_options. Når exporter_options angives, tilsidesætter den parametrene token_resolver og cluster_category.
from microsoft_agents_a365.observability.core import configure, Agent365ExporterOptions
configure(
service_name="my-agent-service",
service_namespace="my.namespace",
exporter_options=Agent365ExporterOptions(
cluster_category="prod",
token_resolver=token_resolver,
),
suppress_invoke_agent_input=True,
)
I følgende tabel beskrives de valgfri parametre til configure().
| Parameter | Beskrivelse | Standard |
|---|---|---|
logger_name |
Navnet på Python-logføringsprogrammet, der bruges til fejlfinding og konsollogfils-output. | microsoft_agents_a365.observability.core |
exporter_options |
En Agent365ExporterOptions-forekomst, der konfigurerer token-løsningsfunktionen og klyngekategorien sammen. |
None |
suppress_invoke_agent_input |
Når True, skjules inputbeskeder i InvokeAgent områder. |
False |
I følgende tabel beskrives de valgfri egenskaber til Agent365ExporterOptions.
| Egenskab | Beskrivelse | Standard |
|---|---|---|
use_s2s_endpoint |
Hvis True, bruges service-til-service slutpunktstien. |
False |
max_queue_size |
Maksimal køstørrelse for batchprocessoren. | 2048 |
scheduled_delay_ms |
Forsinkelse i millisekunder mellem eksportbatches. | 5000 |
exporter_timeout_ms |
Timeout i millisekunder for eksportoperationen. | 30000 |
max_export_batch_size |
Maksimal batchstørrelse for eksportoperationer. | 512 |
Bagageattributter
Brug BaggageBuilder til at angive kontekstafhængige oplysninger, der flyder gennem alle områder i en anmodning.
SDK'et implementerer en SpanProcessor, der kopierer alle ikke-tomme bagageposter til nystartede spænd uden at overskrive eksisterende attributter.
from microsoft_agents_a365.observability.core import BaggageBuilder
with (
BaggageBuilder()
.tenant_id("tenant-123")
.agent_id("agent-456")
.conversation_id("conv-789")
.build()
):
# Any spans started in this context will receive these as attributes
pass
Du kan udfylde BaggageBuilder fra TurnContext automatisk ved at bruge populate-hjælperen i microsoft-agents-a365-observability-hosting-pakken. Denne hjælper udtrækker automatisk oplysninger om opkaldende part, agent, lejer, kanal og samtaledetaljer fra aktiviteten.
from microsoft_agents.hosting.core.turn_context import TurnContext
from microsoft_agents_a365.observability.core import BaggageBuilder
from microsoft_agents_a365.observability.hosting.scope_helpers.populate_baggage import populate
builder = BaggageBuilder()
populate(builder, turn_context)
with builder.build():
# Baggage is auto-populated from the TurnContext activity
pass
Bagage-middleware
Hvis din agent bruger hosting-integrationspakken, registrer bagage-middleware for automatisk at udfylde bagage for hver indkommende anmodning. Dette trin fjerner behovet for manuelt at kalde BaggageBuilder i hver aktivitets-handler.
Registrer BaggageMiddleware i sættet med adapter-middleware. Det udtrækker automatisk opkalder-, agent-, lejer-, kanal- og samtaleoplysninger fra hver indkommende TurnContext og pakker anmodningen ind i et bagageomfang.
from microsoft_agents_a365.observability.hosting import BaggageMiddleware
adapter.use(BaggageMiddleware())
Alternativt kan du bruge ObservabilityHostingManager til at konfigurere bagage-middleware sammen med andre hostingfunktioner:
from microsoft_agents_a365.observability.hosting import ObservabilityHostingManager, ObservabilityHostingOptions
options = ObservabilityHostingOptions(enable_baggage=True)
ObservabilityHostingManager.configure(adapter.middleware_set, options)
Middleware springer bagageopsætning over for asynkrone svar (ContinueConversation-begivenheder) for at undgå at overskrive bagage, som den oprindelige anmodning allerede har sat.
Tokenløsningsfunktion
Når du bruger Agent 365-eksportøren, skal du angive en tokenløsningsfunktion, der returnerer en godkendelsestoken.
Når du bruger Agent 365-observerbarheds-SDK'et med Agent Hosting-strukturen, kan du generere tokens ved hjælp af TurnContext fra agentaktiviteterne.
Følgende kodeeksempel viser, hvordan du genererer et token ved hjælp af microsoft_agents.hosting.core-SDK. Det godkendelsestoken, der genereres her, bruges til at eksportere områder til A365-indlæsningstjenesten. Agenter kan generere et token selv ved for eksempel ved at bruge Microsoft Authentication Library (MSAL), men de skal sikre, at det pågældende token har et observationsmuligheds-omfang.
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 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
Hvis du har en agent, der er lavet med A365 CLI og bruger en AI-holdkammerat samt pakken Microsoft Agent 365 Observability Hosting Library, skal du bruge AgenticTokenCache til automatisk håndtering af token-cachelagring. Registrer dit token én gang pr. agent og lejer under en aktivitets-handler, og angiv cache.get_observability_token som token_resolver i din observationsmuligheds-konfiguration.
from microsoft_agents_a365.observability.core import configure
from microsoft_agents_a365.observability.hosting.token_cache_helpers import (
AgenticTokenCache,
AgenticTokenStruct,
)
from microsoft_agents_a365.runtime import get_observability_authentication_scope
# Create a shared cache instance
token_cache = AgenticTokenCache()
# Use the cache as your token resolver in configure()
configure(
service_name="my-agent-service",
service_namespace="my.namespace",
token_resolver=token_cache.get_observability_token,
)
@AGENT_APP.activity("message", auth_handlers=["AGENTIC"])
async def on_message(context: TurnContext, _state: TurnState):
token_cache.register_observability(
agent_id="agent-456",
tenant_id="tenant-123",
token_generator=AgenticTokenStruct(
authorization=AGENT_APP.auth,
turn_context=context,
),
observability_scopes=get_observability_authentication_scope(),
)
Automatisk instrumentering
Automatisk instrumentering lytter automatisk til eksisterende telemetrisignaler for agentbaserede strukturer (SDK'er) efter sporinger og videresender dem til tjenesten Agent 365-observerbarhed. Denne funktion fjerner behovet for, at udviklere skal skrive overvågningskoden manuelt, forenkler konfigurationen og sikrer ensartet sporing af ydeevnen.
Vigtigt!
Automatisk instrumentering udfylder kun almindelige OTel-attributter. Du skal tilføje Microsoft-specifikke attributter gennem BaggageBuilder. Du kan se, hvilke attributter der mangler, ved at validere outputtet fra din konsol i forhold til butikslogfiler for det differentierede sæt.
Flere SDK’er og platforme understøtter automatisk instrumentering:
| Platform | Understøttede SDK'er/strukturer |
|---|---|
| .NET | Semantic Kernel, OpenAI, Agent Framework |
| Python | Semantic Kernel, OpenAI, Agent Framework, LangChain |
| Node.js | OpenAI, LangChain |
Bemærk!
Understøttelse af automatisk instrumentering varierer afhængigt af platforms- og SDK-implementering.
Semantisk kerne
Automatisk instrumentering kræver brug af bagagegenerator. Angiv agent-id og lejer-id ved hjælp af BaggageBuilder.
Installere pakken.
pip install microsoft-agents-a365-observability-extensions-semantic-kernel
Konfigurer observerbarhed.
from microsoft_agents_a365.observability.core import configure
from microsoft_agents_a365.observability.extensions.semantickernel.trace_instrumentor 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
Automatisk instrumentering kræver brug af bagagegenerator. Angiv agent-id og lejer-id ved hjælp af BaggageBuilder.
Installere pakken.
pip install microsoft-agents-a365-observability-extensions-openai
Konfigurer observerbarhed.
from microsoft_agents_a365.observability.core import configure
from microsoft_agents_a365.observability.extensions.openai 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
Agent Framework
Automatisk instrumentering kræver brug af bagagegenerator. Angiv agent-id og lejer-id ved hjælp af BaggageBuilder.
Installere pakken.
pip install microsoft-agents-a365-observability-extensions-agent-framework
Konfigurer observerbarhed.
from microsoft_agents_a365.observability.core import configure
from microsoft_agents_a365.observability.extensions.agentframework import (
AgentFrameworkInstrumentor,
)
# Configure observability
configure(
service_name="AgentFrameworkTracingWithAzureOpenAI",
service_namespace="AgentFrameworkTesting",
)
# Enable auto-instrumentation
AgentFrameworkInstrumentor().instrument()
LangChain Framework
Automatisk instrumentering kræver brug af bagagegenerator. Angiv agent-id og lejer-id ved hjælp af BaggageBuilder.
Installere pakken.
pip install microsoft-agents-a365-observability-extensions-langchain
Konfigurer observerbarhed.
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
Manuel instrumentering
Brug Agent 365-observerbarheds-SDK'et til at forstå agentens interne arbejde.
SDK'et stiller omfang til rådighed, som du kan starte: InvokeAgentScope, ExecuteToolScope, InferenceScope og OutputScope.
Agentaktivering
Brug dette omfang i starten af agentprocessen. Når du bruger området for aktivering af agent, kan du hente egenskaber som den aktuelle agent, der aktiveres, agentbrugerdata og meget mere.
from microsoft_agents_a365.observability.core import (
InvokeAgentScope,
InvokeAgentScopeDetails,
AgentDetails,
CallerDetails,
UserDetails,
Channel,
Request,
ServiceEndpoint,
)
agent_details = AgentDetails(
agent_id="agent-456",
agent_name="My Agent",
agent_description="An AI agent powered by Azure OpenAI",
agentic_user_id="auid-123",
agentic_user_email="agent@contoso.com",
agent_blueprint_id="blueprint-789",
tenant_id="tenant-123",
)
scope_details = InvokeAgentScopeDetails(
endpoint=ServiceEndpoint(hostname="myagent.contoso.com", port=443),
)
request = Request(
content="User asks a question",
session_id="session-42",
conversation_id="conv-xyz",
channel=Channel(name="msteams"),
)
caller_details = CallerDetails(
user_details=UserDetails(
user_id="user-123",
user_email="jane.doe@contoso.com",
user_name="Jane Doe",
),
)
with InvokeAgentScope.start(request, scope_details, agent_details, caller_details):
# Perform agent invocation logic
response = call_agent(...)
Værktøjsudførelse
De følgende eksempler viser, hvordan du kan tilføje sporing af observationsmulighed i din agents værktøjsudførelse. Denne sporing registrerer telemetri til overvågning og kontrol.
from microsoft_agents_a365.observability.core import (
ExecuteToolScope,
ToolCallDetails,
Request,
ServiceEndpoint,
)
# Use the same agent_details and request instances from the InvokeAgentScope example above
tool_details = ToolCallDetails(
tool_name="summarize",
tool_type="function",
tool_call_id="tc-001",
arguments="{'text': '...'}",
description="Summarize provided text",
endpoint=ServiceEndpoint(hostname="tools.contoso.com", port=8080),
)
with ExecuteToolScope.start(request, tool_details, agent_details) as scope:
result = run_tool(tool_details)
scope.record_response(result)
Inferens
I følgende eksempler kan du se, hvordan du instrumenter inferenskald til AI-modeller med registrering af observerbarhed for at registrere tokenanvendelse, modeldetaljer og svarmetadata.
from microsoft_agents_a365.observability.core import (
InferenceScope,
InferenceCallDetails,
InferenceOperationType,
)
# Use the same agent_details and request instances from the InvokeAgentScope example above
inference_details = InferenceCallDetails(
operationName=InferenceOperationType.CHAT,
model="gpt-4o-mini",
providerName="azure-openai",
inputTokens=123,
outputTokens=456,
finishReasons=["stop"],
)
with InferenceScope.start(request, inference_details, agent_details) as scope:
completion = call_llm(...)
scope.record_output_messages([completion.text])
scope.record_input_tokens(completion.usage.input_tokens)
scope.record_output_tokens(completion.usage.output_tokens)
Afgang
Brug dette omfang til asynkrone scenarier, hvor InvokeAgentScope, ExecuteToolScope eller InferenceScope ikke kan registrere output synkront. Start OutputScope som et underordnet område for at registrere de endelige outputbeskeder, når det overordnede omfang er afsluttet.
from microsoft_agents_a365.observability.core import (
OutputScope,
Response,
SpanDetails,
)
# Use the same agent_details and request instances from the InvokeAgentScope example above
# Get the parent context from the originating scope
parent_context = invoke_scope.get_context()
response = Response(messages=["Here is your organized inbox with 15 urgent emails."])
with OutputScope.start(
request,
response,
agent_details,
span_details=SpanDetails(parent_context=parent_context),
):
# Output messages are recorded automatically from the response
pass
Valider lokalt
Du kan bekræfte, at du har integreret med observationsmuligheds-SDK'et, ved at undersøge de konsollogfiler, der er genereret af din agent, og logfiler fra observationsmuligheds-SDK'et.
Angiv miljøvariablen ENABLE_A365_OBSERVABILITY_EXPORTER til false. Denne indstilling eksporterer områder (sporinger) til konsollen.
Du kan undersøge eksportfejl ved at aktivere detaljeret logføring. Dette gør du ved at angive ENABLE_A365_OBSERVABILITY_EXPORTER som true og konfigurere fejlsøgnings-logføring i din programstart:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger("microsoft_agents_a365.observability.core").setLevel(logging.DEBUG)
# Or target only the exporter:
logging.getLogger(
"microsoft_agents_a365.observability.core.exporters.agent365_exporter"
).setLevel(logging.DEBUG)
Vigtige logbeskeder:
DEBUG Token resolved for agent {agentId} tenant {tenantId}
DEBUG Exporting {n} spans to {url}
DEBUG HTTP 200 - correlation ID: abc-123
ERROR Token resolution failed: {error}
ERROR HTTP 401 exporting spans - correlation ID: abc-123
INFO No spans with tenant/agent identity found; nothing exported.
Visning af eksporterede logfiler
For at kunne se agenttelemetri i Microsoft Purview eller Microsoft Defender, skal følgende krav være opfyldt:
- Microsoft Purview: Revision skal være aktiveret for din organisation. For instruktioner, se Slå revision til eller fra.
-
Microsoft Defender: Avanceret jagt skal være konfigureret for at få adgang til tabellen
CloudAppEvents. For yderligere oplysninger, se CloudAppEvents-tabellen i avanceret jagtskema.
Validering til butiksudgivelse
Vigtigt!
En vellykket butiksvalidering kræver, at din agent skalimplementere InvokeAgentScope-, InferenceScope- og ExecuteToolScope-omfang. Disse tre omfang er nødvendige, hvis du vil publicere.
Før du publicerer, skal du bruge logfiler fra konsollen til at validere din integration af observationsmulighed for agenten ved at implementere de nødvendige invoke agent-, execute tool, inference- og output-omfang. Sammenlign derefter din agents logfiler med følgende attributlister for at bekræfte, at alle nødvendige attributter er til stede. Registrer attributter på hvert omfang eller via bagage-udvikleren, og tilføj valgfrie attributter efter behov.
Få yderligere oplysninger om krav til publicering i butikken i retningslinjer for butiksvalidering.
InvokeAgentScope-attributter
Følgende liste giver et overblik over de obligatoriske og valgfri telemetriattributter, der registreres, når du starter en InvokeAgentScope.
"attributes": {
"error.type": "Optional",
"microsoft.a365.agent.blueprint.id": "Required",
"gen_ai.agent.description": "Optional",
"gen_ai.agent.id": "Required",
"gen_ai.agent.name": "Required",
"microsoft.a365.agent.platform.id": "Optional",
"microsoft.agent.user.email": "Required",
"microsoft.agent.user.id": "Required",
"gen_ai.agent.version": "Optional",
"microsoft.a365.caller.agent.blueprint.id": "Optional",
"microsoft.a365.caller.agent.id": "Optional",
"microsoft.a365.caller.agent.name": "Optional",
"microsoft.a365.caller.agent.platform.id": "Optional",
"microsoft.a365.caller.agent.user.email": "Optional",
"microsoft.a365.caller.agent.user.id": "Optional",
"microsoft.a365.caller.agent.version": "Optional",
"client.address": "Required",
"user.id": "Required",
"user.name": "Optional",
"user.email": "Required",
"microsoft.channel.link": "Optional",
"microsoft.channel.name": "Required",
"gen_ai.conversation.id": "Required",
"microsoft.conversation.item.link": "Optional",
"gen_ai.input.messages": "Required",
"gen_ai.operation.name": "Required",
"gen_ai.output.messages": "Required",
"server.address": "Required",
"server.port": "Required",
"microsoft.session.id": "Optional",
"microsoft.session.description": "Optional",
"microsoft.tenant.id": "Required"
}
ExecuteToolScope-attributter
Følgende liste giver et overblik over de obligatoriske og valgfri telemetriattributter, der registreres, når du starter en ExecuteToolScope.
"attributes": {
"error.type": "Optional",
"microsoft.a365.agent.blueprint.id": "Required",
"gen_ai.agent.description": "Optional",
"gen_ai.agent.id": "Required",
"gen_ai.agent.name": "Required",
"microsoft.a365.agent.platform.id": "Optional",
"microsoft.agent.user.email": "Required",
"microsoft.agent.user.id": "Required",
"gen_ai.agent.version": "Optional",
"client.address": "Required",
"user.id": "Required",
"user.name": "Optional",
"user.email": "Required",
"microsoft.channel.link": "Optional",
"microsoft.channel.name": "Required",
"gen_ai.conversation.id": "Required",
"microsoft.conversation.item.link": "Optional",
"gen_ai.operation.name": "Required",
"gen_ai.tool.call.arguments": "Required",
"gen_ai.tool.call.id": "Required",
"gen_ai.tool.call.result": "Required",
"gen_ai.tool.description": "Optional",
"gen_ai.tool.name": "Required",
"gen_ai.tool.type": "Required",
"server.address": "Optional",
"server.port": "Optional",
"microsoft.session.id": "Optional",
"microsoft.session.description": "Optional",
"microsoft.tenant.id": "Required"
}
InferenceScope-attributter
Følgende liste giver et overblik over de obligatoriske og valgfri telemetriattributter, der registreres, når du starter en InferenceScope.
"attributes": {
"error.type": "Optional",
"microsoft.a365.agent.blueprint.id": "Required",
"gen_ai.agent.description": "Optional",
"gen_ai.agent.id": "Required",
"gen_ai.agent.name": "Required",
"microsoft.a365.agent.platform.id": "Optional",
"microsoft.a365.agent.thought.process": "Optional",
"microsoft.agent.user.email": "Required",
"microsoft.agent.user.id": "Required",
"gen_ai.agent.version": "Optional",
"client.address": "Required",
"user.id": "Required",
"user.name": "Optional",
"user.email": "Required",
"microsoft.channel.link": "Optional",
"microsoft.channel.name": "Required",
"gen_ai.conversation.id": "Required",
"microsoft.conversation.item.link": "Optional",
"gen_ai.input.messages": "Required",
"gen_ai.operation.name": "Required",
"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",
"server.address": "Optional",
"server.port": "Optional",
"microsoft.session.description": "Optional",
"microsoft.session.id": "Optional",
"microsoft.tenant.id": "Required"
}
OutputScope-attributter
Følgende liste giver et overblik over de obligatoriske og valgfri telemetriattributter, der registreres, når du starter en OutputScope. Brug dette omfang til asynkrone scenarier, hvor det overordnede omfang ikke kan registrere outputdata synkront.
"attributes": {
"microsoft.a365.agent.blueprint.id": "Required",
"gen_ai.agent.description": "Optional",
"gen_ai.agent.id": "Required",
"gen_ai.agent.name": "Required",
"microsoft.a365.agent.platform.id": "Optional",
"microsoft.agent.user.email": "Required",
"microsoft.agent.user.id": "Required",
"gen_ai.agent.version": "Optional",
"client.address": "Required",
"user.id": "Required",
"user.name": "Optional",
"user.email": "Required",
"microsoft.channel.link": "Optional",
"microsoft.channel.name": "Required",
"gen_ai.conversation.id": "Required",
"microsoft.conversation.item.link": "Optional",
"gen_ai.operation.name": "Required",
"gen_ai.output.messages": "Required",
"microsoft.session.id": "Optional",
"microsoft.session.description": "Optional",
"microsoft.tenant.id": "Required"
}
Test din agent med observerbarhed
Når du har implementeret observerbarhed i din agent, skal du teste for at sikre, at telemetri registreres korrekt. Følg testguiden for at indstille dit miljø. Fokuser derefter primært på sektionen Vis observerbarhedslogfiler for at kontrollere, at din implementering af observationsmuligheden fungerer som forventet.
Bekræftelse:
- Gå til:
https://admin.cloud.microsoft/#/agents/all - Vælg din agent > Aktivitet
- Du ser sessioner og værktøjskald
Fejlfinding
Denne sektion beskriver typiske problemer i forbindelse med implementering og brug af observationsmulighed.
| Problem | Beskrivelse |
|---|---|
| Observabilitetsdata vises ikke | Der vises ingen telemetri, fordi eksport ikke er aktiveret, konfigurationen er forkert, eller token-løsningen mislykkes. |
| Manglende lejer-id eller agent-id - spænd sprunget over | Områder droppes før eksport, når identitetsattributter, der kræves til partitionering, mangler. |
| Fejl ved token-løsning - eksporten springes over eller er uautoriseret | Eksportanmodninger mislykkes eller springes over, når løsningsfunktionen ikke returnerer et token eller støder på en undtagelse. |
| HTTP 401 Uautoriseret | Godkendelse lykkes syntaktisk, men dit token er ugyldigt og kan ikke indlæses på grund af omfang, type eller udløb. |
| HTTP 403 Ikke tilladt | Adgang nægtes, fordi lejeren ikke har licens, eller fordi der mangler tilladelser til observationsmulighed. |
| HTTP 403 Ikke tilladt - agent-ID uoverensstemmelse | Anmodningen afvises, når agentidentiteten i URL'en ikke matcher den identitet, som dit token repræsenterer. |
| HTTP 429 eller 5xx-fejl – midlertidige fejl | Midlertidig begrænsning eller fejl på serveren afbryder eksporten og kan kræve nye justeringsforsøg. |
| Eksport-timeout | Telemetri-batches overstiger konfigurerede timeout-vinduer på grund af netværksforsinkelse eller slutpunktets evne til at svare. |
| Eksport lykkes, men telemetri vises ikke i Defender eller Purview | Indtagelsen fuldføres, men downstream-synligheden forsinkes eller blokeres af produktforudsætninger. |
Tip
Agent 365 Fejlfindingsguide indeholder overordnede anbefalinger til fejlfinding, bedste praksis og links til fejlfindingsindhold for hver fase af udviklingslivscyklussen for Agent 365.
Observabilitetsdata vises ikke
Symptomer:
- Agenten kører
- Ingen telemetri i Administration
- Agentaktivitet er ikke synlig
Rodårsag:
- Observationsmuligheden er ikke aktiveret
- Konfigurationsfejl
- Token-resolver-problemer
Løsninger: Prøv følgende trin for at løse problemet:
Bekræft, at observationsmuligheds-eksportøren er aktiveret
Du skal eksplicit aktivere Agent 365-eksportøren. Når eksportøren er deaktiveret, bruger SDK'en i stedet en konsoleksportør, og telemetri sendes ikke til tjenesten. Få oplysninger om konfiguration i Konfiguration.
Kontrollér konfigurationen af token-resolver
Eksportøren kræver en gyldig token-resolver, der returnerer et Bearer-token for hver eksportanmodning. Hvis token-resolveren mangler eller returnerer
null, springes eksporten lydløst over. Sørg for, at din kode implementerer token-løsningsfunktionen korrekt. Få flere oplysninger i Token-løsningsfunktion.Se efter, om der er fejl i logfilerne
Aktivér detaljeret logføring, og brug
az webapp log tail-kommandoen til at søge i logfiler og se, om der er fejl i observationsmuligheden. Få flere oplysninger om, hvordan du aktiverer logføring pr. platform, i Valider lokalt.# Look for observability-related errors az webapp log tail --name <your-app-name> --resource-group <your-resource-group> | Select-String "observability"Bekræft telemetrieksport
Bekræft at telemetri genereres og eksporteres som forventet.
- Tilføj en konsoleksportør, og kontrollér, om telemetri genereres lokalt. Få yderligere oplysninger om, hvordan du bruger konsoleksportøren og validerer output, i Valider lokalt.
Manglende lejer-id eller agent-id - spænd sprunget over
Symptomer: Systemet dropper uovervåget spænd og eksporterer dem aldrig. Nogle SDK'er logfører antallet af udeladte områder eller viser en besked i stil med "Ingen områder med lejer-/agentidentitet fundet." Andre dropper dem uden at logføre det.
Løsning:
- Før eksporten opdeler SDK'en områder efter lejer- og agentidentitet. Områder, der enten mangler et lejer- eller agent-id, droppes af systemet og sendes aldrig til tjenesten.
- Sørg for at
BaggageBuilderer indstillet med lejer-id og agent-id, før du opretter spænd. Disse værdier overføres gennem OpenTelemetry-konteksten og knyttes til alle spænd, der oprettes inden for bagageområdet. For det platformspecifikke API, se Bagageattributter. - Bekræft, at
TurnContext-aktiviteten har en gyldig modtager med agentidentitet, hvis du anvender bagage-middleware eller konteksthjælperen fra hosting-integrationspakken til at udfylde disse id'er.
Fejl ved token-fortolkning - eksporten springes over eller er uautoriseret
Symptomer: Token-resolveren returnerer null eller en fejl. Afhængigt af SDK'et springes eksporten enten helt over, eller også sendes anmodningen uden godkendelsesheader og mislykkes med HTTP 401.
Løsning:
- Token-løsningsfunktionen er påkrævet ved initialiseringen. Hvis den mangler, udløser eksportøren en fejl ved opstart. Kontroller at der er en token-resolver til rådighed og returnerer et gyldigt Bearer-token.
- Sørg for, at det korrekte lejer- og agent-id bruges til
BaggageBuilder, da disse værdier sendes til token-løsningsfunktionen. - For Azure-hostede agenter, kontrollér, at Administreret id har den nødvendige API-tilladelse til observabilitetsomfang.
HTTP 401 Uautoriseret
Symptomer: Eksporten mislykkes med HTTP 401. Eksportøren forsøger ikke denne fejl igen.
Løsning:
- Kontrollér, at token målgruppe matcher observabilitetsslutpunktets omfang.
- Kontrollér, at token-resolveren ikke returnerer et stedfortræderbruger-token, et token til en forkert målgruppe eller et udløbet token.
HTTP 403 Ikke tilladt
Symptomer: Eksporten mislykkes med HTTP 403. Eksportøren forsøger ikke denne fejl igen.
Rodårsag: En HTTP 403-fejl kan have forskellige årsager. Gennemgå følgende løsninger i den angivne rækkefølge.
Løsning:
Manglende licens — Kontroller, at din lejer har én af de følgende licenser tildelt i Microsoft 365 Administration:
- Test - Microsoft 365 E7
- Microsoft 365 E7
- Microsoft Agent 365 Frontier
Manglende
Agent365.Observability.OtelWrite-tilladelse – hvis du for nylig har opgraderet dine observationsmulighedspakker, skal du give denne tilladelse. Se den vigtige bemærkning i næste afsnit.
Vigtigt!
Eksisterende agenter, der opgraderer til disse pakkeversioner, kræver et ekstra trin
Dette trin gælder kun, hvis du opgraderer en eksisterende agent. Nye agentinstallationer kræver ikke dette trin. Hvis du opgraderer til følgende pakkeversioner eller nyere, skal du tildele den nye Agent365.Observability.OtelWrite-tilladelse til din identitet (Administreret id eller app-registrering). Uden denne tilladelse mislykkes telemetrieksporten med HTTP 403.
| Platform | Minimumsversion, der kræver dette trin |
|---|---|
| .NET | 0.3-beta |
| Node.js | 0.2.0-preview.1 |
| Python | 0.3.0 |
Giv tilladelsen ved at vælge en af følgende muligheder.
Mulighed A – Agent 365 CLI (kræver en Global Administrator-konto – kør dette i agentprojektmappen med a365.config.json, eller brug --agent-name)
a365 setup permissions bot
Eller uden en config-fil:
a365 setup permissions bot --agent-name "<agent-name>"
Denne kommando tildeler alle manglende tilladelser på blueprintet, herunder observationsmuligheds-omfang.
Mulighed B – Entra Portal (kræver ingen konfigurationsfiler – kræver Global Administrator-adgang til blueprint-appens registrering)
- Gå til Entra Portal>App-registreringer>, vælg din Blueprint-app.
- Gå til API-tilladelser>Tilføj en tilladelse>API'er, som min organisation bruger>, søg efter
9b975845-388f-4429-889e-eab1ef63949c. - Vælg Delegerede tilladelser>, tjek
Agent365.Observability.OtelWrite>Tilføj tilladelser. - Gentag trin 2–3, og vælg denne gang Applikationstilladelser>, afkryds
Agent365.Observability.OtelWrite>Tilføj tilladelser. - Klik på Giv administratorsamtykke og bekræft.
Både Agent365.Observability.OtelWrite (delegeret) og Agent365.Observability.OtelWrite (applikation) skal have statussen Granted.
HTTP 403 Ikke tilladt – agent-ID uoverensstemmelse
Symptomer: Eksporten fejler med HTTP 403 og en serverbesked, der ligner 403 Forbidden med agent-ID-mismatch fejl ved kald til Agent 365-sporslutpunkter.
Rodårsag: Denne fejl opstår, når du bruger blueprint-klient-id i stedet for agent-instansens klient-id ved konfiguration af agentdetaljerne. Agent-id'et i eksport-URL'en stemmer ikke overens med den identitet, der er autoriseret af tokenet, så sporslutpunktet afviser anmodningen.
Løsning:
- Kontroller om lejer-ID'et er tilføjet på listen over tilladte lejere i Agent 365.
- Konfigurer agentdetaljerne med agentinstansens klient-ID (ikke Blueprint-klient-ID'et).
- Verificér den genererede eksport-URL - den bliver logget, hvis du aktiverer din logger. Kontrollér, at agent-ID'et i URL'en stemmer overens med agentinstansens klient-ID.
- Se, hvordan du aktiverer diagnosticeringslogføring pr. SDK, i Valider lokalt.
HTTP 429 eller 5xx-fejl – midlertidige fejl
Symptomer: Eksport fejler med en forbigående HTTP-statuskode som 429 eller 5xx.
Løsning:
- Disse fejl er som regel forbigående og løser sig selv. Python- og JavaScript-SDK'erne prøver automatisk igen ved HTTP-statuskoderne 408, 429 og 5xx op til tre gange med eksponentiel backoff. .NET SDK'en prøver ikke automatisk igen.
- Hvis fejlene fortsætter, kontrollér dashboardet med Service Health.
- Overvej at reducere eksportfrekvensen ved at øge det planlagte tidsinterval mellem batchene eller øge batchstørrelsen for eksport. Se konfigurationsmuligheder pr. platform i
Agent365ExporterOptions-tabellen i Konfiguration.
Eksport-timeout
Symptomer: Eksportforsøg går i timeout.
Løsning:
- Kontroller netværksforbindelsen til observabilitetsslutpunktet.
- Timeout-standarder varierer fra platform til platform. Standard-timeout i HTTP-anmodninger er 30 sekunder. Nogle SDK'er har også en separat samlet eksportør-timeout, der dækker hele eksportcyklussen inklusive genforsøg. Få oplysninger om de præcise egenskaber og standardindstillinger pr. platform i
Agent365ExporterOptions-tabellen i Konfiguration. - Hvis der ofte opstår timeout, skal du øge den relevante timeoutværdi i dine eksportørindstillinger.
Eksport lykkes, men telemetri vises ikke i Defender eller Purview
Symptomer: Logfilerne viser, at eksporten lykkedes, men telemetrien vises ikke i Microsoft Defender eller Microsoft Purview.
Løsning:
- Sørg for, at du opfylder forudsætningerne for at se eksporterede logfiler. Kontrol skal være slået til, hvis du bruger Purview. Hvis du bruger Defender, skal du konfigurere avanceret jagt. Få flere oplysninger i Visning af eksporterede logfiler.
- Der kan gå flere minutter, før telemetri bliver synlig efter en vellykket eksport. Vent på, at dataene dukker op, før du undersøger nærmere.
Læs mere om test af observationsmuligheden her:
Relateret indhold
- Agent 365 observabilitetsprincipper – Dataflow, identitetsmodeller, godkendelse, omfang og begrænsninger, der gælder for alle integrationsstier.
- Agent 365 observabilitetsattributreference - Kanonisk spænd-attributskema, som hvert spænd, der indlæses af Agent 365, skal overholde.
- Microsoft OpenTelemetry Distro – den anbefalede samlede SDK til nye integrationer.