A/B 테스트 사전 조건
A/B 테스트를 생성하기 전에 다음 리소스가 있는지 확인합니다.
필수 리소스
| Resource | 설명 |
|---|---|
|
AgentCore 게이트웨이 |
에이전트 런타임을 가리키는 HTTP 대상이 하나 이상 있는 활성 AgentCore Gateway입니다. AgentCore Gateway는 변형 간 트래픽 분할을 처리합니다. |
|
에이전트 런타임 |
Amazon Bedrock AgentCore SDK(버전 1.8 이상)를 사용하여 배포된 에이전트 런타임이 하나 이상 있습니다. SDK는 런타임에서 내보내는 모든 OpenTelemetry 스팬에 A/B 테스트 실험 세부 정보(실험 ARN 및 변형 이름)를
|
|
온라인 평가 구성 |
세션에 대해 실행할 평가자를 지정하는 활성 온라인 평가 구성입니다.
|
|
구성 번들(선택 사항) |
구성 번들 기반 변형을 사용할 때 필요합니다. 번들 버전 2개 또는 별도의 번들 2개: 제어용 1개 및 처리용 1개. |
SDK 요구 사항
Amazon Bedrock AgentCore SDK 버전 1.8 이상이 필요합니다. SDK에는 AgentCore Gateway에서 전파한 실험용 장비 헤더를 읽고 모든 런타임 OpenTelemetry 스팬에 실험 ARN 및 변형 이름을 자동으로 스탬핑BaggageSpanProcessor하는가 포함되어 있습니다. 온라인 평가 파이프라인은 이러한 속성을 읽어 세션 점수를 올바른 변형에 매핑합니다. 에이전트 코드에는 추가 계측이 필요하지 않습니다.
평가자 요구 사항
참고
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:*" ] } ] }