Udostępnij przez


Możliwość obserwowania agenta

Ważne

Aby uzyskać wczesny dostęp do programu Microsoft Agent 365, musisz być częścią programu Frontier w wersji zapoznawczej. Usługa Frontier łączy Cię bezpośrednio z najnowszymi innowacjami firmy Microsoft dotyczącymi sztucznej inteligencji. Wersje zapoznawcze platformy Frontier podlegają istniejącym warunkom obowiązywania wersji zapoznawczej umów klienta. Ponieważ te funkcje są nadal opracowywane, ich dostępność i możliwości mogą ulec zmianie w miarę upływu czasu.

Aby wziąć udział w ekosystemie agenta 365, musisz dodać do agenta możliwości obserwowania agenta 365. Funkcja Obserwacja agenta 365 opiera się na systemie OpenTelemetry (OTel) i zapewnia ujednoliconą strukturę do spójnego i bezpiecznego przechwytywania danych telemetrycznych na wszystkich platformach agentów. Implementując ten wymagany składnik, administratorzy IT mogą monitorować aktywność agenta w Centrum administracyjnym firmy Microsoft (MAC) i zezwolić zespołom ds. zabezpieczeń na korzystanie z usług Defender i Purview w celu zapewnienia zgodności i wykrywania zagrożeń.

Główne korzyści

  • Kompleksowa widoczność: przechwytywanie kompleksowej telemetrii dla każdego wywołania agenta, w tym sesji, wywołań narzędzi i wyjątków, zapewniając pełną możliwość śledzenia na różnych platformach.
  • Włączanie zabezpieczeń i zgodności: przekaż ujednolicone dzienniki inspekcji do usługi Defender i usługi Purview, umożliwiając zaawansowane scenariusze zabezpieczeń i raportowanie zgodności agenta.
  • Elastyczność międzyplatformowa: twórz standardy OTel i obsługuje różne środowiska uruchomieniowe i platformy, takie jak Copilot Studio, Foundry i przyszłe platformy agentów.
  • Wydajność operacyjna dla administratorów: zapewnia scentralizowaną widoczność na komputerze MAC, skracając czas rozwiązywania problemów i poprawiając ład dzięki kontroli dostępu opartej na rolach dla zespołów IT zarządzających agentem.

Instalacja

Użyj tych poleceń, aby zainstalować moduły obserwacji dla języków obsługiwanych przez agenta 365.

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

Konfiguracja

Zmienne środowiskowe wymagane do obserwacji to:

Zmienna środowiskowa Podpis
ENABLE_OBSERVABILITY=true Flaga włączania/wyłączania śledzenia. Domyślnie
ENABLE_A365_OBSERVABILITY_EXPORTER=true True wyeksportować dzienniki do naszej usługi. W przeciwnym razie wraca do eksportera konsoli
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,
)

Wyklucz program rozpoznawania tokenów, aby zalogować się do konsoli.

Atrybuty obrazu

Służy BaggageBuilder do ustawiania informacji kontekstowych, które przepływa przez wszystkie zakresy w żądaniu. Zestaw SDK implementuje SpanProcessor kopie wszystkich brakujących wpisów bagażu do nowo uruchomionych zakresów bez zastępowania istniejących atrybutów.

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

Rozpoznawanie tokenów

W przypadku korzystania z eksportera Agent 365 należy podać funkcję rozpoznawania tokenów zwracającą token uwierzytelniania. W przypadku korzystania z zestawu SDK obserwacji agenta 365 z platformą hostingu agenta można wygenerować tokeny przy użyciu TurnContext działań 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

Automatyczna instrumentacja:

Automatyczna instrumentacja automatycznie nasłuchuje istniejących sygnałów telemetrycznych dla śladów i przekazuje je do usługi obserwacji agenta 365. Eliminuje to konieczność ręcznego pisania kodu monitorowania przez deweloperów, uproszczenia konfiguracji i zapewnienia spójnego śledzenia wydajności.

Automatyczna instrumentacja jest obsługiwana w wielu zestawach SDK i platformach:

Platforma Obsługiwane struktury:
.Net Struktura agenta jądra semantycznego
Pyton Semantyczne jądro, OpenAI, Agent Framework, LangChain
Node.js OpenAI

Notatka

Obsługa automatycznej instrumentacji różni się w zależności od implementacji platformy i zestawu SDK.

Jądro semantyczne

Instrumentacja automatyczna wymaga użycia konstruktora bagażu. Ustaw identyfikator agenta i identyfikator dzierżawy przy użyciu polecenia BaggageBuilder.

Odinstalowywanie pakietu

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

Konfigurowanie możliwości obserwowania

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

Instrumentacja automatyczna wymaga użycia konstruktora bagażu. Ustaw identyfikator agenta i identyfikator dzierżawy przy użyciu polecenia BaggageBuilder.

Instalowanie pakietu DGSS

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

Skonfiguruj możliwość obserwowania.

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

Struktura agenta

Instrumentacja automatyczna wymaga użycia konstruktora bagażu. Ustaw identyfikator agenta i identyfikator dzierżawy przy użyciu usługi LuggageBuilder.

Odinstalowywanie pakietu

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

Konfigurowanie możliwości obserwowania

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

Automatyczna instrumentacja wymaga użycia konstruktora bagażu. Ustaw identyfikator agenta i identyfikator dzierżawy przy użyciu polecenia BaggageBuilder.

Instalowanie pakietu DGSS

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

Konfigurowanie możliwości obserwowania

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

Instrumentacja ręczna

Zestaw SDK do obserwacji agenta 365 może służyć do zrozumienia wewnętrznej pracy agenta. Zestaw SDK udostępnia trzy zakresy, które można uruchomić: InvokeAgentScope, ExecuteToolScopei InferenceScope.

Wywołanie agenta

Ten zakres powinien być używany na początku procesu agenta. Za pomocą zakresu wywołania agenta przechwytujesz właściwości, takie jak wywoływany bieżący agent, dane użytkownika agenta itp.

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

Wykonywanie narzędzia

W poniższych przykładach pokazano, jak instrumentować wykonywanie narzędzia agenta z obserwowanym śledzeniem w celu przechwytywania danych telemetrycznych na potrzeby monitorowania i inspekcji.

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)

Wnioskowanie

W poniższych przykładach pokazano, jak instrumentować wywołania wnioskowania modelu sztucznej inteligencji przy użyciu śledzenia możliwości przechwytywania użycia tokenu, szczegółów modelu i metadanych odpowiedzi.

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

Weryfikowanie lokalnie

Ustaw zmienną środowiskową/ Ten eksport obejmuje (ślady) do konsoli.

Testowanie agenta z obserwacją

Po zaimplementowaniu obserwacji w agencie przetestuj, aby upewnić się, że dane telemetryczne są przechwytywane poprawnie. Postępuj zgodnie z przewodnikiem testowania, aby skonfigurować środowisko, a następnie skoncentruj się przede wszystkim na sekcji Wyświetl dzienniki obserwacji, aby sprawdzić, czy implementacja obserwacji działa zgodnie z oczekiwaniami.