View a markdown version of this page

Mulai evaluasi batch - Batuan Dasar Amazon AgentCore

Mulai evaluasi batch

Mulai evaluasi batch untuk menjalankan evaluator terhadap beberapa sesi agen. Layanan menemukan sesi dari CloudWatch Log, menjalankan setiap evaluator terhadap setiap sesi, dan menghasilkan hasil agregat.

Sampel Kode

contoh
AgentCore CLI

CLI menyelesaikan serviceNames dan logGroupNames secara otomatis dari konfigurasi proyek saat Anda menggunakan: --runtime

agentcore run batch-evaluation \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate Builtin.Helpfulness Builtin.Faithfulness

Dengan bendera opsional:

# Custom name and lookback window agentcore run batch-evaluation \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --name my_baseline_eval \ --lookback-days 1 # Specific sessions agentcore run batch-evaluation \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --session-ids session-abc123 session-def456 # With ground truth agentcore run batch-evaluation \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate Builtin.Correctness \ --ground-truth ground-truth.json

Secara default perintah memulai pekerjaan dan segera kembali. Lulus --wait ke blok hingga pekerjaan mencapai status terminal (COMPLETED,FAILED, atauSTOPPED), setelah itu CLI menampilkan skor rata-rata per evaluator dan menyimpan hasilnya. .cli/jobs/batch-eval-results/

agentcore run batch-evaluationjuga mendukung bendera berikut:

  • --wait— blokir sampai pekerjaan mencapai status terminal.

  • --json- memancarkan output JSON yang dapat dibaca mesin.

  • --kms-key <arn>— mengenkripsi hasil evaluasi batch dengan kunci KMS yang dikelola pelanggan.

  • --dataset <name>/--dataset-version <version>— panggil agen dengan skenario kumpulan data sebelum evaluasi batch (hilangkan versi untuk file lokal, atau gunakanN/). DRAFT

  • --endpoint <name>— menargetkan titik akhir runtime tertentu (misalnya,PROMPT_V1); default ke variabel lingkungan, lalu. AGENTCORE_RUNTIME_ENDPOINT DEFAULT

  • --evaluator-arn <arns…​>— evaluator referensi oleh ARN bukan. -e

    Sebagian besar flag memiliki alias pendek: -r (--runtime), (), -e (--evaluator), -n (--name), -d (--lookback-days), -s (--session-ids), dan -g (--ground-truth).

    Untuk mengelola pekerjaan setelah dimulai, jalankan agentcore stop batch-evaluation -i <id> untuk menghentikan pekerjaan yang sedang berjalan dan agentcore archive batch-evaluation -i <id> mengarsipkan catatan pekerjaan.

AWS SDK (boto3)
import boto3 import uuid import time import json client = boto3.client("bedrock-agentcore", region_name="us-west-2") # All sessions in the log group response = client.start_batch_evaluation( batchEvaluationName=f"baseline_eval_{uuid.uuid4().hex[:8]}", evaluators=[ {"evaluatorId": "Builtin.GoalSuccessRate"}, {"evaluatorId": "Builtin.Helpfulness"}, {"evaluatorId": "Builtin.Faithfulness"}, ], dataSourceConfig={ "cloudWatchLogs": { "serviceNames": ["MyAgent.DEFAULT"], "logGroupNames": ["/aws/bedrock-agentcore/runtimes/MyAgent-abc123-DEFAULT"], } }, clientToken=str(uuid.uuid4()), ) batch_eval_id = response["batchEvaluationId"] print(f"Started: {batch_eval_id}") # Poll until complete while True: result = client.get_batch_evaluation(batchEvaluationId=batch_eval_id) status = result["status"] print(f"Status: {status}") if status in ("COMPLETED", "COMPLETED_WITH_ERRORS", "FAILED", "STOPPED"): break time.sleep(30) print(json.dumps(result, indent=4, default=str))

Dengan pemfilteran ID sesi:

response = client.start_batch_evaluation( batchEvaluationName=f"targeted-eval-{uuid.uuid4().hex[:8]}", evaluators=[ {"evaluatorId": "Builtin.GoalSuccessRate"}, ], dataSourceConfig={ "cloudWatchLogs": { "serviceNames": ["MyAgent.DEFAULT"], "logGroupNames": ["/aws/bedrock-agentcore/runtimes/MyAgent-abc123-DEFAULT"], "filterConfig": { "sessionIds": ["session-001", "session-002", "session-003"] }, } }, clientToken=str(uuid.uuid4()), )

Dengan pemfilteran rentang waktu:

from datetime import datetime, timedelta, timezone now = datetime.now(timezone.utc) response = client.start_batch_evaluation( batchEvaluationName=f"weekly-eval-{uuid.uuid4().hex[:8]}", evaluators=[ {"evaluatorId": "Builtin.GoalSuccessRate"}, ], dataSourceConfig={ "cloudWatchLogs": { "serviceNames": ["MyAgent.DEFAULT"], "logGroupNames": ["/aws/bedrock-agentcore/runtimes/MyAgent-abc123-DEFAULT"], "filterConfig": { "timeRange": { "startTime": (now - timedelta(days=7)).isoformat(), "endTime": now.isoformat(), } }, } }, clientToken=str(uuid.uuid4()), )

Permintaan parameter

Parameter Tipe Diperlukan Deskripsi

batchEvaluationName

Tali

Ya

Nama untuk pekerjaan evaluasi batch. Pola: dimulai dengan huruf, alfanumerik dan garis bawah, maksimal 48 karakter.

dataSourceConfig

Objek

Ya

Di mana menemukan sesi agen. Tentukan cloudWatchLogs sumber dengan grup log dan nama layanan untuk agen Anda. Lihat Sumber sesi di bawah ini.

evaluators

Daftar

Ya

Daftar evaluator. Setiap entri memiliki evaluatorId bidang (misalnya,Builtin.GoalSuccessRate). Maksimal 10 evaluator.

evaluationMetadata

Objek

Tidak

BerisisessionMetadata, daftar kebenaran dasar per sesi dan metadata. Maksimal 500 entri.

clientToken

String

Tidak

Token idempotensi. Jika Anda mencoba lagi permintaan dengan token klien yang sama, layanan mengembalikan pekerjaan yang ada alih-alih membuat yang baru.

Sumber sesi

dataSourceConfigParameter menentukan lokasi CloudWatch Log tempat layanan menemukan sesi agen.

Bidang wajib

Bidang Tipe Deskripsi

cloudWatchLogs.serviceNames

Daftar string (tepatnya 1)

Nama layanan yang mengidentifikasi jejak agen Anda. CloudWatch Konvensi:{RuntimeName}.DEFAULT.

cloudWatchLogs.logGroupNames

Daftar string (1—5)

CloudWatch nama grup log tempat telemetri agen disimpan. Konvensi:/aws/bedrock-agentcore/runtimes/{agentId}-DEFAULT.

Bidang opsional

Bidang Tipe Deskripsi

cloudWatchLogs.filterConfig.sessionIds

Daftar string

Evaluasi hanya ID sesi khusus ini. Ketika dihilangkan, layanan menemukan semua sesi dalam grup log.

cloudWatchLogs.filterConfig.timeRange.startTime

Tanggal waktu ISO 8601

Sesi filter dibuat setelah waktu ini.

cloudWatchLogs.filterConfig.timeRange.endTime

Tanggal waktu ISO 8601

Sesi filter yang dibuat sebelum waktu ini.

Respons

Bidang Tipe Deskripsi

batchEvaluationId

String

Pengidentifikasi unik untuk evaluasi batch.

batchEvaluationArn

String

ARN dari evaluasi batch.

batchEvaluationName

String

Nama yang Anda tentukan.

status

String

Status awal. Salah satu dari:PENDING,IN_PROGRESS.

evaluators

Daftar

Evaluator yang digunakan.

createdAt

Stempel waktu

Ketika pekerjaan itu dibuat.

outputConfig

Objek

CloudWatch Tujuan log untuk hasil per sesi.

Kesalahan

Kesalahan Status HTTP Deskripsi

ValidationException

400

Parameter permintaan tidak valid. Periksa batasan bidang dan bidang wajib.

AccessDeniedException

403

Izin tidak mencukupi. Verifikasi kebijakan IAM.

ConflictException

409

Evaluasi batch dengan token klien yang sama sudah ada dengan parameter yang berbeda.

ThrottlingException

429

Tingkat permintaan terlampaui. Coba lagi dengan backoff eksponensial.

InternalServerException

500

Service-side kesalahan. Coba lagi permintaannya.