Sdílet prostřednictvím


Pozorovatelnost agenta

Důležité

Abyste získali přednostní přístup k Microsoft Agentu 365, musíte být součástí programu Frontier Preview. Hranice vás spojuje přímo s nejnovějšími inovacemi umělé inteligence Microsoftu. Verze Preview hranice podléhají stávajícím podmínkám verze Preview vašich smluv se zákazníkem. Vzhledem k tomu, že tyto funkce jsou stále ve vývoji, jejich dostupnost a možnosti se můžou v průběhu času měnit.

Pokud se chcete zapojit do ekosystému Agent 365, musíte do svého agenta přidat funkce pozorovatelnosti agenta 365. Agent 365 Observability vychází z OpenTelemetry (OTel) a poskytuje jednotnou architekturu pro konzistentně a bezpečně zachytávání telemetrických dat na všech platformách agentů. Implementací této požadované komponenty povolíte správcům IT monitorovat aktivity agenta v Centru pro správu Microsoftu (MAC) a umožnit týmům zabezpečení používat Defender a Purview k zajištění dodržování předpisů a detekce hrozeb.

Klíčové výhody

  • Ucelená viditelnost: Zachytávání komplexní telemetrie pro každé vyvolání agenta, včetně relací, volání nástrojů a výjimek, které poskytují úplnou sledovatelnost napříč platformami.
  • Povolení zabezpečení a dodržování předpisů: Zařaďte jednotné protokoly auditu do Defenderu a Purview a povolte pokročilé scénáře zabezpečení a vytváření sestav dodržování předpisů pro vašeho agenta.
  • Flexibilita napříč platformami: Stavět na standardech OTel a podporovat různé moduly runtime a platformy, jako jsou Copilot Studio, Foundry a budoucí architektury agentů.
  • Provozní efektivita pro správce: Zajištění centralizované pozorovatelnosti v systému MAC, zkrácení doby řešení potíží a zlepšení zásad správného řízení pomocí řízení přístupu na základě role pro IT týmy, které spravují vašeho agenta.

Instalace

Pomocí těchto příkazů nainstalujte moduly pozorovatelnosti pro jazyky podporované agentem 365.

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

Konfigurace

Proměnné prostředí vyžadované pro pozorovatelnost jsou:

Proměnná prostředí Popis
ENABLE_OBSERVABILITY=true Příznak pro povolení nebo zakázání trasování Ve výchozím nastavení
ENABLE_A365_OBSERVABILITY_EXPORTER=true True export protokolů do naší služby. Jinak se vrátí k vývozci konzoly.
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,
)

Vylučte překladač tokenů pro přihlášení do konzoly.

Atributy obrázku

Slouží BaggageBuilder k nastavení kontextových informací, které procházejí všemi rozsahy v požadavku. Sada SDK implementuje SpanProcessor všechny neprázdné položky zavazadel do nově spuštěných položek bez přepsání existujících atributů.

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

Překladač tokenů

Při použití vývozce agenta 365 musíte poskytnout funkci překladače tokenů, která vrací ověřovací token. Při použití sady Agent 365 Observability SDK s architekturou hostování agenta můžete vygenerovat tokeny pomocí TurnContext aktivit agenta.

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

Instrumentace kódu

Automatická instrumentace automaticky naslouchá existujícím telemetrickým signálům agentických architektur (SDK) pro trasování a předává je službě pozorovatelnosti agenta 365. To eliminuje potřebu vývojářů psát kód monitorování ručně, zjednodušit nastavení a zajistit konzistentní sledování výkonu.

Automatická instrumentace se podporuje napříč několika sadami SDK a platformami:

Platforma Podporované architektury:
.SÍŤ Sémantické jádro, OpenAI, Architektura agenta
Krajta Sémantické jádro, OpenAI, Architektura agenta, LangChain
Node.js OpenAI

Poznámka:

Podpora automatické instrumentace se liší podle platformy a implementace sady SDK.

Sémantické jádro

Automatické instrumentace vyžaduje použití výrobce zavazadel. Nastavení ID agenta a ID tenanta pomocí BaggageBuilder.

Odinstalace balíčku

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

Konfigurace pozorovatelnosti

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

Automatické instrumentace vyžaduje použití výrobce zavazadel. Nastavení ID agenta a ID tenanta pomocí BaggageBuilder.

Instalace balíčku DGSS

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

Nakonfigurujte pozorovatelnost.

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

Automatické instrumentace vyžaduje použití výrobce zavazadel. Nastavte ID agenta a ID tenanta pomocí funkce BaggageBuilder.

Odinstalace balíčku

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

Konfigurace pozorovatelnosti

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

Automatické instrumentace vyžaduje použití úschovy zavazadel. Nastavení ID agenta a ID tenanta pomocí BaggageBuilder.

Instalace balíčku DGSS

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

Konfigurace pozorovatelnosti

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

Ruční instrumentace

Sada SDK pozorovatelnosti agenta 365 se dá použít k pochopení interní práce agenta. Sada SDK poskytuje tři rozsahy, které lze spustit: InvokeAgentScope, ExecuteToolScopea InferenceScope.

Vyvolání agenta

Tento obor by se měl použít na začátku procesu agenta. Při vyvolání oboru agenta zaznamenáte vlastnosti, jako je vyvolání aktuálního agenta, uživatelská data agenta atd.

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

Provádění nástrojů

Následující příklady ukazují, jak instrumentovat provádění nástrojů vašeho agenta pomocí sledování pozorovatelnosti za účelem zachycení telemetrie pro účely monitorování a auditování.

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)

Odvozování

Následující příklady ukazují, jak instrumentovat volání odvozování modelů AI pomocí sledování pozorovatelnosti za účelem zachycení využití tokenů, podrobností modelu a metadat odpovědí.

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

Místní ověření

Nastavte proměnnou prostředí/ Tento export zahrnuje (trasování) do konzoly.

Testování agenta s pozorovatelností

Po implementaci pozorovatelnosti v agentu otestujte, jestli se telemetrie zachytává správně. Podle průvodce testováním nastavte prostředí a pak se zaměřte hlavně na část Zobrazit protokoly pozorovatelnosti a ověřte, že implementace pozorovatelnosti funguje podle očekávání.