

# A/B pré-requisitos de teste
<a name="ab-testing-prereqs"></a>

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

## Recursos necessários
<a name="ab-prereqs-resources"></a>


| 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.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| 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.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| 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
<a name="ab-prereqs-sdk"></a>

É 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
<a name="ab-prereqs-evaluators"></a>

**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ão`categorical`). [Para avaliadores baseados em código, inclua o `value` campo no esquema de resposta.](code-based-evaluators.md#code-based-response-schema)

## Permissões do IAM
<a name="ab-prereqs-iam"></a>

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 ela`agentcore 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:*"
            ]
        }
    ]
}
```