View a markdown version of this page

Avvia la valutazione in batch - Amazon Bedrock AgentCore

Avvia la valutazione in batch

Avvia una valutazione in batch per eseguire i valutatori su più sessioni di agenti. Il servizio rileva le sessioni dai CloudWatch registri, esegue ogni valutatore per ogni sessione e produce risultati aggregati.

Esempi di codice

Esempio
AgentCore CLI

La CLI si risolve serviceNames logGroupNames automaticamente dalla configurazione del progetto quando si utilizza: --runtime

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

Con bandiere opzionali:

# 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

Per impostazione predefinita, il comando avvia il processo e lo ritorna immediatamente. Passa --wait al blocco finché il lavoro non raggiunge uno stato terminale (COMPLETED,, oSTOPPED)FAILED, dopodiché la CLI visualizza i punteggi medi per valutatore e li salva in. .cli/jobs/batch-eval-results/

agentcore run batch-evaluationsupporta anche i seguenti flag:

  • --wait— blocca fino a quando il lavoro non raggiunge lo stato terminale.

  • --json— emette un output JSON leggibile dalla macchina.

  • --kms-key <arn>— crittografa i risultati della valutazione in batch con una chiave KMS gestita dal cliente.

  • --dataset <name>/--dataset-version <version>— richiama l'agente con scenari di set di dati prima della valutazione in batch (ometti la versione per un file locale o usa/). N DRAFT

  • --endpoint <name>— si rivolge a un endpoint di runtime specifico (ad esempio,PROMPT_V1); il valore predefinito è quindi la variabile di ambiente. AGENTCORE_RUNTIME_ENDPOINT DEFAULT

  • --evaluator-arn <arns…​>— valutatori di riferimento tramite ARN anziché. -e

    La maggior parte dei flag ha alias brevi: -r (--runtime), -e (--evaluator), -n (--name), (), -d (--lookback-days) e -s (--session-ids). -g --ground-truth

    Per gestire un lavoro dopo l'avvio, esegui agentcore stop batch-evaluation -i <id> per interrompere un processo in esecuzione e agentcore archive batch-evaluation -i <id> archiviare un record del lavoro.

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

Con il filtraggio degli ID di sessione:

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

Con filtraggio per intervalli di tempo:

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

Parametri della richiesta

Parametro Tipo Campo obbligatorio Descrizione

batchEvaluationName

Stringa

Un nome per il processo di valutazione in batch. Motivo: inizia con una lettera, caratteri alfanumerici e trattini bassi, massimo 48 caratteri.

dataSourceConfig

Oggetto

Dove trovare le sessioni degli agenti. Specificate una cloudWatchLogs fonte con i gruppi di log e il nome del servizio per il vostro agente. ConsultaFonte della sessione qui di seguito.

evaluators

List

Elenco dei valutatori. Ogni voce ha un evaluatorId campo (ad esempio,Builtin.GoalSuccessRate). Massimo 10 valutatori.

evaluationMetadata

Oggetto

No

Contiene sessionMetadata un elenco di verità fondamentali e metadati per sessione. Massimo 500 voci.

clientToken

Stringa

No

Token di idempotenza. Se riprovi una richiesta con lo stesso token client, il servizio restituisce il lavoro esistente invece di crearne uno nuovo.

Fonte della sessione

Il dataSourceConfig parametro specifica la posizione dei CloudWatch log in cui il servizio rileva le sessioni degli agenti.

Campi obbligatori

Campo Tipo Description

cloudWatchLogs.serviceNames

Elenco di stringhe (esattamente 1)

Il nome del servizio in cui identifica le tracce del tuo agente. CloudWatch Convenzione:{RuntimeName}.DEFAULT.

cloudWatchLogs.logGroupNames

Elenco di stringhe (1—5)

CloudWatch nomi dei gruppi di log in cui è archiviata la telemetria degli agenti. Convenzione:. /aws/bedrock-agentcore/runtimes/{agentId}-DEFAULT

Campi facoltativi

Campo Tipo Description

cloudWatchLogs.filterConfig.sessionIds

Elenco di stringhe

Valuta solo questi ID di sessione specifici. Se omesso, il servizio rileva tutte le sessioni nel gruppo di log.

cloudWatchLogs.filterConfig.timeRange.startTime

Data/ora ISO 8601

Filtra le sessioni create dopo questo periodo.

cloudWatchLogs.filterConfig.timeRange.endTime

Data/ora ISO 8601

Filtra le sessioni create prima di questo orario.

Risposta

Campo Tipo Description

batchEvaluationId

Stringa

Identificatore univoco per la valutazione in batch.

batchEvaluationArn

Stringa

ARN della valutazione del batch.

batchEvaluationName

Stringa

Il nome specificato.

status

Stringa

Stato iniziale. Uno di:PENDING,IN_PROGRESS.

evaluators

List

I valutatori utilizzati.

createdAt

Time stamp

Quando è stato creato il lavoro.

outputConfig

Oggetto

CloudWatch Registra la destinazione per i risultati per sessione.

Errori

Errore Stato HTTP Description

ValidationException

400

Parametri di richiesta non validi. Controlla i vincoli dei campi e i campi obbligatori.

AccessDeniedException

403

Autorizzazioni insufficienti. Verifica le politiche IAM.

ConflictException

409

Esiste già una valutazione in batch con lo stesso token client con parametri diversi.

ThrottlingException

429

Frequenza di richiesta superata. Riprova con backoff esponenziale.

InternalServerException

500

Service-side errore. Riprova la richiesta .