View a markdown version of this page

A/B conditions préalables aux tests - Amazon Bedrock AgentCore

A/B conditions préalables aux tests

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

Ressources requises

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.

  • Variantes basées sur le bundle de configuration : un seul environnement d'exécution suffit. Les deux variantes s'exécutent sur le même environnement d'exécution avec des versions de bundle de configuration différentes.

  • Target-based variantes : déployez un environnement d'exécution par variante (deux au total).

Configuration de l'évaluation en ligne

Configuration d'évaluation en ligne active qui spécifie les évaluateurs à exécuter par rapport aux sessions.

  • Variantes basées sur le bundle de configuration : une configuration d'évaluation en ligne pointant vers le seul environnement d'exécution où les deux variantes s'exécutent.

  • Target-based variantes : une configuration d'évaluation en ligne par point de terminaison d'exécution que vous utilisez pour votre A/B test (deux au total), chaque point de terminaison ayant son propre groupe de journaux.

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

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

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 (noncategorical). Pour les évaluateurs basés sur le code, incluez le value champ dans le schéma de réponse.

Autorisations IAM

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