View a markdown version of this page

A/B 테스트 사전 조건 - Amazon Bedrock AgentCore

A/B 테스트 사전 조건

A/B 테스트를 생성하기 전에 다음 리소스가 있는지 확인합니다.

필수 리소스

Resource 설명

AgentCore 게이트웨이

에이전트 런타임을 가리키는 HTTP 대상이 하나 이상 있는 활성 AgentCore Gateway입니다. AgentCore Gateway는 변형 간 트래픽 분할을 처리합니다.

에이전트 런타임

Amazon Bedrock AgentCore SDK(버전 1.8 이상)를 사용하여 배포된 에이전트 런타임이 하나 이상 있습니다. SDK는 런타임에서 내보내는 모든 OpenTelemetry 스팬에 A/B 테스트 실험 세부 정보(실험 ARN 및 변형 이름)를 BaggageSpanProcessor 자동으로 연결합니다.

  • 구성 번들 기반 변형: 하나의 런타임으로 충분합니다. 두 변형 모두 서로 다른 구성 번들 버전으로 동일한 런타임에서 실행됩니다.

  • 대상 기반 변형: 변형당 하나의 런타임을 배포합니다(총 2개).

온라인 평가 구성

세션에 대해 실행할 평가자를 지정하는 활성 온라인 평가 구성입니다.

  • 구성 번들 기반 변형: 두 변형이 모두 실행되는 단일 런타임을 가리키는 하나의 온라인 평가 구성입니다.

  • 대상 기반 변형: 각 엔드포인트에는 고유한 로그 그룹이 있으므로 A/B 테스트에 사용하는 런타임 엔드포인트당 온라인 평가 구성 1개(총 2개).

구성 번들(선택 사항)

구성 번들 기반 변형을 사용할 때 필요합니다. 번들 버전 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:*" ] } ] }