Bagikan melalui


Pengamatan agen

Penting

Anda harus menjadi bagian dari program pratinjau Frontier untuk mendapatkan akses awal ke Microsoft Agent 365. Frontier menghubungkan Anda langsung dengan inovasi AI terbaru Microsoft. Pratinjau frontier tunduk pada ketentuan pratinjau yang ada dari perjanjian pelanggan Anda. Karena fitur-fitur ini masih dalam pengembangan, ketersediaan dan kemampuannya dapat berubah dari waktu ke waktu.

Untuk berpartisipasi dalam ekosistem Agen 365, Anda harus menambahkan kemampuan Observabilitas Agen 365 ke agen Anda. Observabilitas Agent 365 dibangun di OpenTelemetry (OTel) dan menyediakan kerangka kerja terpadu untuk menangkap telemetri secara konsisten dan aman di semua platform agen. Dengan menerapkan komponen yang diperlukan ini, Anda mengaktifkan admin TI untuk memantau aktivitas agen Anda di Microsoft Admin Center (MAC) dan memungkinkan tim keamanan menggunakan Defender dan Purview untuk kepatuhan dan deteksi ancaman.

Manfaat utama

  • Visibilitas End-to-End: Menangkap telemetri komprehensif untuk setiap pemanggilan agen, termasuk sesi, panggilan alat, dan pengecualian, memberi Anda keterlacakan penuh di seluruh platform.
  • Pengaktifan Keamanan & Kepatuhan: Memberi umpan log audit terpadu ke Defender dan Purview, memungkinkan skenario keamanan tingkat lanjut dan pelaporan kepatuhan untuk agen Anda.
  • Fleksibilitas Lintas Platform: Membangun standar OTel dan mendukung berbagai runtime dan platform seperti Copilot Studio, Foundry, dan kerangka kerja agen di masa mendatang.
  • Efisiensi Operasional untuk Admin: Memberikan pengamatan terpusat di MAC, mengurangi waktu pemecahan masalah dan meningkatkan tata kelola dengan kontrol akses berbasis peran untuk tim TI yang mengelola agen Anda.

Penginstalan

Gunakan perintah ini untuk menginstal modul pengamatan untuk bahasa yang didukung oleh Agen 365.

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

Konfigurasi

Variabel lingkungan yang diperlukan untuk pengamatan adalah:

Variabel Lingkungan KETERANGAN
ENABLE_OBSERVABILITY=true Bendera untuk mengaktifkan/menonaktifkan pelacakan. Secara default:
ENABLE_A365_OBSERVABILITY_EXPORTER=true True mengekspor log ke layanan kami. Jika tidak, kembali ke pengekspor konsol
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,
)

Kecualikan pemecah masalah token untuk masuk ke konsol.

Atribut gambar

Gunakan BaggageBuilder untuk mengatur informasi kontekstual yang mengalir melalui semua rentang dalam permintaan. SDK mengimplementasikan SpanProcessor salinan semua entri bagasi yang tidak ada ke rentang yang baru dimulai tanpa menimpa atribut yang ada.

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

Pemecah Masalah Token

Saat menggunakan pengekspor Agen 365, Anda harus menyediakan fungsi pemecah masalah token yang mengembalikan token autentikasi. Saat menggunakan Agent 365 Observability SDK dengan kerangka kerja Agent Hosting, Anda dapat menghasilkan token menggunakan TurnContext dari aktivitas agen

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

Instrumentasi Otomatis:

Instrumentasi otomatis secara otomatis mendengarkan sinyal telemetri yang ada kerangka kerja agenik (SDK) untuk pelacakan dan meneruskannya ke layanan observabilitas Agen 365. Ini menghilangkan kebutuhan pengembang untuk menulis kode pemantauan secara manual, menyederhanakan penyiapan, dan memastikan pelacakan performa yang konsisten.

Instrumentasi otomatis didukung di beberapa SDK dan platform:

Platform SDK/ Kerangka Kerja yang didukung
.JARING Kerangka Kerja Agen Kernel Semantik:
Ular sawah Semantic Kernel, OpenAI, Agent Framework, LangChain
Node.js OpenAI

Catatan

Dukungan untuk instrumentasi otomatis bervariasi menurut platform dan implementasi SDK.

Kernel Semantik

Instrumentasi otomatis memerlukan penggunaan pembuat bagasi. Atur ID agen dan ID penyewa menggunakan BaggageBuilder.

Menginstal paket DGSS

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

Mengonfigurasi pengamatan

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

Instrumentasi otomatis memerlukan penggunaan pembuat bagasi. Atur ID agen dan ID penyewa menggunakan BaggageBuilder.

Menginstal paket DGSS

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

Mengonfigurasi pengamatan.

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

Kerangka Kerja Agen

Instrumentasi otomatis memerlukan penggunaan pembuat bagasi. Atur ID agen dan ID penyewa menggunakan BaggageBuilder.

Menginstal paket DGSS

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

Mengonfigurasi pengamatan

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

Kerangka Kerja LangChain

Instrumentasi otomatis memerlukan penggunaan pembangun bagasi. Atur ID agen dan ID penyewa menggunakan BaggageBuilder.

Menginstal paket DGSS

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

Mengonfigurasi pengamatan

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

Instrumentasi Manual

SDK observabilitas Agen 365 dapat digunakan untuk memahami pekerjaan internal agen. SDK menyediakan tiga cakupan yang dapat dimulai: InvokeAgentScope, ExecuteToolScope, dan InferenceScope.

Pemanggilan Agen

Cakupan ini harus digunakan pada awal proses agen Anda. Dengan memanggil cakupan agen, Anda mengambil properti seperti agen saat ini yang dipanggil, data pengguna agen, dll.

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

Eksekusi Alat

Contoh berikut menunjukkan cara melengkapi eksekusi alat agen Anda dengan pelacakan pengamatan untuk menangkap telemetri untuk tujuan pemantauan dan audit.

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)

Inferensi

Contoh berikut menunjukkan cara melengkapi panggilan inferensi model AI dengan pelacakan pengamatan untuk menangkap penggunaan token, detail model, dan metadata respons.

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

Memvalidasi Secara Lokal

Atur variabel lingkungan/ Ini mengekspor rentang (jejak) ke konsol.

Menguji agen Anda dengan pengamatan

Setelah menerapkan pengamatan di agen Anda, uji untuk memastikan telemetri ditangkap dengan benar. Ikuti panduan pengujian untuk menyiapkan lingkungan Anda, lalu fokus terutama pada bagian Lihat log pengamatan untuk memvalidasi implementasi pengamatan Anda berfungsi seperti yang diharapkan.