Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini menunjukkan cara mengaktifkan OpenTelemetry pada agen sehingga interaksi dengan agen secara otomatis dicatat dan diekspor. Dalam tutorial ini, output ditulis ke konsol menggunakan pengekspor konsol OpenTelemetry.
Nota
Untuk informasi selengkapnya tentang standar yang diikuti oleh Microsoft Agent Framework, lihat Konvensi Semantik untuk agen GenAI dan rentang kerangka kerja dari Open Telemetry.
Prasyarat
Untuk prasyarat, lihat langkah Membuat dan menjalankan agen sederhana dalam tutorial ini.
Menginstal paket NuGet
Untuk menggunakan Microsoft Agent Framework dengan Azure OpenAI, Anda perlu menginstal paket NuGet berikut:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Untuk menambahkan dukungan OpenTelemetry, dengan dukungan untuk menulis ke konsol, instal paket tambahan ini:
dotnet add package OpenTelemetry
dotnet add package OpenTelemetry.Exporter.Console
Mengaktifkan OpenTelemetry di aplikasi Anda
Aktifkan telemetri Agent Framework dan buat OpenTelemetry TracerProvider yang diekspor ke konsol.
TracerProvider harus tetap aktif saat Anda menjalankan agen agar jejak dapat diekspor.
using System;
using OpenTelemetry;
using OpenTelemetry.Trace;
// Create a TracerProvider that exports to the console
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("agent-telemetry-source")
.AddConsoleExporter()
.Build();
Membuat dan menginstrumenkan agen
Buat agen, dan gunakan pola penyusun, panggil UseOpenTelemetry untuk memberikan nama sumber.
Perhatikan bahwa string literal agent-telemetry-source adalah nama sumber OpenTelemetry yang Anda gunakan saat membuat penyedia pelacak.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI;
// Create the agent and enable OpenTelemetry instrumentation
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker")
.AsBuilder()
.UseOpenTelemetry(sourceName: "agent-telemetry-source")
.Build();
Jalankan agen dan cetak respons teks. Pengekspor konsol akan menampilkan data pelacakan di konsol.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Output yang diharapkan akan menjadi sesuatu seperti ini, di mana jejak pemanggilan agen ditampilkan terlebih dahulu, diikuti oleh respons teks dari agen.
Activity.TraceId: f2258b51421fe9cf4c0bd428c87b1ae4
Activity.SpanId: 2cad6fc139dcf01d
Activity.TraceFlags: Recorded
Activity.DisplayName: invoke_agent Joker
Activity.Kind: Client
Activity.StartTime: 2025-09-18T11:00:48.6636883Z
Activity.Duration: 00:00:08.6077009
Activity.Tags:
gen_ai.operation.name: chat
gen_ai.request.model: gpt-4o-mini
gen_ai.provider.name: openai
server.address: <myresource>.openai.azure.com
server.port: 443
gen_ai.agent.id: 19e310a72fba4cc0b257b4bb8921f0c7
gen_ai.agent.name: Joker
gen_ai.response.finish_reasons: ["stop"]
gen_ai.response.id: chatcmpl-CH6fgKwMRGDtGNO3H88gA3AG2o7c5
gen_ai.response.model: gpt-4o-mini-2024-07-18
gen_ai.usage.input_tokens: 26
gen_ai.usage.output_tokens: 29
Instrumentation scope (ActivitySource):
Name: agent-telemetry-source
Resource associated with Activity:
telemetry.sdk.name: opentelemetry
telemetry.sdk.language: dotnet
telemetry.sdk.version: 1.13.1
service.name: unknown_service:Agent_Step08_Telemetry
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! ?????
Langkah selanjutnya
Tutorial ini menunjukkan cara mengaktifkan OpenTelemetry dengan cepat pada agen sehingga interaksi dengan agen secara otomatis dicatat dan diekspor.
Untuk dokumentasi komprehensif tentang pengamatan termasuk semua opsi konfigurasi, variabel lingkungan, dan skenario tingkat lanjut, lihat panduan pengguna Observabilitas.
Prasyarat
Untuk prasyarat, lihat langkah Membuat dan menjalankan agen sederhana dalam tutorial ini.
Memasang paket
Untuk menggunakan Agent Framework dengan OpenTelemetry, instal kerangka kerja:
pip install agent-framework --pre
Untuk output konsol selama pengembangan, tidak diperlukan paket tambahan. Untuk pengekspor lain, lihat bagian Dependensi di panduan pengguna.
Mengaktifkan OpenTelemetry di aplikasi Anda
Cara paling sederhana untuk mengaktifkan pengamatan adalah menggunakan configure_otel_providers():
from agent_framework.observability import configure_otel_providers
# Enable console output for local development
configure_otel_providers(enable_console_exporters=True)
Atau gunakan variabel lingkungan untuk lebih banyak fleksibilitas:
export ENABLE_INSTRUMENTATION=true
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
from agent_framework.observability import configure_otel_providers
# Reads OTEL_EXPORTER_OTLP_* environment variables automatically
configure_otel_providers()
Membuat dan menjalankan agen
Buat agen menggunakan Agent Framework. Keteramatan diaktifkan secara otomatis setelah configure_otel_providers() dipanggil.
from agent_framework import ChatAgent
from agent_framework.openai import OpenAIChatClient
# Create the agent - telemetry is automatically enabled
agent = ChatAgent(
chat_client=OpenAIChatClient(),
name="Joker",
instructions="You are good at telling jokes."
)
# Run the agent
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
Pengekspor konsol akan menampilkan data pelacakan yang mirip dengan:
{
"name": "invoke_agent Joker",
"context": {
"trace_id": "0xf2258b51421fe9cf4c0bd428c87b1ae4",
"span_id": "0x2cad6fc139dcf01d"
},
"attributes": {
"gen_ai.operation.name": "invoke_agent",
"gen_ai.agent.name": "Joker",
"gen_ai.usage.input_tokens": 26,
"gen_ai.usage.output_tokens": 29
}
}
Integrasi Microsoft Foundry
Jika Anda menggunakan Microsoft Foundry, ada metode mudah yang secara otomatis mengonfigurasi Azure Monitor dengan Application Insights. Pertama pastikan proyek Foundry Anda memiliki Azure Monitor yang dikonfigurasi (lihat Memantau aplikasi).
pip install azure-monitor-opentelemetry
from agent_framework.azure import AzureAIClient
from azure.ai.projects.aio import AIProjectClient
from azure.identity.aio import AzureCliCredential
async with (
AzureCliCredential() as credential,
AIProjectClient(endpoint="https://<your-project>.foundry.azure.com", credential=credential) as project_client,
AzureAIClient(project_client=project_client) as client,
):
# Automatically configures Azure Monitor with connection string from project
await client.configure_azure_monitor(enable_live_metrics=True)
Agen kustom dengan pengamatan Foundry
Untuk agen kustom yang tidak dibuat melalui Foundry, Anda dapat mendaftarkannya di portal Foundry dan menggunakan ID agen OpenTelemetry yang sama. Lihat Mendaftarkan agen kustom untuk instruksi penyiapan.
from azure.monitor.opentelemetry import configure_azure_monitor
from agent_framework import ChatAgent
from agent_framework.observability import create_resource, enable_instrumentation
from agent_framework.openai import OpenAIChatClient
# Configure Azure Monitor
configure_azure_monitor(
connection_string="InstrumentationKey=...",
resource=create_resource(),
enable_live_metrics=True,
)
# Optional if ENABLE_INSTRUMENTATION is already set in env vars
enable_instrumentation()
# Create your agent with the same OpenTelemetry agent ID as registered in Foundry
agent = ChatAgent(
chat_client=OpenAIChatClient(),
name="My Agent",
instructions="You are a helpful assistant.",
id="<OpenTelemetry agent ID>" # Must match the ID registered in Foundry
)
# Use the agent as normal
Petunjuk / Saran
Untuk instruksi penyiapan yang lebih rinci, lihat bagian penyiapan Microsoft Foundry di panduan pengguna.
Langkah selanjutnya
Untuk skenario pengamatan yang lebih canggih termasuk eksportir kustom, integrasi pihak ketiga (Langfuse, dll.), penyiapan Dasbor Aspire, dan dokumentasi rentang/metrik terperinci, lihat panduan Pengguna observabilitas.