View a markdown version of this page

Iniciar avaliação do lote - Amazon Bedrock AgentCore

Iniciar avaliação do lote

Inicie uma avaliação em lote para executar avaliadores em várias sessões de agentes. O serviço descobre sessões do CloudWatch Logs, compara cada avaliador em cada sessão e produz resultados agregados.

Exemplos de código

exemplo
AgentCore CLI

A CLI é resolvida serviceNames logGroupNames automaticamente a partir da configuração do projeto quando você usa: --runtime

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

Com bandeiras opcionais:

# 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

Por padrão, o comando inicia o trabalho e retorna imediatamente. Passe --wait para o bloco até que o trabalho atinja um estado terminal (COMPLETED,, ouSTOPPED)FAILED, após o qual a CLI exibe as pontuações médias por avaliador e salva os resultados em. .cli/jobs/batch-eval-results/

agentcore run batch-evaluationtambém suporta os seguintes sinalizadores:

  • --wait— bloquear até que o trabalho atinja um estado terminal.

  • --json— emite saída JSON legível por máquina.

  • --kms-key <arn>— criptografe os resultados da avaliação em lote com uma chave KMS gerenciada pelo cliente.

  • --dataset <name>/--dataset-version <version>— invoque o agente com cenários de conjunto de dados antes da avaliação em lote (omita a versão de um arquivo local ou useN/). DRAFT

  • --endpoint <name>— segmente um endpoint de tempo de execução específico (por exemplo,PROMPT_V1); o padrão é a variável de AGENTCORE_RUNTIME_ENDPOINT ambiente, então. DEFAULT

  • --evaluator-arn <arns…​>— avaliadores de referência pelo ARN em vez de. -e

    A maioria das bandeiras tem aliases curtos: -r (--runtime), -e (--evaluator), -n (--name), (), -d (--lookback-days), -s (--session-ids) e -g (--ground-truth).

    Para gerenciar um trabalho após seu início, execute agentcore stop batch-evaluation -i <id> para interromper um trabalho em execução e agentcore archive batch-evaluation -i <id> arquivar um registro de trabalho.

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

Com a filtragem de ID de sessão:

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

Com filtragem de intervalo de 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()), )

Parâmetros de solicitação

Parâmetro Tipo Obrigatório Descrição

batchEvaluationName

String

Sim

Um nome para o trabalho de avaliação em lote. Padrão: começa com uma letra, alfanumérica e sublinhados, no máximo 48 caracteres.

dataSourceConfig

Objeto

Sim

Onde encontrar sessões de agentes. Especifique uma cloudWatchLogs fonte com os grupos de registros e o nome do serviço para seu agente. Consulte Fonte da sessão abaixo.

evaluators

Lista

Sim

Lista de avaliadores. Cada entrada tem um evaluatorId campo (por exemplo,Builtin.GoalSuccessRate). Máximo de 10 avaliadores.

evaluationMetadata

Objeto

Não

Contém sessionMetadata uma lista de verdades e metadados básicos por sessão. Máximo de 500 entradas.

clientToken

String

Não

Símbolo de idempotência. Se você repetir uma solicitação com o mesmo token de cliente, o serviço retornará o trabalho existente em vez de criar um novo.

Fonte da sessão

O dataSourceConfig parâmetro especifica o local dos CloudWatch registros em que o serviço descobre as sessões do agente.

Campos obrigatórios

Campo Tipo Description

cloudWatchLogs.serviceNames

Lista de sequências de caracteres (exatamente 1)

O nome do serviço que identifica os rastros do seu agente. CloudWatch Convenção:{RuntimeName}.DEFAULT.

cloudWatchLogs.logGroupNames

Lista de sequências de caracteres (1—5)

CloudWatch nomes de grupos de registros em que a telemetria do agente é armazenada. Convenção:/aws/bedrock-agentcore/runtimes/{agentId}-DEFAULT.

Campos opcionais

Campo Tipo Description

cloudWatchLogs.filterConfig.sessionIds

Lista de strings

Avalie somente esses IDs de sessão específicos. Quando omitido, o serviço descobre todas as sessões no grupo de registros.

cloudWatchLogs.filterConfig.timeRange.startTime

Data/hora ISO 8601

Filtre as sessões criadas após esse horário.

cloudWatchLogs.filterConfig.timeRange.endTime

Data/hora ISO 8601

Filtre as sessões criadas antes dessa hora.

Resposta

Campo Tipo Description

batchEvaluationId

String

Identificador exclusivo para a avaliação do lote.

batchEvaluationArn

String

ARN da avaliação do lote.

batchEvaluationName

String

O nome que você especificou.

status

String

Status inicial. Um dos:PENDING,IN_PROGRESS.

evaluators

Lista

Os avaliadores usaram.

createdAt

Timestamp

Quando o trabalho foi criado.

outputConfig

Objeto

CloudWatch Destino de registros para resultados por sessão.

Erros

Erro Status HTTP Description

ValidationException

400

Parâmetros de solicitação inválidos. Verifique as restrições de campo e os campos obrigatórios.

AccessDeniedException

403

Permissões insuficientes. Verifique as políticas do IAM.

ConflictException

409

Já existe uma avaliação em lote com o mesmo token de cliente com parâmetros diferentes.

ThrottlingException

429

Taxa de solicitações excedida. Novas tentativas com recuo exponencial.

InternalServerException

500

Service-side erro. Repetir a solicitação .