Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Evaluador personalizado basado en código
Los evaluadores personalizados basados en código le permiten usar su propia función de AWS Lambda para evaluar mediante programación el rendimiento de los agentes, en lugar de utilizar un LLM como juez. Esto le brinda un control total sobre la lógica de evaluación: puede implementar comprobaciones deterministas, llamar a API externas, realizar comparaciones de expresiones regulares, calcular métricas personalizadas o aplicar cualquier regla específica de la empresa.
Requisitos previos
Para usar evaluadores personalizados basados en código, necesitas:
-
Una función de AWS Lambda implementada en la misma región que sus AgentCore recursos de evaluación.
-
Una función de ejecución de IAM que otorga al servicio de AgentCore evaluaciones permiso para invocar su función de Lambda.
-
La función Lambda debe devolver una respuesta JSON que se ajuste al esquema de respuestas descrito en el esquema de respuestas. Esquema de respuesta
Permisos de IAM
Su función de ejecución de servicios necesita el siguiente permiso adicional para invocar las funciones de Lambda para la evaluación basada en código:
{ "Sid": "LambdaInvokeStatement", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name" }
Contrato de función Lambda
nota
El tiempo máximo de ejecución de la función Lambda es de 5 minutos (300 segundos). El tamaño máximo de carga útil de entrada que se envía a la función Lambda es de 6 MB.
Esquema de entrada
La función de Lambda recibe una carga útil JSON con la siguiente estructura:
{ "schemaVersion": "1.0", "evaluatorId": "my-evaluator-abc1234567", "evaluatorName": "MyCodeEvaluator", "evaluationLevel": "TRACE", "evaluationInput": { "sessionSpans": [...] }, "evaluationReferenceInputs": [], "evaluationTarget": { "traceIds": ["trace123"], "spanIds": ["span123"] } }
| Campo | Tipo | Description (Descripción) |
|---|---|---|
|
|
Cadena |
Versión esquemática de la carga útil. En la actualidad |
|
|
Cadena |
El ID del evaluador basado en el código. |
|
|
Cadena |
El nombre del evaluador basado en código. |
|
|
Cadena |
El nivel de evaluación: |
|
|
Objeto |
Contiene la duración de las sesiones de evaluación. |
|
|
Enumeración |
La sesión se extiende a lo largo de la evaluación. Puede truncarse si la carga útil original supera los 6 MB. |
|
|
Enumeración |
Las entradas de referencia proporcionadas al evaluador se filtran según el nivel de evaluación. Consulte Uso de la verdad básica en un evaluador basado en código. |
|
|
Objeto |
Identifica las trazas o intervalos específicos que se van a evaluar. Para los evaluadores a nivel de sesión, este valor es. |
|
|
Enumeración |
Los identificadores de seguimiento del objetivo de evaluación. Preséntelos para las evaluaciones a nivel de rastreo y a nivel de herramienta. |
|
|
Enumeración |
Los identificadores de longitud del objetivo de evaluación. Preséntelo para las evaluaciones a nivel de herramienta. |
Esquema de respuesta
La función de Lambda debe devolver un objeto JSON que coincida con uno de estos dos formatos:
Respuesta exitosa
{ "label": "PASS", "value": 1.0, "explanation": "All validation checks passed." }
| Campo | Obligatorio | Tipo | Description (Descripción) |
|---|---|---|---|
|
|
Sí |
Cadena |
Una etiqueta categórica para el resultado de la evaluación (por ejemplo, «APROBADO», «NO APROBADO», «BUENO» o «DEFICIENTE»). |
|
|
No |
Número |
Una puntuación numérica (por ejemplo, de 0.0 a 1.0). |
|
|
No |
Cadena |
Una explicación legible para los humanos del resultado de la evaluación. |
Respuesta de error
{ "errorCode": "VALIDATION_FAILED", "errorMessage": "Input spans missing required tool call attributes." }
| Campo | Obligatorio | Tipo | Description (Descripción) |
|---|---|---|---|
|
|
Sí |
Cadena |
Un código que identifica el error. |
|
|
Sí |
Cadena |
Una descripción del error legible por humanos. |
Cree un evaluador basado en código
La CreateEvaluator API crea un evaluador basado en código especificando el ARN de una función de Lambda y un tiempo de espera opcional.
Parámetros obligatorios: un nombre de evaluador único, un nivel de evaluación (, TRACETOOL_CALL, oSESSION) y una configuración de evaluador basada en código que contenga el ARN de Lambda.
Code-based configuración del evaluador:
{ "codeBased": { "lambdaConfig": { "lambdaArn": "arn:aws:lambda:region:account-id:function:function-name", "lambdaTimeoutInSeconds": 60 } } }
| Campo | Obligatorio | Predeterminado | Description (Descripción) |
|---|---|---|---|
|
|
Sí |
— |
El ARN de la función Lambda que se va a invocar. |
|
|
No |
60 |
Tiempo de espera en segundos para la invocación de Lambda (1—300). |
Los siguientes ejemplos de código muestran cómo crear evaluadores basados en código utilizando diferentes enfoques de desarrollo.
ejemplo
Ejecute una evaluación bajo demanda con un evaluador basado en código
Una vez creado, usa el evaluador personalizado basado en código con la Evaluate API del mismo modo que usarías cualquier otro evaluador. El servicio gestiona automáticamente la invocación de Lambda, la distribución en paralelo y el mapeo de resultados.
ejemplo
Uso de objetivos de evaluación
Puede centrarse en trazas o intervalos específicos, al igual que con los LLM-based evaluadores:
# Trace-level evaluation response = client.evaluate( evaluatorId="code-based-evaluator-id", evaluationInput={"sessionSpans": session_span_logs}, evaluationTarget={"traceIds": ["trace-id-1", "trace-id-2"]} ) # Tool-level evaluation response = client.evaluate( evaluatorId="code-based-evaluator-id", evaluationInput={"sessionSpans": session_span_logs}, evaluationTarget={"spanIds": ["span-id-1", "span-id-2"]} )
Uso de la verdad básica en un evaluador basado en código
Cuando se configuran las entradas de referencia de Ground Truth, la función Lambda las recibe en el campo. evaluationReferenceInputs Las entradas de referencia incluidas dependen del nivel de evaluación:
| Nivel de evaluación | Lambda recibe |
|---|---|
|
|
Todas las entradas de referencia. |
|
|
Session-level entradas de referencia más entradas de referencia que coincidan con el TraceID de destino. |
|
|
Session-level entradas de referencia más entradas de referencia que coincidan con el SpaniD de destino. |
nota
Para obtener más información sobre el uso de las evaluaciones de la verdad básica, consulte las evaluaciones de la verdad fundamental.
Realice una evaluación en línea con un evaluador basado en código
Puede usar un evaluador personalizado basado en código en una configuración de evaluación en línea para monitorear continuamente el tráfico en vivo de su agente. Cuando llames, introduce el identificador del evaluador en la evaluators lista. CreateOnlineEvaluationConfig
ejemplo
nota
Cuando se habilita una configuración de evaluación en línea que hace referencia a un evaluador basado en código, el evaluador se bloquea automáticamente y no se puede modificar ni eliminar hasta que se deshabilite o elimine la configuración. Para realizar cambios en el evaluador, deshabilite primero la configuración de evaluación en línea o clone el evaluador y cree una nueva configuración.