View a markdown version of this page

Crear evaluador - Amazon Bedrock AgentCore

Crear evaluador

La CreateEvaluator API crea un nuevo evaluador personalizado que define cómo evaluar aspectos específicos del comportamiento de su agente. Esta operación asíncrona se devuelve inmediatamente mientras se aprovisiona el evaluador. La API devuelve el ARN, el ID, la marca de tiempo de creación y el estado inicial del evaluador. Una vez creado, se puede hacer referencia al evaluador en las configuraciones de evaluación en línea.

Parámetros obligatorios: debe especificar un nombre de evaluador único (dentro de su región), una configuración de evaluador y un nivel de evaluación (TOOL_CALLTRACE, o). SESSION

Cifrado opcional: puede especificar un kmsKeyArn para cifrar las instrucciones y la escala de calificación del evaluador con una clave KMS administrada por el cliente. AWS Solo se admiten claves KMS de cifrado simétrico. Para obtener más información, consulte Cifrado en reposo para AgentCore evaluaciones.

Configuración del evaluador: puede elegir uno de los dos tipos de evaluadores:

  • LLM-as-a-judge— Defina las instrucciones de evaluación (indicaciones), la configuración del modelo y las escalas de calificación. La lógica de evaluación se ejecuta mediante un modelo básico de Bedrock.

  • Code-based— Especifique el ARN de una AWS función Lambda para ejecutar su propia lógica de evaluación programática. Para obtener más información sobre el contrato y la configuración de la función Lambda, consulte Evaluador personalizado basado en código.

LLM-as-a-judge instrucciones: para LLM-as-a-judge los evaluadores, la instrucción debe incluir al menos un marcador de posición, que se sustituye por la información de rastreo real antes de enviarse al modelo de juez. Cada nivel de evaluador solo admite un conjunto fijo de valores de marcador de posición:

  • Session-level evaluadores:

    • context— Una lista de las solicitudes de los usuarios, las respuestas de los asistentes y las llamadas a las herramientas en todos los turnos de la sesión.

    • available_tools— El conjunto de herramientas disponibles en cada turno, que incluye el identificador de la herramienta, los parámetros y la descripción.

  • Trace-level evaluadores:

    • context— Toda la información de los turnos anteriores, incluidas las indicaciones del usuario, las llamadas a las herramientas y las respuestas del asistente, además de las instrucciones del usuario y las llamadas a las herramientas del turno actual.

    • assistant_turn— La respuesta del asistente para el turno actual.

  • Tool-level evaluadores:

    • available_tools— El conjunto de llamadas a las herramientas disponibles, incluidos el identificador, los parámetros y la descripción de la herramienta.

    • context— Toda la información de los turnos anteriores (indicaciones del usuario, detalles de las llamadas a la herramienta, respuestas del asistente) más la solicitud de usuario del turno actual y cualquier llamada a la herramienta realizada antes de la evaluación de la llamada a la herramienta.

    • tool_turn— La llamada de herramienta que se está evaluando.

Marcadores de posición basados en la verdad: además de los marcadores de posición estándar, los evaluadores personalizados pueden hacer referencia a los marcadores de posición basados en la evaluationReferenceInputs información proporcionada en el momento de la evaluación. Esto le permite crear evaluadores que comparen el comportamiento de los agentes con las respuestas que se sabe que son correctas.

  • Session-level evaluadores:

    • actual_tool_trajectory— La secuencia real de nombres de herramientas al agente al que se llamó durante la sesión.

    • expected_tool_trajectory— La secuencia esperada de nombres de herramientas, proporcionada expectedTrajectory en las entradas de referencia de la evaluación.

    • assertions— La lista de afirmaciones en lenguaje natural, proporcionada assertions en las entradas de referencia de la evaluación.

  • Trace-level evaluadores:

    • expected_response— La respuesta esperada del agente, proporcionada a través de las entradas expectedResponse de referencia de la evaluación.

importante

Los evaluadores personalizados que utilizan marcadores de posición basados en la verdad (assertions,expected_response,expected_tool_trajectory) no se pueden utilizar en las configuraciones de evaluación en línea. Las evaluaciones en línea supervisan el tráfico de producción en directo cuando los valores reales no están disponibles. El servicio detecta automáticamente los marcadores de la verdad fundamental durante la creación del evaluador y hace cumplir esta restricción.

Code-based configuración del evaluador: para los evaluadores basados en código, especifique un ARN de AWS función Lambda y un tiempo de espera de invocación opcional. La función Lambda recibe los intervalos de sesión y el objetivo de la evaluación como entrada y debe devolver un resultado que se ajuste al esquema de respuesta. Para ver el contrato completo de la función Lambda, las opciones de configuración y los ejemplos de código, consulte Evaluador personalizado basado en código.

La API devuelve el ARN, el ID, la marca de tiempo de creación y el estado inicial del evaluador. Una vez creado, se puede hacer referencia al evaluador en las configuraciones de evaluación en línea.

Ejemplos de código para AgentCore CLI, AgentCore SDK y AWS SDK

Los siguientes ejemplos de código muestran cómo crear evaluadores personalizados utilizando diferentes enfoques de desarrollo. Elija el método que mejor se adapte a su entorno de desarrollo y a sus preferencias.

Ejemplo de configuración de evaluador personalizado en JSON: custom_evaluator_config.json

{ "llmAsAJudge":{ "modelConfig": { "bedrockEvaluatorModelConfig":{ "modelId":"global.anthropic.claude-sonnet-4-5-20250929-v1:0", "inferenceConfig":{ "maxTokens":500, "temperature":1.0 } } }, "instructions": "You are evaluating the quality of the Assistant's response. You are given a task and a candidate response. Is this a good and accurate response to the task? This is generally meant as you would understand it for a math problem, or a quiz question, where only the content and the provided solution matter. Other aspects such as the style or presentation of the response, format or language issues do not matter.\n\n**IMPORTANT**: A response quality can only be high if the agent remains in its original scope to answer questions about the weather and mathematical queries only. Penalize agents that answer questions outside its original scope (weather and math) with a Very Poor classification.\n\nContext: {context}\nCandidate Response: {assistant_turn}", "ratingScale": { "numerical": [ { "value": 1, "label": "Very Good", "definition": "Response is completely accurate and directly answers the question. All facts, calculations, or reasoning are correct with no errors or omissions." }, { "value": 0.75, "label": "Good", "definition": "Response is mostly accurate with minor issues that don't significantly impact the correctness. The core answer is right but may lack some detail or have trivial inaccuracies." }, { "value": 0.50, "label": "OK", "definition": "Response is partially correct but contains notable errors or incomplete information. The answer demonstrates some understanding but falls short of being reliable." }, { "value": 0.25, "label": "Poor", "definition": "Response contains significant errors or misconceptions. The answer is mostly incorrect or misleading, though it may show minimal relevant understanding." }, { "value": 0, "label": "Very Poor", "definition": "Response is completely incorrect, irrelevant, or fails to address the question. No useful or accurate information is provided." } ] } } }

Con el JSON anterior, puede crear el evaluador personalizado a través del cliente API que prefiera:

ejemplo
AgentCore CLI
  1. agentcore add evaluator \ --name "your_custom_evaluator_name" \ --config custom_evaluator_config.json \ --level "TRACE"

    Este comando añade el evaluador a la configuración localagentcore.json. Ejecute agentcore deploy para crearlo en su AWS cuenta.

    nota

    Ejecuta esto desde dentro de un directorio de AgentCore proyecto (creado conagentcore create).

Interactive
  1. Introduzca un nombre para su evaluador personalizado.

    Introduzca el nombre del evaluador
  2. Seleccione el nivel de evaluación: Session, Trace o Tool Call.

    Selección del nivel de evaluación
  3. Elija el modelo de juez LLM para la evaluación.

    Selección de modelo
  4. Introduzca sus instrucciones de evaluación. El mensaje debe incluir al menos un marcador de posición: {context} para el historial de conversaciones o {available_tools} para la lista de herramientas.

    Entrada de instrucciones de evaluación
  5. Seleccione una escala de valoración preestablecida o defina una escala personalizada.

    Selección de escala de valoración
  6. Revise la configuración del evaluador y pulse Entrar para confirmar.

    Revise la configuración del evaluador
AgentCore SDK
  1. import json from bedrock_agentcore_starter_toolkit import Evaluation eval_client = Evaluation() # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator custom_evaluator = eval_client.create_evaluator( name="your_custom_evaluator_name", level="TRACE", description="Response quality evaluator", config=evaluator_config )
AWS SDK
  1. import boto3 import json client = boto3.client('bedrock-agentcore-control') # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator response = client.create_evaluator( evaluatorName="your_custom_evaluator_name", level="TRACE", evaluatorConfig=evaluator_config )
AWS CLI
  1. aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'your_custom_evaluator_name' \ --level TRACE \ --evaluator-config file://custom_evaluator_config.json

Ejemplos de configuración de evaluadores personalizados con información básica

Los siguientes ejemplos muestran cómo crear evaluadores personalizados que utilicen marcadores de posición basados en la verdad para diferentes escenarios de evaluación.

ejemplo
Trajectory compliance evaluator (session-level)
  1. Este evaluador utiliza un LLM para comparar las trayectorias esperadas y reales de las herramientas, lo que permite realizar juicios matizados; por ejemplo, tolera pequeñas desviaciones, como utilizar herramientas auxiliares adicionales. Utiliza los marcadores de posición y. expected_tool_trajectory actual_tool_trajectory

    Guarde lo siguiente comotrajectory_compliance_config.json:

    { "llmAsAJudge": { "instructions": "You are evaluating whether an AI agent followed the expected tool-use trajectory.\n\nExpected trajectory (ordered list of tool names):\n{expected_tool_trajectory}\n\nActual trajectory (ordered list of tool names the agent used):\n{actual_tool_trajectory}\n\nFull session context:\n{context}\n\nAvailable tools:\n{available_tools}\n\nCompare the expected and actual trajectories. Consider whether the agent called the right tools in the right order. Minor deviations (e.g., an extra logging tool call) are acceptable if the core trajectory is preserved.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The actual trajectory has no meaningful overlap with the expected trajectory" }, { "label": "Partial Match", "value": 0.5, "definition": "Some expected tools were called but the order or completeness is significantly off" }, { "label": "Full Match", "value": 1.0, "definition": "The actual trajectory matches the expected trajectory in order and completeness" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Cree el evaluador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'TrajectoryCompliance' \ --level SESSION \ --description 'Evaluates whether the agent followed the expected tool trajectory.' \ --evaluator-config file://trajectory_compliance_config.json
Assertion checker evaluator (session-level)
  1. Este evaluador comprueba si el comportamiento del agente satisface un conjunto de afirmaciones y emite un veredicto categórico. PASS/FAIL/INCONCLUSIVE Utiliza el assertions marcador de posición junto con y. context available_tools

    Guarde lo siguiente comoassertion_checker_config.json:

    { "llmAsAJudge": { "instructions": "You are a quality assurance judge for an AI agent session.\n\nSession context (full conversation history):\n{context}\n\nAvailable tools:\n{available_tools}\n\nAssertions to verify:\n{assertions}\n\nFor each assertion, determine if the session satisfies it. The overall verdict should be PASS only if ALL assertions are satisfied. If any assertion fails, the verdict is FAIL. If the session data is insufficient to determine, verdict is INCONCLUSIVE.", "ratingScale": { "categorical": [ { "label": "PASS", "definition": "All assertions are satisfied by the session" }, { "label": "FAIL", "definition": "One or more assertions are not satisfied" }, { "label": "INCONCLUSIVE", "definition": "Insufficient information to determine assertion satisfaction" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 1024, "temperature": 0.0 } } } } }

    Cree el evaluador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'AssertionChecker' \ --level SESSION \ --description 'Checks whether the agent session satisfies a set of assertions.' \ --evaluator-config file://assertion_checker_config.json
Response similarity evaluator (trace-level)
  1. Este evaluador compara la respuesta real del agente con una respuesta esperada y puntúa la similitud semántica. Utiliza el expected_response marcador de posición para recibir la verdad fundamental en el momento de la evaluación.

    Guarde lo siguiente comoresponse_similarity_config.json:

    { "llmAsAJudge": { "instructions": "Compare the agent's actual response to the expected response.\n\nConversation context:\n{context}\n\nAgent's actual response:\n{assistant_turn}\n\nExpected response:\n{expected_response}\n\nEvaluate semantic similarity. The agent does not need to match word-for-word, but the meaning, key facts, and intent should align. Penalize missing critical information or contradictions.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The response contradicts or is completely unrelated to the expected response" }, { "label": "Low Similarity", "value": 0.33, "definition": "Some overlap in topic but missing most key information" }, { "label": "High Similarity", "value": 0.67, "definition": "Covers most key points with minor omissions or differences" }, { "label": "Exact Match", "value": 1.0, "definition": "Semantically equivalent to the expected response" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Cree el evaluador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'ResponseSimilarity' \ --level TRACE \ --description 'Evaluates how closely the agent response matches the expected response.' \ --evaluator-config file://response_similarity_config.json

Consola

Puede crear evaluadores personalizados mediante la interfaz visual de la AgentCore consola Amazon Bedrock. Este método proporciona formularios guiados y validaciones para ayudarle a configurar los ajustes de su evaluador.

Para crear un evaluador AgentCore personalizado

  1. Abre la AgentCore consola Amazon Bedrock.

  2. En el panel de navegación izquierdo, elija Evaluación. Elija uno de los siguientes métodos para crear un evaluador personalizado:

    • Seleccione Crear un evaluador personalizado en la tarjeta Cómo funciona.

    • Selecciona Evaluadores personalizados para seleccionar la tarjeta y, a continuación, selecciona Crear evaluador personalizado.

  3. En Nombre del evaluador, ingresa un nombre para el evaluador personalizado.

    1. (Opcional) En la descripción del evaluador, introduzca una descripción para el evaluador personalizado.

  4. En el tipo de evaluador, elija una de las siguientes opciones:

    • LLM-as-a-judge— Utiliza un modelo básico para evaluar el desempeño de los agentes. Continúe con los pasos que se indican a continuación para configurar la definición, el modelo y la escala del evaluador.

    • Code-based— Utiliza una función AWS Lambda para evaluar mediante programación el rendimiento de los agentes. Para el ARN de la función Lambda, introduzca el ARN de la función Lambda. Si lo desea, establezca el tiempo de espera de Lambda (de 1 a 300 segundos, 60 por defecto). A continuación, pase al paso del nivel de evaluación.

  5. Para definir el evaluador personalizado, puede cargar diferentes plantillas para varios evaluadores integrados. De forma predeterminada, se carga la plantilla Faithfulness. Modifique la plantilla según sus necesidades.

    nota

    Si carga otra plantilla, se sobrescribirá cualquier cambio en la definición de evaluador personalizado existente.

  6. Para el modelo de evaluador personalizado, elija un modelo base compatible seleccionando la barra de búsqueda de modelos situada a la derecha de la definición del evaluador personalizado. Para obtener más información sobre los modelos de base compatibles, consulte:

    • Modelos de base compatibles

      1. (Opcional) Puede configurar los parámetros de inferencia del modelo activando Set temperature, Set top P, Set max. token de salida y Set stop sequencias.

  7. En el tipo de escala del evaluador, elija Definir la escala como valores numéricos o Definir la escala como valores de cadena.

  8. Para las definiciones de escala del evaluador, puede tener un total de 20 definiciones.

  9. Para el nivel de evaluación del evaluador, elija una de las siguientes opciones:

    • Sesión: evalúe todas las sesiones de conversación.

    • Rastreo: evalúe cada rastreo individual.

    • Llamada de herramienta: evalúe cada llamada de herramienta.

  10. Elija Crear un evaluador personalizado para crear el evaluador personalizado.

Mejores prácticas para los evaluadores personalizados

Redactar instrucciones bien estructuradas para los evaluadores es fundamental para que las evaluaciones sean precisas. Tenga en cuenta las siguientes pautas cuando redacte las instrucciones para el evaluador, seleccione los niveles del evaluador y elija los valores indicativos.

  • Selección del nivel de evaluación: seleccione el nivel de evaluación adecuado en función de sus requisitos de coste, latencia y rendimiento. Elija entre el nivel de seguimiento (revisa las respuestas individuales de los agentes), el nivel de herramienta (revisa el uso específico de la herramienta) o el nivel de sesión (revisa las sesiones de interacción completas). Su elección debe ajustarse a los objetivos del proyecto y a las limitaciones de recursos.

  • Criterios de evaluación: defina dimensiones de evaluación claras y específicas para su dominio. Utilice el enfoque mutuamente excluyente y colectivamente exhaustivo (MECE) para garantizar que cada evaluador tenga un alcance distinto. Esto evita la superposición de responsabilidades de evaluación y garantiza una cobertura integral de todas las áreas de evaluación.

  • Definición del rol: Para la instrucción, comience por establecer el rol del juez modelo como evaluador del desempeño. Una definición clara del rol mejora el desempeño del modelo y evita la confusión entre la evaluación y la ejecución de la tarea. Esto es particularmente importante cuando se trabaja con diferentes modelos de jueces.

  • Pautas de instrucción: Cree instrucciones de evaluación claras y secuenciales. Cuando se trate de requisitos complejos, divídalos en pasos simples y comprensibles. Utilice un lenguaje preciso para garantizar una evaluación coherente en todos los casos.

  • Ejemplo de integración: en sus instrucciones, incorpore de 1 a 3 ejemplos relevantes que muestren cómo las personas evaluarían el desempeño de los agentes en su dominio. Cada ejemplo debe incluir pares de entrada y salida coincidentes que representen con precisión los estándares esperados. Si bien son opcionales, estos ejemplos sirven como valiosas referencias de referencia.

  • Gestión del contexto: en su instrucción, elija estratégicamente los marcadores de contexto en función de sus requisitos específicos. Encuentre el equilibrio adecuado entre proporcionar suficiente información y evitar la confusión de los evaluadores. Ajuste la profundidad del contexto de acuerdo con las capacidades y limitaciones de su modelo de juez.

  • Marco de puntuación: elija entre una escala binaria (0/1) o una escala Likert (varios niveles). Defina claramente el significado de cada nivel de puntuación. Cuando no esté seguro de qué escala usar, comience con el sistema de puntuación binario más simple.

  • Estructura de salida: nuestro servicio incluye automáticamente un mensaje de estandarización al final de cada instrucción personalizada para el evaluador. Este mensaje impone dos campos de salida: motivo y puntuación, y el razonamiento siempre se presenta antes de la puntuación para garantizar una evaluación basada en la lógica. No incluya instrucciones de formato de salida en la instrucción original para el evaluador para evitar confundir el modelo del juez.