Entendendo os resultados e a produção
Os resultados da avaliação em lote vêm em duas camadas: resumos agregados na resposta da API e detalhes por sessão nos registros. CloudWatch
Resultados agregados
Quando uma avaliação em lote é concluída, a GetBatchEvaluation resposta inclui um evaluationResults objeto com resumos agregados.
Contagens de sessões
| Campo | Description |
|---|---|
|
|
Número de sessões avaliadas com sucesso por todos os avaliadores. |
|
|
Número de sessões em que pelo menos um avaliador falhou. |
|
|
Número de sessões ainda sendo avaliadas (0 quando o trabalho estiver concluído). |
|
|
Número total de sessões descobertas na origem da sessão. |
|
|
Número de sessões ignoradas para avaliação. O serviço avalia até 500 sessões por trabalho. Se mais de 500 sessões forem descobertas, o serviço selecionará as 500 sessões mais recentes e ignorará o restante. |
Per-evaluator resumos
Cada entrada evaluatorSummaries fornece métricas agregadas para um avaliador:
| Campo | Description |
|---|---|
|
|
ID abreviado (por exemplo, |
|
|
Pontuação média em todas as sessões avaliadas. O intervalo depende do avaliador (normalmente 0—1). |
|
|
Número de sessões que esse avaliador pontuou com sucesso. |
|
|
Número de sessões em que esse avaliador retornou um erro. |
Exemplo de resposta
{ "batchEvaluationId": "12345678-1234-1234-1234-123456789012", "status": "COMPLETED", "evaluationResults": { "numberOfSessionsCompleted": 47, "numberOfSessionsFailed": 3, "numberOfSessionsIgnored": 0, "totalNumberOfSessions": 50, "evaluatorSummaries": [ { "evaluatorId": "Builtin.GoalSuccessRate", "statistics": { "averageScore": 0.72 }, "totalEvaluated": 47, "totalFailed": 0 }, { "evaluatorId": "Builtin.Helpfulness", "statistics": { "averageScore": 0.81 }, "totalEvaluated": 47, "totalFailed": 0 } ] } }
Per-session detalhe em CloudWatch Logs
O outputConfig campo na GetBatchEvaluation resposta especifica um local de CloudWatch registros em que os resultados por sessão e por avaliador são gravados como eventos. OpenTelemetry
{ "outputConfig": { "cloudWatchConfig": { "logGroupName": "/aws/bedrock-agentcore/evaluations/batch", "logStreamName": "12345678-1234-1234-1234-123456789012" } } }
Cada evento no fluxo de registros contém detalhes por turno e por avaliador:
| Campo | Description |
|---|---|
|
|
Pontuação numérica para este turno. |
|
|
Rótulo categórico (por exemplo, |
|
|
LLM-generated raciocínio para a pontuação. |
Para ler esses eventos, use a API CloudWatch Logs:
import boto3 logs_client = boto3.client("logs", region_name="us-west-2") response = logs_client.get_log_events( logGroupName="/aws/bedrock-agentcore/evaluations/batch", logStreamName="12345678-1234-1234-1234-123456789012", ) for event in response["events"]: print(event["message"])
Interpretando pontuações
As pontuações da avaliação em lote seguem as mesmas convenções da avaliação sob demanda:
-
Pontuações numéricas (
value): o intervalo depende do avaliador. A maioria dos avaliadores integrados pontuam de 0 a 1, onde quanto maior, melhor. -
Rótulos (
label): descrições categóricas da pontuação. Por exemplo,Builtin.Helpfulnessretorna rótulos comoVery Helpful,Somewhat Helpful,Not Helpful.
Tratamento de erros
Job-level erros
Se o trabalho de avaliação em lote falhar completamente, ele status é FAILED e errorDetails contém uma ou mais mensagens de erro descrevendo o que deu errado. Causas comuns:
-
Nenhuma sessão foi encontrada na fonte especificada.
-
Grupo de CloudWatch registros ou nome de serviço inválido.
Session-level erros
Sessões individuais podem falhar enquanto o trabalho geral é bem-sucedido. A numberOfSessionsFailed contagem evaluationResults indica quantas sessões tiveram erros. Per-session os erros são registrados na saída de CloudWatch registros.
Evaluator-level erros
Em uma sessão avaliada com sucesso, avaliadores individuais podem falhar. A totalFailed contagem no resumo de cada avaliador indica quantas sessões esse avaliador não conseguiu pontuar. As causas comuns incluem extensões malformadas ou atributos obrigatórios ausentes.
Comparando os resultados entre as execuções
Um fluxo de trabalho comum é executar a avaliação em lote antes e depois de uma alteração (atualização imediata, troca de modelo, modificação da ferramenta) e comparar as pontuações agregadas:
# After running two batch evaluations baseline = client.get_batch_evaluation(batchEvaluationId=baseline_id) treatment = client.get_batch_evaluation(batchEvaluationId=treatment_id) baseline_summaries = { s["evaluatorId"]: s["statistics"]["averageScore"] for s in baseline["evaluationResults"]["evaluatorSummaries"] } treatment_summaries = { s["evaluatorId"]: s["statistics"]["averageScore"] for s in treatment["evaluationResults"]["evaluatorSummaries"] } print(f"{'Evaluator':<35} {'Baseline':>10} {'Treatment':>10} {'Delta':>10}") print("=" * 67) for eid in baseline_summaries: b = baseline_summaries[eid] t = treatment_summaries.get(eid, 0) delta = t - b print(f"{eid:<35} {b:>10.4f} {t:>10.4f} {delta:>+10.4f}")
Visualizando resultados da CLI
Além da GetBatchEvaluation API, a AgentCore CLI apresenta os mesmos resultados:
-
agentcore view batch-evaluation <batch-evaluation-id>— visualize um único trabalho e seus resultados (adicione--jsonpara a saída bruta). -
agentcore batch-evaluations history— listar trabalhos de avaliação em lote (os trabalhos em execução são atualizados a partir do serviço; adicionar--json). -
agentcore run batch-evaluation … --json— retorna o mesmoevaluatorSummariesobjetobatchEvaluationIdevaluationResults//mostrado no exemplo JSON acima.
# View a single batch evaluation job and its results agentcore view batch-evaluation 12345678-1234-1234-1234-123456789012 --json # List batch evaluation jobs (running jobs are refreshed from the service) agentcore batch-evaluations history --json
nota
O sinalizador de comando run para selecionar avaliadores é -e, --evaluator <ids…> (ou--evaluator-arn <arns…>).