A/B テストの前提条件
A/B テストを作成する前に、次のリソースが設定されていることを確認してください。
必要なリソース
| [リソース] | 説明 |
|---|---|
|
AgentCore ゲートウェイ |
エージェントランタイムを指す HTTP ターゲットが少なくとも 1 つあるアクティブな AgentCore Gateway。AgentCore Gateway は、バリアント間のトラフィックの分割を処理します。 |
|
エージェントランタイム |
Amazon Bedrock AgentCore SDK (バージョン 1.8 以降) を使用して、少なくとも 1 つのデプロイされたエージェントランタイム。SDK は、ランタイムによって出力されるすべての OpenTelemetry スパンに A/B テスト実験の詳細 (実験 ARN とバリアント名)
|
|
オンライン評価設定 |
セッションに対して実行する評価者を指定するアクティブなオンライン評価設定。
|
|
設定バンドル (オプション) |
設定バンドルベースのバリアントを使用する場合に必要です。2 つのバンドルバージョンまたは 2 つの個別のバンドル。1 つは制御用、もう 1 つは処理用です。 |
SDK の要件
Amazon Bedrock AgentCore SDK バージョン 1.8 以降が必要です。SDK には、AgentCore Gateway によって伝達される実験の荷物ヘッダーをBaggageSpanProcessor読み取り、すべてのランタイム OpenTelemetry スパンに実験 ARN とバリアント名を自動的にスタンプする が含まれています。オンライン評価パイプラインは、これらの属性を読み取り、セッションスコアを正しいバリアントにマッピングします。エージェントコードに追加の計測は必要ありません。
評価者の要件
注記
A/B テストでは、組み込みのカスタム LLM-as-judge およびコードベースの評価者がサポートされていますが、統計的有意性の計算には各評価者が数値を返す必要があります。カスタム LLM-as-judge 評価者の場合は、numericalスケール ( ではなく) ratingScaleで を設定しますcategorical。コードベースの評価者の場合、レスポンススキーマに valueフィールドを含めます。
IAM アクセス許可
A/B テスト実行ロールは、bedrock-agentcore.amazonaws.comサービスプリンシパルを信頼し、AgentCore Gateway オペレーション、設定バンドルの読み取り、オンライン評価設定の読み取り、CloudWatch Logs アクセスのアクセス許可を持っている必要があります。
注記
このロールを手動で作成する必要があるのは、独自の実行ロールを持ち込んで で渡す場合のみですagentcore run ab-test --role-arn <arn>。を省略すると--role-arn、AgentCore CLI はテストの実行ロールを自動的に作成します。
信頼ポリシーの例:
{ "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/*" } } } ] }
アクセス許可ポリシーの例:
{ "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:*" ] } ] }