Del via


Agentobserverbarhed

Vigtigt

Du skal være en del af Frontier-forhåndsversionsprogrammet for at få tidlig adgang til Microsoft Agent 365. Frontier forbinder dig direkte med Microsofts seneste AI-innovationer. Frontier-forhåndsversioner er underlagt de eksisterende forhåndsversionsbetingelser i dine kundeaftaler. Da disse funktioner stadig er under udvikling, kan deres tilgængelighed og egenskaber ændre sig over tid.

Hvis du vil deltage i Agent 365-økosystemet, skal du føje funktioner for Agent 365-observerbarhed til 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 (MAC), 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 MAC, hvilket reducerer fejlfindingstiden og forbedrer styringen med rollebaserede adgangskontroller for it-teams, der administrerer din agent.

Installation

Brug disse kommandoer til at installere modulerne for observerbarhed for de sprog, der understøttes af Agent 365.

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

Konfiguration

De miljøvariabler, der kræves for observerbarhed, er:

Miljøvariabel Beskrivelse
ENABLE_OBSERVABILITY=true Markér for at aktivere/deaktivere sporing. Som standard false
ENABLE_A365_OBSERVABILITY_EXPORTER=true True eksporterer logge til vores tjeneste. Ellers falder det tilbage til konsoleksportøren
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,
)

Udeluk tokenløsningsfunktion for at logføre på konsollen.

Bagageattributter

Brug BaggageBuilder til at angive kontekstafhængige oplysninger, der flyder gennem alle områder i en anmodning. SDK'et implementerer en SpanProcessor og kopierer alle ikke-tomme bagageposter til nystartede områder uden at overskrive eksisterende attributter.

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

Tokenløsningsfunktion

Når du bruger Agent 365-eksportøren, skal du angive en tokenløsningsfunktion, der returnerer 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

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

Automatisk instrumentering

Automatisk instrumentering lytter automatisk til eksisterende telemetrisignaler for agentbaserede strukturer (SDK'er) efter sporinger og videresender dem til tjenesten Agent 365-observerbarhed. Dette fjerner behovet for, at udviklere skal skrive overvågningskoden manuelt, forenkler konfigurationen og sikrer ensartet sporing af ydeevnen.

Automatisk instrumentering understøttes på tværs af flere SDK'er og platforme:

Platform Understøttede SDK'er/strukturer
.NET Semantic Kernel, OpenAI, Agent Framework
Python Semantic Kernel, OpenAI, Agent Framework, LangChain
Node.js OpenAI

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

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

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

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

Agent 365-observerbarheds-SDK'et kan bruges til at forstå agentens interne arbejde. SDK'et indeholder tre områder, der kan startes: InvokeAgentScope, ExecuteToolScope og InferenceScope.

Agentaktivering

Dette område skal bruges i starten af agentprocessen. Med området for aktivering af agent henter du egenskaber som den aktuelle agent, der aktiveres, agentbrugerdata osv.

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

Værktøjsudførelse

Følgende eksempler viser, hvordan du instrumenterer din agents værktøjsudførelse med registrering af observerbarhed for at registrere telemetri til overvågnings- og revisionsformål.

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)

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

Valider lokalt

Angiv miljøvariablen ENABLE_A365_OBSERVABILITY_EXPORTER til false. Denne eksport strækker sig over (spores) til konsollen.

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 testvejledningen for at konfigurere dit miljø, og fokuser derefter primært på sektionen Vis observerbarhedslogge for at validere, at implementeringen af observerbarhed fungerer som forventet.