

# A/B conditions préalables aux tests
<a name="ab-testing-prereqs"></a>

Avant de créer un A/B test, assurez-vous que les ressources suivantes sont en place.

## Ressources requises
<a name="ab-prereqs-resources"></a>


| Ressource | Description | 
| --- | --- | 
| Passerelle AgentCore  | Une AgentCore passerelle active avec au moins une cible HTTP pointant vers le runtime de votre agent. La AgentCore passerelle gère le partage du trafic entre les variantes. | 
| Exécution de l'agent | Au moins un environnement d'exécution d'agent déployé à l'aide du AgentCore SDK Amazon Bedrock (version 1.8\+). Le SDK associe `BaggageSpanProcessor` automatiquement les détails de l'expérience de A/B test (ARN de l'expérience et nom de la variante) à tous les intervalles OpenTelemetry émis par le moteur d'exécution.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| Configuration de l'évaluation en ligne | Configuration d'évaluation en ligne active qui spécifie les évaluateurs à exécuter par rapport aux sessions.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/ab-testing-prereqs.html) | 
| Bundles de configuration (facultatif) | Obligatoire lors de l'utilisation de variantes basées sur des ensembles de configuration. Deux versions groupées ou deux offres distinctes : une pour le contrôle et une pour le traitement. | 

## Exigences du SDK
<a name="ab-prereqs-sdk"></a>

La version 1.8 ou ultérieure du AgentCore SDK Amazon Bedrock est requise. Le SDK inclut un outil `BaggageSpanProcessor` qui lit les en-têtes des bagages d'expérience propagés par la AgentCore passerelle et estampille automatiquement toutes les durées d'exécution avec l'ARN de l'expérience OpenTelemetry et le nom de la variante. Le pipeline d'évaluation en ligne lit ces attributs pour associer les scores des sessions à la bonne variante. Aucune instrumentation supplémentaire n'est requise dans votre code d'agent.

## Exigences relatives à l'évaluateur
<a name="ab-prereqs-evaluators"></a>

**Note**  
A/B les tests prennent en charge les évaluateurs intégrés LLM-as-judge, personnalisés et basés sur le code, mais nécessitent que chaque évaluateur renvoie une valeur numérique pour le calcul de la signification statistique. Pour les LLM-as-judge évaluateurs personnalisés, configurez le `ratingScale` avec une `numerical` échelle (non`categorical`). [Pour les évaluateurs basés sur le code, incluez le `value` champ dans le schéma de réponse.](code-based-evaluators.md#code-based-response-schema)

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

Le rôle d'exécution des A/B tests doit faire confiance au principal du `bedrock-agentcore.amazonaws.com` service et disposer d'autorisations pour les opérations de AgentCore passerelle, les lectures de paquets de configuration, les lectures de configuration d'évaluation en ligne et l'accès aux CloudWatch journaux.

**Note**  
Vous ne devez créer ce rôle manuellement que si vous apportez votre propre rôle d'exécution et que vous le transmettez`agentcore run ab-test --role-arn <arn>`. Si vous omettez`--role-arn`, la AgentCore CLI crée automatiquement un rôle d'exécution pour le test.

Exemple de politique de confiance :

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

Exemple de politique d'autorisation :

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