Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tärkeää
Ota havaittavuus käyttöön Agent 365:ssä Microsoft OpenTelemetry Distron avulla. Tämä jakelu tarjoaa yhden havaittavuuden SDK:n Microsoftin laajuisesti. Se tukee esimerkiksi Agent 365:tä, Microsoft Foundryä ja Azure Monitoria. Tässä artikkelissa kuvataan nykyinen lähestymistapa, joka toimii edelleen ilman yhteensopivuusongelmia. Seuraavissa oppaissa on lisätietoja siirroista kielen mukaan:
- Python-siirron opas
- JavaScript/TypeScript-siirto-opas
- .NET-siirto-opas Lisätietoja taustalla olevasta tietomallista, käyttäjätiedoista ja todennuksesta, laajuudesta ja suostumuksesta sekä jokaista integrointipolkua koskevista rajoituksista on kohdassa Agent 365:n havaittavuuden käsitteet.
Muistiinpano
Havaittavuus on yksi lisäävistä ominaisuustasoista Agent 365:n kehitystyön aloittaminen -kohdassa. Se koskee kaikkia agenttityyppejä.
Jos haluat osallistua Agent 365 -ekosysteemiin, lisää Agent 365:n havaittavuusominaisuudet agenttiin. Agent 365:n havaittavuus perustuu OpenTelemetryyn (OTel) ja tarjoaa yhtenäisen kehyksen telemetrian keräämiseksi johdonmukaisesti ja turvallisesti agentin kaikissa ympäristöissä. Kun tämä pakollinen komponentti toteutetaan, IT-järjestelmänvalvojat voivat seurata agentin aktiviteettia Microsoft-hallintakeskuksessa ja suojaustiimit voivat käyttää Defender- ja Purview-ratkaisuja vaatimustenmukaisuutta ja uhkien havaitsemista varten.
Avainedut
- Kokonaisvaltainen näkyvyys: Tallenna kattava telemetria jokaiselle agentin kutsulle, mukaan lukien istunnot, työkalukutsut ja poikkeukset, jolloin eri ympäristöissä on tarjolla täysi jäljitettävyys.
- Suojauksen ja vaatimustenmukaisuuden varmistaminen: Toimita yhtenäiset auditointilokit Defenderiin ja Purviewiin, jolloin kehittyneet suojausskenaariot ja vaatimustenmukaisuusraportit voidaan ottaa käyttöön agentille.
- Joustavuus eri ympäristöissä: Hyödynnä OTel-standardeja ja tue erilaisia suorituspalveluita ja ympäristöjä, kuten Copilot Studio, Foundry ja tulevaisuuden agenttikehykset.
- Toiminnan tehokkuus järjestelmänvalvojia varten: Tarjoa keskitettyä havaittavuutta Microsoft 365 -hallintakeskuksessa. Se nopeuttaa vianmääritystä ja tehostaa agentteja hallitsevien IT-tiimien hallintoa roolipohjaisten käyttöoikeuksien avulla.
Tuetut agentit
Seuraavat agenttityypit tukevat Agent 365 -havaittavuutta:
- Microsoft Agent 365:ttä käyttävät agentit: Käytä havaittavuuden SDK:ta agentin ottamisessa käyttöön.
- Mukautetun moduulin agentit: Käytä havaittavuuden SDK:ta agentin ottamisessa käyttöön.
- Deklaratiiviset agentit: Havaittavuutta tuetaan oletusarvoisesti. SDK-toteutusta ei tarvita.
Asentaminen
Käytä näitä komentoja havaittavuusmoduulien asentamisessa Agent 365:n tukemille kielille.
Asenna ydinhavaittavuus ja suorituksenaikaiset paketit. Kaikki agentit, jotka käyttävät Agent 365:n havaittavuutta, tarvitsevat nämä paketit.
pip install microsoft-agents-a365-observability-core
pip install microsoft-agents-a365-runtime
Jos agentti käyttää Microsoftin agenttien isännöinti -pakettia, asenna isännöinnin integrointipaketti. Se sisältää väliohjelmiston, joka täyttää automaattisesti baggage-ominaisuudet ja laajuudet kohteesta TurnContext ja lisää tunnuksen välimuistiin tallennuksen havainnoitavuuden vientitoiminnolle.
pip install microsoft-agents-a365-observability-hosting
Jos agentti käyttää jotakin tuetuista AI-kehyksistä, asenna vastaava automaattinen instrumentointilaajennus, jotta telemetriatiedot kerätään ilman manuaalista instrumentointikoodia. Lisätietoja määritystiedoista on kohdassa Automaattinen instrumentointi.
# 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
Määritys
Käytä seuraavia asetuksia, jos haluat ottaa käyttöön ja mukauttaa Agent 365:n havaittavuuden agentille.
Määritä ENABLE_A365_OBSERVABILITY_EXPORTER-ympäristömuuttuja kohteelle true havaittavuutta varten. Tämä asetus vie lokit palveluun ja vaatii, että token_resolver annetaan. Muussa tapauksessa käytetään konsolin vientitoimintoa.
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,
)
Tunnuksen ratkaisija ei sisälly konsolin lokiinkirjaukseen.
Voit mukauttaa vientitoiminnon toimintaa välittämällä Agent365ExporterOptions-instanssin parametrina kohteelle exporter_options. Kun exporter_options on annettu, se ohittaa token_resolver- ja cluster_category-parametrit.
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,
)
Alla olevassa taulukossa kuvataan kohteen configure() valinnaiset parametrit.
| Parametri | Description | Oletus |
|---|---|---|
logger_name |
Python-lokitoiminnon nimi, jota käytetään virheenkorjauksessa ja konsolin lokin tuloksessa. | microsoft_agents_a365.observability.core |
exporter_options |
Agent365ExporterOptions-instanssi, joka määrittää tunnuksen ratkaisijan ja klusterin luokan yhdessä. |
None |
suppress_invoke_agent_input |
Kun True, syöteviestit estetään InvokeAgent-aikaväleillä. |
False |
Alla olevassa taulukossa kuvataan kohteen Agent365ExporterOptions valinnaiset ominaisuudet.
| Ominaisuus | Description | Oletus |
|---|---|---|
use_s2s_endpoint |
Kun True on käytössä, käytetään service-to-service-päätepisteen polkua. |
False |
max_queue_size |
Eräkäsittelijän jonon maksimikoko. | 2048 |
scheduled_delay_ms |
Viive millisekunneissa vientierien välillä. | 5000 |
exporter_timeout_ms |
Vientitoiminnon aikakatkaisuaika (ms). | 30000 |
max_export_batch_size |
Suurin eräkoko vientitoiminnoille. | 512 |
Baggage-tietojen määritteet
Käytä BaggageBuilder asettaaksesi kontekstuaalista tietoa, joka välittyy kaikkiin pyynnön spanien läpi.
SDK toteuttaa SpanProcessor -toiminnon, joka kopioi kaikki ei-tyhjät baggage-merkinnät uusiin spaneihin ilman olemassa olevien attribuuttien ylikirjoittamista.
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
Täyttääksesi BaggageBuilder automaattisesti TurnContext perusteella, käytä populate-aputoimintoa microsoft-agents-a365-observability-hosting-paketissa. Tämä apufunktio poimii automaattisesti kutsujan, agentin, vuokraajan, kanavan ja keskustelun tiedot aktiviteetista.
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
Baggage-väliohjelmisto
Jos agenttisi käyttää hosting-integraatiopakettia, rekisteröi baggage-väliohjelmisto, jotta baggage täytetään automaattisesti jokaiselle saapuvalle pyynnölle. Tämä vaihe poistaa tarpeen kutsua BaggageBuilder manuaalisesti jokaisessa aktiviteetin käsittelijässä.
Rekisteröi BaggageMiddleware sovittimen väliohjelmistosarjaan. Se poimii automaattisesti soittajan, agentin, vuokraajan, kanavan ja keskustelun tiedot jokaisesta saapuvasta TurnContext-pyynnöstä ja käärii pyynnön baggage-kontekstiin.
from microsoft_agents_a365.observability.hosting import BaggageMiddleware
adapter.use(BaggageMiddleware())
Vaihtoehtoisesti voidaan käyttää kohdetta ObservabilityHostingManager baggage-väliohjelmiston ja muiden hosting-ominaisuuksien määritykseen:
from microsoft_agents_a365.observability.hosting import ObservabilityHostingManager, ObservabilityHostingOptions
options = ObservabilityHostingOptions(enable_baggage=True)
ObservabilityHostingManager.configure(adapter.middleware_set, options)
Middleware ohittaa baggage-määrityksen asynkronisille vastauksille (ContinueConversation tapahtumille) välttääkseen baggage-tietojen ylikirjoittamisen, jotka alkuperäinen pyyntö on jo asettanut.
Tunnuksen ratkaisija
Kun käytät Agent 365 -vientitoimintoa, määritä tunnuksen ratkaisijafunktio, joka palauttaa todennuksen tunnuksen.
Kun käytät Agent 365 Observability SDK:ta agentti Hosting -kehysrakenteen kanssa, voit luoda tunnuksia käyttämällä TurnContext agenttitoiminnoista.
Seuraavassa esimerkissä näytetään, miten tunnus luodaan microsoft_agents.hosting.core SDK:n avulla. Tässä luotua todennustunnusta käytetään aikavälien viemisessä A365:n vastaanottopalveluun. Agentit voivat luoda tunnisteen itse, esimerkiksi käyttämällä Microsoft Authentication Library (MSAL) -ratkaisua. On kuitenkin varmistettava, että tunnuksessa on havaittavuuden laajuus.
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
Agentille, joka on rakennettu A365 CLI:llä ja käyttää tekoälytiimikaveria sekä Microsoft Agent 365:n havaittavuuden isännöintikirjasto -pakettia, käytetään kohdetta AgenticTokenCache tunnuksen välimuistiin tallentamisen käsittelyssä automaattisesti. Rekisteröi tunnus kerran agenttia ja vuokraajaa kohden aktiviteetin käsittelijän aikana ja välitä cache.get_observability_token kohteena token_resolver havaittavuuden määritykseen.
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(),
)
Automaattinen instrumentointi
Automaattinen instrumentointi kuuntelee agenttikehysten (SDK) olemassa olevia telemetriasignaaleja jäljityksiä varten ja välittää ne Agent 365:n havaittavuuspalveluun. Tämän ominaisuuden ansiosta kehittäjien ei tarvitse kirjoittaa valvontakoodia käsin. Se myös yksinkertaistaa määrityksiä ja varmistaa johdonmukaisen suorituskyvyn seurannan.
Tärkeää
Automaattinen instrumentointi täyttää vain OTel:n vakiomääritteet. Sinun täytyy lisätä Microsoft-kohtaiset attribuutit BaggageBuilder kautta. Jos haluat nähdä, mitkä määritteet puuttuvat, tarkista konsolin aikavälin tulos tallennettujen lokien perusteella eri joukoissa.
Useat SDK:t ja ympäristöt tukevat automaattista instrumentointia seuraavasti:
| Ympäristö | Tuetut SDK:t / kehykset |
|---|---|
| .NET | Semantic Kernel, OpenAI, Agent Framework |
| Python | Semantic Kernel, OpenAI, Agent Framework, LangChain |
| Node.js | OpenAI, LangChain |
Muistiinpano
Automaattisen instrumentoinnin tuki vaihtelee ympäristön ja SDK-toteutuksen mukaan.
Semantic Kernel
Automaattinen instrumentointi vaatii baggage-luontitoiminnon käyttöä. Määritä agentin tunnus ja vuokraajan tunnus käyttämällä kohdetta BaggageBuilder.
Asenna paketti.
pip install microsoft-agents-a365-observability-extensions-semantic-kernel
Määritä havaittavuus.
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
Automaattinen instrumentointi vaatii baggage-luontitoiminnon käyttöä. Määritä agentin tunnus ja vuokraajan tunnus käyttämällä kohdetta BaggageBuilder.
Asenna paketti.
pip install microsoft-agents-a365-observability-extensions-openai
Määritä havaittavuus.
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
Automaattinen instrumentointi vaatii baggage-luontitoiminnon käyttöä. Määritä agentin tunnus ja vuokraajan tunnus käyttämällä kohdetta BaggageBuilder.
Asenna paketti.
pip install microsoft-agents-a365-observability-extensions-agent-framework
Määritä havaittavuus.
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
Automaattinen instrumentointi edellyttää baggage-luontitoiminnon käyttämistä. Määritä agentin tunnus ja vuokraajan tunnus käyttämällä kohdetta BaggageBuilder.
Asenna paketti.
pip install microsoft-agents-a365-observability-extensions-langchain
Määritä havaittavuus.
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
Manuaalinen instrumentointi
Käytä Agent 365:n havaittavuuden SDK:ta saadaksesi lisätietoja agentin sisäisestä toiminnasta.
SDK tarjoaa laajuuksia, jotka voi käynnistää: InvokeAgentScope, ExecuteToolScope, InferenceScope ja OutputScope.
Agentin kutsuminen
Käytä tätä laajuutta agenttiprosessin alussa. Käyttämällä käynnistä agentti -laajuutta voit tallentaa ominaisuuksia, kuten nykyisen käynnistettävän agentin ja agentin käyttäjätiedot.
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(...)
Työkalun suoritus
Seuraavat esimerkit osoittavat, miten havaittavuuden seuranta lisätään agentin työkalun suoritukseen. Tämä seuranta kerää telemetriatietoja valvonta- ja auditointitarkoituksiin.
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)
Päättely
Seuraavat esimerkit osoittavat, miten tekoälymallin liittymäkutsut instrumentoidaan havaittavuuden jäljityksellä tunnusten käytön, mallitietojen ja vastauksen metatietojen tallentamiseksi.
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)
Tulos
Käytä tätä laajuutta asynkronisissa skenaarioissa, joissa InvokeAgentScope, ExecuteToolScope tai InferenceScope ei pysty tallentamaan tulostietoja synkronisesti. Käynnistä OutputScope aliaikavälinä, jotta voit tallentaa lopulliset tulosviestit pääelementin laajuuden päätyttyä.
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
Validoi paikallisesti
Varmista, että integrointi havaittavuuden SDK:n kanssa onnistui, tarkastelemalla agentin tuottamia konsolilokeja ja havaittavuus-SDK:n lokitietoja.
Määritä ympäristömuuttujan ENABLE_A365_OBSERVABILITY_EXPORTER arvoksi false. Tämä asetus vie aikavälit (jäljet) konsoliin.
Jos haluat tutkia viennin virheitä, ota käyttöön yksityiskohtainen lokiinkirjaus asettamalla kohdan ENABLE_A365_OBSERVABILITY_EXPORTER arvoksi true ja määrittämällä virheenkorjauksen lokiinkirjaus sovelluksen käynnistyksessä seuraavasti:
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)
Keskeiset lokiviestit:
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.
Vietyjen lokien tarkasteleminen
Jotta voit tarkastella agentin telemetriaa Microsoft Purviewissa tai Microsoft Defenderissä, varmista että seuraavat vaatimukset täyttyvät:
- Microsoft Purview: Auditointi on otettava käyttöön organisaatiossasi. Katso ohjeet kohdasta Seurannan ottaminen käyttöön tai poistaminen käytöstä.
-
Microsoft Defender: Edistynyt metsästys täytyy konfiguroida, jotta tauluun
CloudAppEventspääsee käsiksi. Katso tiedot kohdasta CloudAppEvents-taulukko edistyneen metsästyksen skeemassa.
Myymälän julkaisun vahvistaminen
Tärkeää
Jotta myymälän vahvistaminen onnistuu, agentin on otettava käyttöön laajuudet InvokeAgentScope, InferenceScope ja ExecuteToolScope. Nämä kolme laajuutta ovat välttämättömiä julkaisussa.
Käytä ennen julkaisua konsolin lokeja vahvistaaksesi havaittavuuden integroinnin agentin kanssa toteuttamalla vaaditut laajuudet invoke agent, execute tool, inference ja output. Vertaa agentin lokeja seuraaviin määriteluetteloihin varmistaaksesi, että kaikki vaaditut määritteet löytyvät. Tallenna määritteet jokaisessa laajuudessa tai käyttämällä baggage-luontitoimintoa. Lisää valinnaiset määritteet oman harkintasi mukaan.
Lisätietoja myymälän julkaisuvaatimuksista on kohdassa Myymälän vahvistuksen ohjeet.
InvokeAgentScope-määritteet
Seuraavassa luettelossa on yhteenveto pakollisista ja valinnaisista telemetriamääritteistä, jotka tallennetaan, kun InvokeAgentScope käynnistetään.
"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-määritteet
Seuraavassa luettelossa on yhteenveto pakollisista ja valinnaisista telemetriamääritteistä, jotka tallennetaan, kun ExecuteToolScope käynnistetään.
"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-määritteet
Seuraavassa luettelossa on yhteenveto pakollisista ja valinnaisista telemetriamääritteistä, jotka tallennetaan, kun InferenceScope käynnistetään.
"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-määritteet
Seuraavassa luettelossa on yhteenveto pakollisista ja valinnaisista telemetriamääritteistä, jotka tallennetaan, kun OutputScope käynnistetään. Käytä tätä laajuutta asynkronisissa skenaarioissa, kun pääelementin laajuus ei voi tallentaa tulostietoja synkronisesti.
"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"
}
Havainnointeja sisältävien agenttien testaus
Kun olet ottanut käyttöön havaittavuuden agentissa, testaa sitä varmistaaksesi, että se tallentaa telemetrian oikein. Määritä ympäristö testausoppaan tietojen avulla. Keskity sen jälkeen ensisijaisesti Havaittavuuslokien tarkastelu -osaan varmistaaksesi, että havaittavuuden toteutus toimii odotetusti.
Vahvistus:
- Siirry osoitteeseen
https://admin.cloud.microsoft/#/agents/all - Valitse agentti > Aktiviteetti
- Näet istuntoja ja työkalukutsuja
Vianmääritys
Tässä osassa kuvataan yleisiä ongelmia havaittavuuden toteuttamisessa ja käytössä.
| Ongelma | Description |
|---|---|
| Havainnointidata ei näy | Telemetriaa ei näy, koska vienti ei ole käytössä, määritys on virheellinen tai tunnuksen resoluutio epäonnistuu. |
| Puuttuva vuokraaja-ID tai agentti-ID – spanit ohitetaan | Aikavälit pudotetaan ennen vientiä, kun osiointiin vaaditut käyttäjätietojen määritteet puuttuvat. |
| Token-resoluutiovirhe – vienti jätetty väliin tai ei valtuutusta | Vientipyynnöt epäonnistuvat tai ne ohitetaan, kun tunnuksen ratkaisija ei palauta tunnusta tai se löytää poikkeukseen. |
| HTTP 401 Ei sallittu | Tunnistautuminen onnistuu syntaktisesti, mutta tunnus on virheellinen käyttöä varten laajuuden, tyypin tai vanhentumisen vuoksi. |
| HTTP 403 Käyttö estetty | Pääsy evätään vuokraajan käyttöoikeuden tai havaittavuuden oikeuksien puuttumisen vuoksi. |
| HTTP 403 Estetty – agentti-ID ei vastaa | Pyyntö hylätään, mikäli URL-osoitteen agentin käyttäjätiedot eivät vastaa tunnuksen esittämiä käyttäjätietoja. |
| HTTP 429- tai 5xx-virheet – tilapäiset virheet | Tilapäiset rajoitukset tai virheet palvelussa keskeyttävät viennin ja saattavat edellyttää uudelleenyrittämisen asetusten säätämistä. |
| Viennin aikakatkaisu | Telemetriaerät ylittävät määritetyt aikakatkaisuikkunat verkon viiveen tai päätepisteen reagoinnin vuoksi. |
| Vienti onnistuu, mutta telemetriaa ei näy Defenderissä tai Purviewissa | Käsittely on valmis, mutta näkyvyys tulevissa toiminnoissa viivästyy tai estyy tuotteen edellytysten vuoksi. |
Vinkki
Agent 365:n vianmääritysopas sisältää yleisluontoisia vianmääritykseen liittyviä suosituksia, parhaita käytäntöjä sekä linkkejä vianmääritykseen liittyvään sisältöön Agent 365:n kehityksen elinkaaren kaikissa vaiheissa.
Havainnointidata ei näy
Oireet:
- Agentti on käynnissä
- Telemetria puuttuu hallintokeskuksesta
- Agentin toimintaa ei näy
Juurisyy:
- Havaittavuutta ei ole otettu käyttöön
- Määritysvirheet
- Token resolverin ongelmat
Ratkaisut: Kokeile seuraavia vaiheita ongelman ratkaisemiseksi:
Varmista, että havaittavuuden vientitoiminto on käytössä
Agent 365 exportteri täytyy ottaa käyttöön erikseen. Kun se on poistettu käytöstä, SDK siirtyy käyttämään konsolin vientitoimintoa, eikä telemetriaa lähetetä palveluun. Lisätietoja määrityksen tiedoista on kohdassa Määritys.
Tarkista token-ratkaisijan konfiguraatio
Exportteri vaatii kelvollisen token-ratkaisijan, joka palauttaa Bearer-tokenin jokaista vientipyyntöä kohden. Jos token-ratkaisijaa ei ole tai se palauttaa
null, vienti jätetään huomiotta ilman ilmoitusta. Varmista, että koodi implementoi tunnuksen ratkaisijan oikein. Lisätietoja on kohdassa Tunnuksen ratkaisija.Tarkista lokin virheet
Ota käyttöön yksityiskohtainen lokiinkirjaus ja käytä
az webapp log tailkomentoa etsiäksesi lokeista havaittavuuteen liittyviä virheitä. Lisätietoja lokiinkirjauksen käyttöönotosta ympäristöä kohti on kohdassa Paikallinen vahvistaminen.# Look for observability-related errors az webapp log tail --name <your-app-name> --resource-group <your-resource-group> | Select-String "observability"Varmista telemetrian vienti
Varmista, että telemetria on luotu ja viety odotetulla tavalla.
- Lisää konsolin vientitoiminto ja tarkista, että telemetriaa luodaan paikallisesti. Lisätietoja konsolin vientitoiminnon käytöstä ja tuloksen vahvistuksesta on kohdassa Paikallinen vahvistaminen.
Puuttuva vuokraaja-ID tai agentti-ID — spanit sivuutetaan
Oireet: Järjestelmä pudottaa huomaamattomasti spanit eikä koskaan vie niitä. Jotkin SDK:t kirjaavat lokiin ohitettujen aikavälien määrän tai viestin, kuten Aikavälejä, joilla on vuokraajan tai agentin käyttäjätiedot, ei löytynyt. Muut pudottavat ne ilman lokiinkirjausta.
Ratkaisu:
- Ennen vientiä SDK jakaa spanit vuokraajan ja agentin käyttäjätietojen mukaan. Järjestelmä pudottaa aikavälit, joilta puuttuu joko vuokraajan tai agentin tunnus, eikä koskaan lähetä niitä palveluun.
- Varmista, että
BaggageBuilderon asetettu vuokralaisen ja agentin tunnuksella ennen spanien luomista. Nämä arvot siirtyvät OpenTelemetry-kontekstin mukana ja liitetään kaikkiin baggage-kontekstin sisällä luotuihin span-objekteihin. Katso alustakohtaista API:a kohdasta Baggage attributes. - Varmista, että kohteen
TurnContextaktiviteetilla on kelvollinen vastaanottaja agentin käyttäjätiedoilla, jos käytät baggage-väliohjelmistoa tai käännät kontekstin avustajan isännöinnin integrointipaketista näiden tunnusten täyttämiseksi.
Token-resoluutiovirhe — vienti ohitettu tai valtuuttamaton
Oireet: Token resolver palauttaa null tai heittää virheen. SDK:n mukaan vienti joko ohitetaan kokonaan tai pyyntö lähetetään ilman valtuutusotsikkoa, ja se epäonnistuu HTTP 401 -virheen kanssa.
Ratkaisu:
- Tunnuksen ratkaisija tarvitaan alustuksen yhteydessä. Jos se puuttuu, exportteri antaa virheilmoituksen käynnistyksessä. Varmista, että token-ratkaisija on käytössä ja palauttaa kelvollisen Bearer-tokenin.
- Varmista, että kohteessa
BaggageBuilderkäytetään oikeaa vuokraajan ja agentin tunnusta, koska nämä arvot välitetään tunnuksen ratkaisijalle. - Azure-isännöidyille agenteille varmista, että Managed Identityllä on tarvittavat API-oikeudet havaittavuuden vastuualuetta varten.
HTTP 401 Ei sallittu
Oireet: Vienti epäonnistuu HTTP 401 -virheen vuoksi. Vientiohjelma ei tee uudelleenyritystä tämän virheen sattuessa.
Ratkaisu:
- Varmista, että tokenin audience vastaa observability endpointin scopea.
- Tarkista, ettei token resolver palauta edustajakäyttäjä-tokenia, väärälle audience-arvolle tarkoitettua tokenia tai vanhentunutta tokenia.
HTTP 403 Käyttö estetty
Oireet: Vienti epäonnistuu HTTP 403 -virheen vuoksi. Vientiohjelma ei tee uudelleenyritystä tämän virheen sattuessa.
Juurisyy: HTTP 403 -virhe voi johtua useista eri syistä. Tarkista seuraavat ratkaisut järjestyksessä.
Ratkaisu:
Puuttuva lisenssi — Varmista, että vuokraajallasi on jokin seuraavista lisensseistä määritettynä Microsoft 365 -hallintakeskuksessa:
- Test - Microsoft 365 E7
- Microsoft 365 E7
- Microsoft Agent 365 Frontier
Puuttuva kohteen
Agent365.Observability.OtelWriteoikeus – Jos olet äskettäin päivittänyt havaittavuuspaketit, tämä oikeus on myönnettävä. Katso tärkeä huomautus seuraavasta osasta.
Tärkeää
Nykyisten agenttien päivitys näihin pakettiversioihin vaatii ylimääräisen vaiheen
Tämä vaihe vaaditaan vain, kun päivität olemassa olevaa agenttia. Uusien agenttien asennukset eivät vaadi tätä vaihetta. Jos päivität seuraaviin tai uudempiin pakettiversioihin, uusi kohteen Agent365.Observability.OtelWrite oikeus on myönnettävä käyttäjätiedoille (hallitut käyttäjätiedot tai sovelluksen rekisteröinti). Ilman tätä käyttöoikeutta telemetrian vienti epäonnistuu HTTP 403 -virheellä.
| Ympäristö | Minimiversio, joka vaatii tämän vaiheen |
|---|---|
| .NET | 0.3-beta |
| Node.js | 0.2.0-preview.1 |
| Python | 0.3.0 |
Myönnä käyttöoikeudet käyttämällä jotakin alla olevista vaihtoehdoista.
Vaihtoehto A – Agent 365 CLI (vaatii yleisen järjestelmänvalvojan roolin. Suoritetaan agentin projektihakemistosta, joka sisältää tiedoston a365.config.json, tai käytetään kohdetta --agent-name)
a365 setup permissions bot
Tai ilman konfiguraatiotiedostoa:
a365 setup permissions bot --agent-name "<agent-name>"
Tämä komento myöntää suunnitelman kaikki puuttuvat oikeudet, mukaan lukien havaittavuuden laajuudet.
Vaihtoehto B – Entra-portaali (ei määritystiedostoja, edellyttää yleisen järjestelmänvalvojan käyttöoikeuden suunnitelman sovelluksen rekisteröimistä varten)
- Siirry Entra-portaali>Sovellusten rekisteröinnit> -osioon ja valitse Blueprint-sovelluksesi.
- Siirry API-oikeudet>Lisää käyttöoikeus>Organisaation käytössä olevat API:t> etsi
9b975845-388f-4429-889e-eab1ef63949c. - Valitse Delegoidut oikeudet>, tarkista
Agent365.Observability.OtelWrite>Lisää käyttöoikeudet. - Toista vaiheet 2–3. Valitse tällä kertaa Sovelluksen käyttöoikeudet> valitse
Agent365.Observability.OtelWrite>Lisää käyttöoikeudet. - Klikkaa Myönnä ylläpitäjän suostumus ja vahvista.
Sekä kohteen Agent365.Observability.OtelWrite (delegoitu) että kohteen Agent365.Observability.OtelWrite (sovellus) tulee olla tilassa Granted.
HTTP 403 Kielletty — agentin ID ei täsmää
Oireet: Vienti epäonnistuu HTTP 403 -virheellä ja palvelinviestillä, joka muistuttaa 403 Forbidden ja sisältää agent-ID-mismatch epäonnistumisia Agent 365:n jälkien päätepisteiden kutsumisessa.
Syy: Tämä virhe tapahtuu, kun käytät blueprintin asiakas-ID:täagentin instanssin asiakas-ID:n sijasta, kun asetat agentin tiedot. Agentin ID eksportin URL:ssa ei täsmää tokenin hyväksymän identiteetin kanssa, joten traces-päätepiste hylkää pyynnön.
Ratkaisu:
- Varmista, että tenant ID on lisätty Agent 365:n sallittujen vuokraajien listalle.
- Aseta agentin tiedot agentin instanssin asiakas-ID :llä (ei blueprint-asiakas-ID:llä).
- Tarkista generoitu vienti-URL – se kirjataan, jos otat loggerin käyttöön. Vahvista, että agentti-ID URL-osoitteessa vastaa agentin instanssin client ID:tä.
- Ota diagnostiikkalokit käyttöön SDK-kohtaisesti Paikallinen vahvistaminen -kohdan tietojen avulla.
HTTP 429- tai 5xx-virheet – tilapäiset virheet
Oireet: Vienti epäonnistuu ohimenevällä HTTP-tilakoodilla, kuten 429 tai 5xx.
Ratkaisu:
- Nämä virheet ovat yleensä ohimeneviä ja ratkeavat itsestään. Python ja JavaScript SDK:t suorittavat automaattisen uudelleenyrityksen HTTP 408-, 429- ja 5xx-tilakoodeilla enintään kolme kertaa eksponentiaalisella viiveellä. .NET SDK ei yritä uudelleen automaattisesti.
- Jos virheet jatkuvat, tarkista palvelun tilannepaneeli.
- Harkitse vientien harventamista lisäämällä aikataulutettua viivettä erien välillä tai kasvattamalla vientierän enimmäiskokoa. Katso ympäristökohtaiset määritysvaihtoehdot
Agent365ExporterOptions-taulukosta Määritys-kohdassa.
Viennin aikakatkaisu
Oireet: Vientiyritykset menevät aikakatkaisuun.
Ratkaisu:
- Tarkista verkkoyhteys observability-endpointiin.
- Aikakatkaisun oletusarvot vaihtelevat ympäristön mukaan. HTTP-pyynnön oletusaikakatkaisu on 30 sekuntia. Joillakin SDK:illa on myös erillinen vientitoiminnon yleinen aikakatkaisu, joka kattaa koko vientisyklin, mukaan lukien uudelleenyritykset. Tarkat ominaisuudet ja oletusasetukset ympäristökohtaisesti
Agent365ExporterOptions-taulukosta Määritys-kohdassa. - Jos aikakatkaisuja esiintyy usein, kasvata sopivaa aikakatkaisuarvoa vientitoiminnon asetuksissa.
Vienti onnistuu, mutta telemetriaa ei näy Defenderissä tai Purviewissa
Oireet: Lokit osoittavat onnistuneen viennin, mutta telemetria ei ole näkyvissä Microsoft Defenderissä tai Microsoft Purview'ssa.
Ratkaisu:
- Varmista, että vietyjen lokien katselun edellytykset täytetään. Purview'ssa auditointi on otettava käyttöön. Defenderissä on määritettävä edistynyt uhkien etsintä. Lisätietoja on kohdassa Vietyjen lokien tarkasteleminen.
- Telemetrian päivittyminen voi kestää useita minuutteja onnistuneen viennin jälkeen. Odota, että tiedot tulevat näkyviin, ennen kuin jatkat tutkimista.
Lisätietoja havaittavuuden testaamisesta on kohdassa:
Liittyvä sisältö
- Agent 365:n havaittavuuskäsitteet – Tietotyönkulku, identiteettimallit, todennus, laajuudet ja rajat, jotka koskevat kaikkia integraatiopolkuja.
- Agent 365:n havaittavuusattribuuttiviite – Kanoninen span-attribuuttikaavio, johon jokaisen Agent 365:n vastaanottaman haaran on vastattava.
- Microsoft OpenTelemetry Distro – Suositeltu yhtenäinen SDK uusille integroinneille.