Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan AgentCore Observability
Amazon Bedrock AgentCore Observability membantu Anda melacak, men-debug, dan memantau kinerja agen di lingkungan produksi. Panduan ini membantu Anda menerapkan fitur observabilitas dalam aplikasi agen Anda.
Topik
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
-
AWS Akun dengan kredenSIAL dikonfigurasi (
aws configure) dengan akses model diaktifkan ke Model Dasar yang ingin Anda gunakan. -
Python 3.10+ diinstal
-
Aktifkan pencarian transaksi di Amazon CloudWatch. Hanya sekali, pengguna pertama kali harus mengaktifkan Pencarian CloudWatch Transaksi untuk melihat bentang dan jejak Bedrock Amazon Bedrock AgentCore
-
(hanya Non-runtime agen) Tambahkan per OpenTelemetry pustakaan — Sertakan
aws-opentelemetry-distro(ADOT) di file requirements.txt Anda. Jika Anda meng-host agen Anda di AWS Lambda, gunakan AWS Lambda Layer untuk di AWS Distro for OpenTelemetryOpenTelemetry situs web sebagai gantinya. -
(hanya Non-runtime agen) Pastikan kerangka kerja Anda dikonfigurasi untuk memancarkan jejak (misalnya,
strands-agents[otel]paket). Terkadang Anda mungkin perlu menyertakan instrumentor otomatis kerangka kerja agen Anda (misalnya,opentelemetry-instrumentation-langchain).
Amazon Bedrock AgentCore Observability menawarkan dua cara untuk mengonfigurasi pemantauan agar sesuai dengan kebutuhan infrastruktur yang berbeda:
-
Agen Amazon Bedrock AgentCore Runtime-hosted
-
Non-runtime agen yang dihosting
Sebagai pengaturan satu kali per AWS akun, pengguna pertama kali harus mengaktifkan Pencarian Transaksi di Amazon CloudWatch. Ada dua cara untuk melakukan ini, melalui API dan melalui Kon CloudWatch sol.
Langkah 1: Aktifkan pencarian transaksi pada CloudWatch
Setelah Anda mengaktifkan Pencarian Transaksi, diperlukan waktu sepuluh menit agar rentang tersedia untuk pencarian dan analisis. Pilih salah satu opsi di bawah ini:
Opsi 1: Aktifkan pencarian transaksi menggunakan API
Untuk mengaktifkan pencarian transaksi menggunakan API
-
Buat kebijakan yang memberikan akses untuk menelan rentang di CloudWatch Log menggunakan AWS CLI.
Contoh ditunjukkan di bawah ini tentang cara memformat perintah AWS CLI Anda dengan
PutResourcePolicy.aws logs put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "TransactionSearchXRayAccess", "Effect": "Allow", "Principal": { "Service": "xray.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": [ "arn:partition:logs:region:account-id:log-group:aws/spans:*", "arn:partition:logs:region:account-id:log-group:/aws/application-signals/data:*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:xray:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ]}' -
Konfigurasikan tujuan segmen jejak.
Contoh ditunjukkan di bawah ini tentang cara memformat perintah AWS CLI Anda dengan
UpdateTraceSegmentDestination.aws xray update-trace-segment-destination --destination CloudWatchLogs -
Opsional Konfigurasikan jumlah rentang untuk diindeks.
Konfigurasikan persentase sampling yang Anda inginkan dengan
UpdateIndexingRule.aws xray update-indexing-rule --name "Default" --rule '{"Probabilistic": {"DesiredSamplingPercentage": number}}'
Opsi 2: Aktifkan pencarian transaksi di CloudWatch konsol
Untuk mengaktifkan pencarian transaksi di CloudWatch konsol
-
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi di bawah Peng aturan, pilih Peng aturan.
-
Pilih Akun dan pilih tab X-Ray jejak.
-
Di bagian Pencarian Transaksi, pilih Lihat pengaturan.
-
Pada halaman yang terbuka, pilih Edit.
-
Pilih Aktifkan Pencarian Transaksi.
-
Pilih Untuk X-Ray pengguna dan masukkan persentase jejak yang akan diindeks. Anda dapat mengindeks 1% dari jejak tanpa biaya dan menyesuaikan persentase ini nanti berdasarkan kebutuhan Anda.
-
Pilih Simpan. Tunggu hingga OpenTelemetry Spans Ingest ditampilkan Di aktifkan sebelum mengirim jejak.
Sekarang mari kita lanjutkan untuk mengeksplorasi dua cara untuk mengkonfigurasi observabilitas.
Langkah 2: Aktifkan pengamatan untuk agen yang dihosting Amazon Bedrock AgentCore Runtime
Agen Amazon Bed AgentCore Runtime-hosted rock dikerahkan dan dieksekusi langsung di AgentCore lingkungan Amazon Bedrock, menyediakan instrumentasi otomatis dengan konfigurasi minimal. Saat Anda menyebarkan agen menggunakan AgentCore CLI, runtime akan secara otomatis menginstrumentasi agen Anda dengan OpenTelemetry — tidak diperlukan pustaka atau konfigurasi OTEL tambahan.
Untuk contoh lengkap, lihat Sampel AgentCore Pengamatan pada GitHub
Buat proyek agen Anda
Buat proyek baru menggunakan AgentCore CLI. Ini mengatur folder proyek Anda, lingkungan virtual, dan dependensi:
npm install -g @aws/agentcore agentcore create \ --project-name StrandsObservability \ --name StrandsClaudeGettingStarted \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none cd StrandsObservability/app/StrandsClaudeGettingStarted uv add strands-agents-tools cd ../..
Di direktori agen proyek, ganti kode agen default dengan logika agen Anda sendiri. Berikut ini adalah contoh menggunakan Strands Agents SDK:
## app/StrandsClaudeGettingStarted/main.py from strands import Agent, tool from strands_tools import calculator from bedrock_agentcore.runtime import BedrockAgentCoreApp from strands.models import BedrockModel app = BedrockAgentCoreApp() @tool def weather(): """Get weather""" return "sunny" model = BedrockModel( model_id="us.anthropic.claude-3-7-sonnet-20250219-v1:0", ) agent = Agent( model=model, tools=[calculator, weather], system_prompt="You're a helpful assistant. You can do simple math calculation, and tell the weather." ) @app.entrypoint def strands_agent_bedrock(payload): """Invoke the agent with a payload""" user_input = payload.get("prompt") if not isinstance(user_input, str) or not user_input: return "Error: 'prompt' must be a non-empty string" response = agent(user_input) return response.message['content'][0]['text'] if __name__ == "__main__": app.run()
Menyebarkan dan memanggil agen Anda
Menyebarkan agen ke AgentCore Runtime. AgentCore CLI menangani pengemasan, penyebaran, dan instrumentasi OTEL otomatis:
agentcore deploy
Setelah penerapan, agen Anda berjalan pada AgentCore Runtime dan secara otomatis diinstrumentasi menggunakan OpenTelemetry. Panggil agen Anda dan lihat jejak, sesi, dan metrik di dasbor Pengamatan GenAI di Amazon: CloudWatch
agentcore invoke
Atau, Anda dapat memanggil agen Anda secara terprogram menggunakan SDK: AWS
import boto3, json client = boto3.client('bedrock-agentcore') response = client.invoke_agent_runtime( agentRuntimeArn="YOUR_AGENT_RUNTIME_ARN", runtimeSessionId="my-observability-session-001", payload=json.dumps({"prompt": "What is 2 + 2?"}), qualifier="DEFAULT" ) print(json.loads(response['response'].read()))
Langkah 3: Aktifkan observabilitas untuk agen non-Amazon Bedrock AgentCore-hosted
Untuk agen yang berjalan di luar AgentCore runtime Amazon Bedrock, Anda dapat memberikan kemampuan pemantauan yang sama untuk agen yang digunakan pada infrastruktur Anda sendiri. Hal ini memungkinkan pengamatan yang konsisten terlepas dari mana agen Anda berjalan. Gunakan langkah-langkah berikut untuk mengonfigurasi variabel lingkungan yang diperlukan untuk mengamati agen Anda.
Untuk contoh lengkapnya, lihat sampel Agen di Amazon EKS
Konfigurasi AWS variabel lingkungan
export AWS_ACCOUNT_ID=<account id> export AWS_DEFAULT_REGION=<default region> export AWS_REGION=<region> export AWS_ACCESS_KEY_ID=<access key id> export AWS_SECRET_ACCESS_KEY=<secret key>
Konfigurasikan pen CloudWatch catatan
Buat grup log dan aliran log untuk agen Anda di Amazon CloudWatch yang dapat Anda gunakan untuk mengonfigurasi variabel lingkungan di bawah ini.
Konfigur OpenTelemetry asikan variabel lingkungan
export AGENT_OBSERVABILITY_ENABLED=true # Activates the ADOT pipeline export OTEL_PYTHON_DISTRO=aws_distro # Uses AWS Distro for OpenTelemetry export OTEL_PYTHON_CONFIGURATOR=aws_configurator # Sets AWS configurator for ADOT SDK export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf # Configures export protocol export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=<YOUR-LOG-GROUP>,x-aws-log-stream=<YOUR-LOG-STREAM>,x-aws-metric-namespace=<YOUR-NAMESPACE> # Directs logs to CloudWatch groups export OTEL_EXPORTER_OTLP_TRACES_HEADERS=x-aws-log-group=<YOUR-LOG-GROUP>,x-aws-log-stream=<YOUR-TRACES-LOG-STREAM> # (Optional) Directs spans to your log group instead of the aws/spans log group. Requires ADOT version 0.18.0 or later. export OTEL_RESOURCE_ATTRIBUTES=service.name=<YOUR-AGENT-NAME> # Identifies your agent in observability data export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false # AWS Lambda Layer for OpenTelemetry only: disables Application Signals export OTEL_LOGS_EXPORTER=otlp # AWS Lambda Layer for OpenTelemetry only: exports logs over OTLP export OTEL_METRICS_EXPORTER=awsemf # AWS Lambda Layer for OpenTelemetry only: exports metrics as CloudWatch EMF
Ganti <YOUR-AGENT-NAME> dengan nama unik untuk mengidentifikasi agen ini di dasbor dan log Pengamatan GenAI.
catatan
Jika Anda mengatur OTEL_EXPORTER_OTLP_TRACES_HEADERS untuk mengirimkan rentang ke grup log Anda sendiri, Anda juga harus menambahkan kebijakan sumber daya Amazon CloudWatch Logs. Kebijakan harus mengiz X-Ray inkan (xray.amazonaws.com) memang logs:PutLogEvents gil grup log tersebut. Gunakan kebijakan yang sama yang ditunjukkan di Aktifkan pencarian transaksi menggunakan API, dengan ARN grup log Anda masukResource. Tanpa kebijakan ini, tidak X-Ray dapat mengirimkan rentang ke grup log Anda.
Buat agen secara lokal
# Create agent.py - Strands agent that is a weather assistant from strands import Agent from strands_tools import http_request # Define a weather-focused system prompt WEATHER_SYSTEM_PROMPT = """You are a weather assistant with HTTP capabilities. You can: 1. Make HTTP requests to the National Weather Service API 2. Process and display weather forecast data 3. Provide weather information for locations in the United States When retrieving weather information: 1. First get the coordinates or grid information using https://api.weather.gov/points/{latitude},{longitude} or https://api.weather.gov/points/{zipcode} 2. Then use the returned forecast URL to get the actual forecast When displaying responses: - Format weather data in a human-readable way - Highlight important information like temperature, precipitation, and alerts - Handle errors appropriately - Convert technical terms to user-friendly language Always explain the weather conditions clearly and provide context for the forecast. """ # Create an agent with HTTP capabilities weather_agent = Agent( system_prompt=WEATHER_SYSTEM_PROMPT, tools=[http_request], # Explicitly enable http_request tool ) response = weather_agent("What's the weather like in Seattle?") print(response)
Jalankan agen Anda dengan perintah instrumentasi otomatis
Dengan aws-opentelemetry-distro di requirements.txt Anda, opentelemetry-instrument perintah akan:
-
Muat konfigurasi OTEL Anda dari variabel lingkungan Anda
-
Secara otomatis instrumen Strands, panggilan Amazon Bedrock, alat dan database agen, dan permintaan lain yang dibuat oleh agen
-
Kirim jejak ke CloudWatch
-
Memungkinkan Anda memvisualisasikan proses pengambilan keputusan agen di dasbor Pengamatan GenAI
Gunakan perintah berikut untuk menjalankan agen Anda dengan instrumentasi otomatis:
opentelemetry-instrument python agent.py
Jika Anda meng-host agen Anda di AWS Lambda, gunakan AWS Lambda Layer untuk OpenTelemetry AWS_LAMBDA_EXEC_WRAPPER lingkungan ke/opt/otel-instrument. Lapisan kemudian secara otomatis menginstrumentasikan fungsi Anda. Dengan pendekatan ini, Anda tidak perlu menambahkan aws-opentelemetry-distro paket atau menjalankan opentelemetry-instrument perintah yang dijelaskan sebelumnya.
ADOT Collector tidak didukung untuk pengamatan agen
ADOT Collector tidak didukung untuk pengamatan agen. Untuk mengirim telemetri dari agen yang dihosting di luar AgentCore runtime, Anda harus menggunakan ADOT SDK atau AWS Lambda Layer untuk. OpenTelemetry
Anda sekarang dapat melihat jejak, sesi, dan metrik Anda di Dasbor Pengamatan GenAI di Amazon CloudWatch dengan nilai YOUR-AGENT-NAME yang Anda konfigurasikan dalam variabel lingkungan Anda.
Untuk menghubungkan pelacakan di beberapa operasi agen, Anda dapat mengaitkan ID sesi dengan data telemetri menggunakan OpenTelemetry bagasi:
from opentelemetry import baggage, context ctx = baggage.set_baggage("session.id", session_id)
Langkah 4: Amati agen Anda dengan pengamatan GenAI di Amazon CloudWatch
Setelah menerapkan observabilitas, Anda dapat melihat data yang dikumpulkan di: CloudWatch
Amati agen Anda
-
Buka Peng amatan GenAI di konsol CloudWatch
-
Anda dapat melihat data yang terkait dengan pemanggilan model dan agen di Bedrock Amazon Bedrock AgentCore di dasbor.
-
Di tab Bedrock Agentcore Anda dapat melihat Tampilan Agen, Tampilan Sesi, dan Tampilan Jejak.
-
Tampilan Agen mencantumkan semua Agen Anda yang aktif dan tidak sedang runtime, Anda juga dapat memilih agen dan melihat detail lebih lanjut seperti metrik runtime, sesi, dan pelacakan khusus untuk agen.
-
Di tab Tampilan Sesi, Anda dapat menavigasi semua sesi yang terkait dengan agen.
-
Di tab Trace View, Anda dapat melihat informasi jejak dan rentang untuk agen. Juga jelajahi lintasan jejak dan garis waktu dengan memilih jejak.
Lihat log masuk CloudWatch
Untuk melihat log masuk CloudWatch
-
Buka konsol CloudWatch
-
Di panel navigasi kiri, perluas Log dan pilih Grup log
-
Cari grup log agen Anda:
-
Log standar (stdout/stderr) Lokasi:
/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/[runtime-logs] <UUID> -
Log terstruktur OTEL:
/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>/runtime-logs
-
Melihat jejak dan rentang
Untuk melihat jejak dan rentang
-
Buka konsol CloudWatch
-
Pilih Pencarian Transaksi dari navigasi kiri
-
Lokasi: aliran
spanslog di grup log agen (/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>), atau alirandefaultlog di grupaws/spanslog untuk agen yang menggunakan tujuan rentang bersama -
Filter berdasarkan nama layanan atau kriteria lainnya
-
Pilih jejak untuk melihat grafik eksekusi terperinci
Melihat metrik
Untuk melihat metrik
-
Buka konsol CloudWatch
-
Pilih Metrik dari navigasi kiri
-
Jelajahi ke
bedrock-agentcorenamespace -
Jelajahi metrik yang tersedia
Praktik terbaik
-
Mulai sederhana, lalu perluas - Pengamatan default yang disediakan oleh Amazon Bedrock AgentCore menangkap metrik paling penting secara otomatis, termasuk panggilan model, penggunaan token, dan eksekusi alat.
-
Konfigurasikan untuk tahap pengembangan - Sesuaikan konfigurasi pengamatan Anda agar sesuai dengan fase pengembangan Anda saat ini dan secara progresif menyesuaikan.
-
Gunakan penamaan yang konsisten - Tetapkan konvensi penamaan untuk layanan, rentang, dan atribut sejak awal
-
Filter data sensitif - Mencegah paparan informasi rahasia dengan memfilter data sensitif dari atribut pengamatan dan muatan.
-
Menyiapkan peringatan - Konfigur CloudWatch asikan alarm untuk memberi tahu Anda tentang masalah potensial sebelum berdampak pada pengguna