View a markdown version of this page

A/B requisitos previos de prueba - Amazon Bedrock AgentCore

A/B requisitos previos de prueba

Antes de crear una A/B prueba, asegúrese de contar con los siguientes recursos.

Recursos necesarios de

Recurso Description (Descripción)

AgentCore Gateway

Una AgentCore puerta de enlace activa con al menos un destino HTTP que apunte al tiempo de ejecución del agente. La AgentCore puerta de enlace gestiona la división del tráfico entre las variantes.

Tiempo de ejecución del agente

Se implementó al menos un agente en tiempo de ejecución mediante el AgentCore SDK de Amazon Bedrock (versión 1.8+). El SDK adjunta BaggageSpanProcessor automáticamente los detalles del experimento de A/B prueba (ARN del experimento y nombre de la variante) a OpenTelemetry todos los intervalos emitidos por el tiempo de ejecución.

  • Variantes basadas en paquetes de configuración: basta con un tiempo de ejecución. Ambas variantes se ejecutan en el mismo tiempo de ejecución con diferentes versiones del paquete de configuración.

  • Target-based variantes: Implemente un tiempo de ejecución por variante (dos en total).

Configuración de evaluación en línea

Una configuración de evaluación en línea activa que especifica qué evaluadores ejecutar en función de las sesiones.

  • Variantes basadas en paquetes de configuración: una configuración de evaluación en línea que apunta al único tiempo de ejecución en el que se ejecutan ambas variantes.

  • Target-based variantes: una configuración de evaluación en línea por cada punto final de tiempo de ejecución que utilice para la A/B prueba (dos en total), ya que cada punto final tiene su propio grupo de registros.

Paquetes de configuración (opcionales)

Se requieren cuando se utilizan variantes basadas en paquetes de configuración. Dos versiones de paquete o dos paquetes separados: uno para el control y otro para el tratamiento.

Requisitos del SDK

Se requiere la versión 1.8 o posterior AgentCore del SDK de Amazon Bedrock. El SDK incluye una BaggageSpanProcessor que lee las cabeceras de equipaje de los experimentos propagadas por el AgentCore Gateway y marca automáticamente todos los períodos de tiempo de ejecución con el OpenTelemetry ARN del experimento y el nombre de la variante. El proceso de evaluación en línea lee estos atributos para asignar las puntuaciones de las sesiones a la variante correcta. No se requiere ningún instrumento adicional en tu código de agente.

Requisitos del evaluador

nota

A/B Las pruebas admiten evaluadores integrados LLM-as-judge, personalizados y basados en código, pero requieren que cada evaluador devuelva un valor numérico para calcular la significación estadística. En el caso de LLM-as-judge los evaluadores personalizados, configúrelos ratingScale con una numerical escala (no). categorical Para los evaluadores basados en código, incluya el value campo en el esquema de respuesta.

Permisos de IAM

La función de ejecución de A/B pruebas debe confiar en el director del bedrock-agentcore.amazonaws.com servicio y tener permisos para las operaciones de AgentCore Gateway, las lecturas de paquetes de configuración, las lecturas de configuración de la evaluación en línea y el acceso a CloudWatch los registros.

nota

Solo necesita crear esta función manualmente si trae su propia función de ejecución y la apruebaagentcore run ab-test --role-arn <arn>. Si lo omite--role-arn, la AgentCore CLI crea automáticamente un rol de ejecución para la prueba.

Ejemplo de política de confianza:

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

Ejemplo de política de permisos:

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