View a markdown version of this page

A/B pré-requisitos de teste - Amazon Bedrock AgentCore

A/B pré-requisitos de teste

Antes de criar um A/B teste, verifique se os recursos a seguir estão disponíveis.

Recursos necessários

Recurso Description

AgentCore Gateway

Um AgentCore gateway ativo com pelo menos um destino HTTP apontando para o tempo de execução do seu agente. O AgentCore Gateway lida com a divisão do tráfego entre variantes.

Tempo de execução do agente

Pelo menos um tempo de execução de agente implantado usando o Amazon Bedrock AgentCore SDK (versão 1.8+). O SDK anexa BaggageSpanProcessor automaticamente os detalhes do experimento de A/B teste (ARN do experimento e nome da variante) a todos os OpenTelemetry períodos emitidos pelo tempo de execução.

  • Variantes baseadas em pacotes de configuração: um tempo de execução é suficiente. Ambas as variantes são executadas no mesmo tempo de execução com diferentes versões do pacote de configuração.

  • Target-based variantes: implante um tempo de execução por variante (duas no total).

Configuração de avaliação on-line

Uma configuração de avaliação on-line ativa que especifica quais avaliadores devem ser executados nas sessões.

  • Variantes baseadas em pacotes de configuração: uma configuração de avaliação on-line que aponta para o único tempo de execução em que ambas as variantes são executadas.

  • Target-based variantes: uma configuração de avaliação on-line por endpoint de tempo de execução que você está usando para o A/B teste (duas no total), já que cada endpoint tem seu próprio grupo de registros.

Pacotes de configuração (opcional)

Obrigatório ao usar variantes baseadas em pacotes de configuração. Duas versões de pacote ou dois pacotes separados: um para controle e outro para tratamento.

Requisitos do SDK

É necessário o Amazon Bedrock AgentCore SDK versão 1.8 ou posterior. O SDK inclui um BaggageSpanProcessor que lê os cabeçalhos de bagagem do experimento propagados pelo AgentCore Gateway e carimba automaticamente todos os períodos de tempo de execução OpenTelemetry com o ARN do experimento e o nome da variante. O pipeline de avaliação on-line lê esses atributos para mapear as pontuações da sessão para a variante correta. Nenhuma instrumentação adicional é necessária em seu código de agente.

Requisitos do avaliador

nota

A/B o teste oferece suporte a avaliadores integrados LLM-as-judge, personalizados e baseados em código, mas exige que cada avaliador retorne um valor numérico para cálculo de significância estatística. Para LLM-as-judge avaliadores personalizados, configure o ratingScale com uma numerical escala (nãocategorical). Para avaliadores baseados em código, inclua o value campo no esquema de resposta.

Permissões do IAM

A função A/B de execução do teste deve confiar no responsável pelo bedrock-agentcore.amazonaws.com serviço e ter permissões para operações do AgentCore Gateway, leituras de pacotes de configuração, leituras de configurações de avaliação on-line e acesso a CloudWatch registros.

nota

Você só precisa criar essa função manualmente se você trouxer sua própria função de execução e passá-la com elaagentcore run ab-test --role-arn <arn>. Se você omitir--role-arn, a AgentCore CLI cria automaticamente uma função de execução para o teste.

Exemplo de política de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:PrincipalAccount}" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:*:${aws:PrincipalAccount}:ab-test/*" } } } ] }

Exemplo de política de permissões:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreResources", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetGateway", "bedrock-agentcore:GetGatewayTarget", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:CreateGatewayRule", "bedrock-agentcore:UpdateGatewayRule", "bedrock-agentcore:GetGatewayRule", "bedrock-agentcore:DeleteGatewayRule", "bedrock-agentcore:ListGatewayRules", "bedrock-agentcore:GetOnlineEvaluationConfig", "bedrock-agentcore:GetEvaluator", "bedrock-agentcore:GetConfigurationBundle", "bedrock-agentcore:GetConfigurationBundleVersion", "bedrock-agentcore:ListConfigurationBundleVersions" ], "Resource": "arn:aws:bedrock-agentcore:*:${aws:PrincipalAccount}:*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "CloudWatchLogsDescribe", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "CloudWatchLogs", "Effect": "Allow", "Action": [ "logs:DescribeIndexPolicies", "logs:PutIndexPolicy", "logs:StartQuery", "logs:GetQueryResults", "logs:StopQuery", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:${aws:PrincipalAccount}:log-group:/aws/bedrock-agentcore/evaluations/*", "arn:aws:logs:*:${aws:PrincipalAccount}:log-group:aws/spans", "arn:aws:logs:*:${aws:PrincipalAccount}:log-group:aws/spans:*" ] } ] }