

# A/B requisitos previos de prueba
<a name="ab-testing-prereqs"></a>

Antes de crear una A/B prueba, asegúrese de contar con los siguientes recursos.

## Recursos necesarios de
<a name="ab-prereqs-resources"></a>


| Recurso | Description (Descripción) | 
| --- | --- | 
| AgentCore Gateway | Una AgentCore puerta de enlace activa con al menos un destino HTTP que apunte al tiempo de ejecución del agente. La AgentCore puerta de enlace gestiona la división del tráfico entre las variantes. | 
| Tiempo de ejecución del agente | Se implementó al menos un agente en tiempo de ejecución mediante el AgentCore SDK de Amazon Bedrock (versión 1.8\+). El SDK adjunta `BaggageSpanProcessor` automáticamente los detalles del experimento de A/B prueba (ARN del experimento y nombre de la variante) a OpenTelemetry todos los intervalos emitidos por el tiempo de ejecución.[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| Configuración de evaluación en línea | Una configuración de evaluación en línea activa que especifica qué evaluadores ejecutar en función de las sesiones.[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| Paquetes de configuración (opcionales) | Se requieren cuando se utilizan variantes basadas en paquetes de configuración. Dos versiones de paquete o dos paquetes separados: uno para el control y otro para el tratamiento. | 

## Requisitos del SDK
<a name="ab-prereqs-sdk"></a>

Se requiere la versión 1.8 o posterior AgentCore del SDK de Amazon Bedrock. El SDK incluye una `BaggageSpanProcessor` que lee las cabeceras de equipaje de los experimentos propagadas por el AgentCore Gateway y marca automáticamente todos los períodos de tiempo de ejecución con el OpenTelemetry ARN del experimento y el nombre de la variante. El proceso de evaluación en línea lee estos atributos para asignar las puntuaciones de las sesiones a la variante correcta. No se requiere ningún instrumento adicional en tu código de agente.

## Requisitos del evaluador
<a name="ab-prereqs-evaluators"></a>

**nota**  
A/B Las pruebas admiten evaluadores integrados LLM-as-judge, personalizados y basados en código, pero requieren que cada evaluador devuelva un valor numérico para calcular la significación estadística. En el caso de LLM-as-judge los evaluadores personalizados, configúrelos `ratingScale` con una `numerical` escala (no). `categorical` [Para los evaluadores basados en código, incluya el `value` campo en el esquema de respuesta.](code-based-evaluators.md#code-based-response-schema)

## Permisos de IAM
<a name="ab-prereqs-iam"></a>

La función de ejecución de A/B pruebas debe confiar en el director del `bedrock-agentcore.amazonaws.com` servicio y tener permisos para las operaciones de AgentCore Gateway, las lecturas de paquetes de configuración, las lecturas de configuración de la evaluación en línea y el acceso a CloudWatch los registros.

**nota**  
Solo necesita crear esta función manualmente si trae su propia función de ejecución y la aprueba`agentcore run ab-test --role-arn <arn>`. Si lo omite`--role-arn`, la AgentCore CLI crea automáticamente un rol de ejecución para la prueba.

Ejemplo de política de confianza:

```
{
    "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/*"
                }
            }
        }
    ]
}
```

Ejemplo de política de permisos:

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