Aracılığıyla paylaş


Aracı gözlemlenebilirliği

Önemli

Microsoft Agent 365'e erken erişim elde etmek için Frontier önizleme programının bir parçası olmanız gerekir. Frontier sizi Doğrudan Microsoft'un en son yapay zeka yenilikleri ile bağlar. Sınır önizlemeleri, müşteri sözleşmelerinizin mevcut önizleme koşullarına tabidir. Bu özellikler hala geliştirme aşamasında olduğundan, bunların kullanılabilirliği ve özellikleri zaman içinde değişebilir.

Agent 365 ekosistemine katılmak için aracınıza Agent 365 Gözlemlenebilirlik özellikleri eklemeniz gerekir. Agent 365 Gözlemlenebilirliği OpenTelemetry (OTel) üzerinde derlenir ve tüm aracı platformlarında telemetriyi tutarlı ve güvenli bir şekilde yakalamak için birleşik bir çerçeve sağlar. Bu gerekli bileşeni uygulayarak BT yöneticilerinin aracınızın Microsoft Admin Center'daki (MAC) etkinliğini izlemesini ve güvenlik ekiplerinin uyumluluk ve tehdit algılama için Defender ve Purview kullanmasına izin vermelerini sağlarsınız.

Temel avantajlar

  • Uçtan Uca Görünürlük: Oturumlar, araç çağrıları ve özel durumlar dahil olmak üzere her aracı çağrısı için kapsamlı telemetri yakalayın ve platformlar arasında tam izlenebilirlik elde edin.
  • Güvenlik ve Uyumluluk Etkinleştirme: Birleştirilmiş denetim günlüklerini Defender ve Purview'a aktararak aracınız için gelişmiş güvenlik senaryoları ve uyumluluk raporlaması sağlar.
  • Platformlar Arası Esneklik: OTel standartlarını temel alır ve Copilot Studio, Foundry ve gelecekteki aracı çerçeveleri gibi çeşitli çalışma zamanlarını ve platformları destekler.
  • Yöneticiler için operasyonel verimlilik: MAC'te merkezi gözlemlenebilirlik sağlayarak sorun giderme süresini kısaltın ve aracınızı yöneten BT ekipleri için rol tabanlı erişim denetimleriyle idareyi geliştirin.

Yükleme

Aracı 365 tarafından desteklenen dillere yönelik gözlemlenebilirlik modüllerini yüklemek için bu komutları kullanın.

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

Yapılandırma

Gözlemlenebilirlik için gereken ortam değişkenleri şunlardır:

Ortam değişkeni Description
ENABLE_OBSERVABILITY=true İzlemeyi etkinleştirmek/devre dışı bırakmak için bayrak ekleyin. Varsayılan olarak
ENABLE_A365_OBSERVABILITY_EXPORTER=true True günlükleri hizmetimize aktarın. Aksi takdirde konsol ihracatçısına geri döner
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,
)

Konsolda oturum açmak için belirteç çözümleyicisini hariç tutun.

Görüntü öznitelikleri

bir istekteki tüm aralıklarda akan bağlamsal bilgileri ayarlamak için kullanın BaggageBuilder . SDK, var olan özniteliklerin SpanProcessor üzerine yazmadan tüm boş bagaj girişlerini yeni başlatılan aralıklara kopyalar.

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

Belirteç Çözümleyicisi

Agent 365 dışarı aktarıcısını kullanırken, kimlik doğrulama belirteci döndüren bir belirteç çözümleyici işlevi sağlamanız gerekir. Aracı Barındırma çerçevesi ile Agent 365 Gözlemlenebilirlik SDK'sını kullanırken, aracı etkinliklerinden kullanarak belirteçler TurnContext oluşturabilirsiniz

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

Otomatik İzleme:

Otomatik izleme, izlemeler için mevcut telemetri sinyallerini otomatik olarak dinler ve Bunları Agent 365 gözlemlenebilirlik hizmetine iletir. Bu, geliştiricilerin izleme kodunu el ile yazma gereksinimini ortadan kaldırarak kurulumu basitleştirir ve tutarlı performans izleme sağlar.

Otomatik izleme birden çok SDK ve platformda desteklenir:

Platform Desteklenen altyapılar:
.NET Semantik Çekirdek, OpenAI, Aracı Çerçevesi
Piton Semantik Çekirdek, OpenAI, Aracı Çerçevesi, LangChain
Node.js OpenAI

Not

Otomatik izleme desteği platform ve SDK uygulamasına göre değişir.

Semantik Çekirdek

Otomatik izleme için bagaj oluşturucunun kullanılması gerekir. kullanarak BaggageBuilderaracı kimliğini ve kiracı kimliğini ayarlayın.

Paketi kaldırma

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

Gözlemlenebilirliği yapılandırma

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

Otomatik izleme için bagaj oluşturucunun kullanılması gerekir. kullanarak BaggageBuilderaracı kimliğini ve kiracı kimliğini ayarlayın.

Paketi kaldırma

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

Gözlemlenebilirliği yapılandırın.

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

Otomatik izleme için bagaj oluşturucunun kullanılması gerekir. Bagaj Oluşturucu kullanarak aracı kimliğini ve kiracı kimliğini ayarlayın.

Paketi kaldırma

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

Gözlemlenebilirliği yapılandırma

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

Otomatik izleme için bagaj oluşturucunun kullanılması gerekir. kullanarak BaggageBuilderaracı kimliğini ve kiracı kimliğini ayarlayın.

Paketi kaldırma

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

Gözlemlenebilirliği yapılandırma

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

El ile İzleme

Aracı 365 gözlemlenebilirlik SDK'sı, aracının iç çalışmasını anlamak için kullanılabilir. SDK başlatılabilir üç kapsam sağlar: InvokeAgentScope, ExecuteToolScopeve InferenceScope.

Aracı Çağırma

Bu kapsam, aracı işleminizin başlangıcında kullanılmalıdır. Çağırma aracısı kapsamıyla, çağrılan geçerli aracı, aracı kullanıcı verileri vb. gibi özellikleri yakalarsınız.

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

Araç Yürütme

Aşağıdaki örneklerde, izleme ve denetim amacıyla telemetriyi yakalamak için aracınızın araç yürütmesini gözlemlenebilirlik izleme ile izleme işleminin nasıl izleneceği gösterilmektedir.

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)

Çıkarım

Aşağıdaki örneklerde, belirteç kullanımını, model ayrıntılarını ve yanıt meta verilerini yakalamak için gözlemlenebilirlik izlemesi ile yapay zeka modeli çıkarım çağrılarının nasıl izlenip izleneceği gösterilmektedir.

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

Yerel Olarak Doğrula

Ortam değişkenini ayarlayın/ Bu işlem, span'ları (izlemeleri) konsola aktarır.

Aracınızı gözlemlenebilirlikle test etme

Aracınızda gözlemlenebilirlik uyguladıktan sonra telemetrinin doğru yakalandığından emin olmak için test edin. Ortamınızı ayarlamak için test kılavuzunu izleyin, ardından gözlemlenebilirlik uygulamanızın beklendiği gibi çalıştığını doğrulamak için öncelikle Gözlemlenebilirlik günlüklerini görüntüle bölümüne odaklanın.