View a markdown version of this page

Crear evaluador - Base amazónica AgentCore

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.

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 asincrónica 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), la configuración del evaluador y el nivel de evaluación (TOOL_CALLTRACE, o). SESSION

Cifrado opcional: puedes especificar una kmsKeyArn para cifrar las instrucciones del evaluador y la escala de valoración con una clave de KMS gestionada por el cliente. AWS Solo se admiten las claves de KMS de cifrado simétrico. Para obtener más información, consulte Cifrado en reposo para AgentCore las 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. Un modelo de juez ejecuta la lógica de evaluación. El modelo de evaluación es un modelo básico de Amazon Bedrock, que se invoca mediante el punto final de Amazon Bedrock Runtime (bedrock-runtime) o el punto de enlace de Amazon Bedrock Mantle (). bedrock-mantle

Code-based

Especifique el ARN de una función de AWS 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 el evaluador personalizado basado en código.

Para LLM-as-a-judge los evaluadores, especifique el modelo de juez modelConfig mediante una de las siguientes opciones:

  • bedrockEvaluatorModelConfig— Utilice un modelo en el punto final de Amazon Bedrock Runtime ()bedrock-runtime. Especifique modelId y, si lo desea, un inferenceConfig con maxTokens temperaturetopP, ystopSequences.

  • responsesEvaluatorModelConfig— Utilice un modelo en el punto final de Amazon Bedrock Mantle (bedrock-mantle). Especifique los parámetros modelId y, si lo desea, los parámetros de inferencia. Para ver los puntos de enlace, los ID de modelo y los parámetros de inferencia compatibles con un modelo, consulte su tarjeta de modelo en la guía del usuario de Amazon Bedrock, por ejemplo, Sol. GPT-5.6

LLM-as-a-judge instrucciones: En el caso de 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 del 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 instrucciones del usuario, las respuestas del asistente y las llamadas a las herramientas en todos los turnos de la sesión.

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

  • Trace-level evaluadores:

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

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

  • Tool-level evaluadores:

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

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

    • tool_turn— La llamada a la herramienta se está evaluando.

    • Marcadores de posición de habilidades: los siguientes marcadores de posición se rellenan solo para las llamadas a herramientas que AgentCore Evaluations identifica como invocaciones de habilidades. Un evaluador TOOL_CALL personalizado que incluye llamadas a herramientas de invocación de habilidades invoked_skill o solo skill_content se ejecuta en ellas; se omiten otras llamadas a herramientas de la misma sesión. Para obtener más información, consulte Evaluadores de habilidades. Evaluadores de habilidades

      • invoked_skill— El nombre de la habilidad que el agente cargó en esta llamada a la herramienta.

      • skill_content— El conjunto completo de SKILL.md instrucciones de la habilidad cargada.

      • available_skills— El catálogo de habilidades entre las que el agente podía elegir en tiempo de ejecución, cuando el rastreo revelara alguna de ellas. Cada entrada tiene un nombre y una descripción. No todos los marcos muestran un catálogo; cuando el catálogo no está en la traza, este marcador de posición está vacío.

      • user_message— La solicitud del usuario en el turno que activó la invocación de la habilidad.

        nota

        Cuando la solicitud de un evaluador de TOOL_CALL personalizado hace referenciaskill_content, representa {context} el contexto completo de la sesión (todos los turnos, desde el inicio hasta el final de la sesión) para que el juez pueda verificar si se han llevado a cabo los pasos prescritos en algún momento después de cargar la habilidad. Para otros evaluadores de TOOL_CALL personalizados, es la instantánea estándar previa a la llamada. {context}

Marcadores de posición básicos: además de los marcadores de posición estándar, los evaluadores personalizados pueden hacer referencia a los marcadores de posición reales que se rellenan a partir de los valores proporcionados en el momento de la evaluación. evaluationReferenceInputs 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 las herramientas al agente al que se ha llamado durante la sesión.

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

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

  • Trace-level evaluadores:

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

importante

Los evaluadores personalizados que utilizan marcadores de posición reales (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 básicos no están disponibles. El servicio detecta automáticamente los marcadores de posición de veracidad básica durante la creación del evaluador y aplica esta restricción.

Code-based configuración del evaluador: en el caso de los evaluadores basados en código, especifique un ARN para la función de AWS Lambda y un tiempo de espera de invocación opcional. La función Lambda recibe los intervalos de sesión y el objetivo de evaluación como entrada, y debe devolver un resultado que se ajuste al esquema de respuesta. Esquema de respuesta Para ver el contrato completo de la función de Lambda, las opciones de configuración y los ejemplos de código, consulte el 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 sus preferencias y entorno de desarrollo.

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." } ] } } }

El ejemplo anterior ejecuta el modelo de juez en el punto final de Amazon Bedrock Runtime con. bedrockEvaluatorModelConfig Para ejecutarlo en el punto final de Amazon Bedrock Mantle, sustituya el bedrockEvaluatorModelConfig objeto que contiene por modelConfig un responsesEvaluatorModelConfig objeto:

{ "responsesEvaluatorModelConfig": { "modelId": "openai.gpt-oss-120b", "maxOutputTokens": 500 } }

Para ver los puntos de enlace, los ID de modelo y los parámetros de inferencia compatibles con un modelo, consulte su tarjeta de modelo en la guía del usuario de Amazon Bedrock, por ejemplo, Sol. GPT-5.6

Con cualquiera de las dos configuraciones, puede crear el evaluador personalizado a través del cliente de API que elija:

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

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

    nota

    Ejecútelo desde el directorio de un AgentCore proyecto (creado conagentcore create).

Interactive
  1. Introduzca un nombre para su evaluador personalizado.

    Entrada del nombre del evaluador
  2. Seleccione el nivel de evaluación: sesión, seguimiento o llamada a herramientas.

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

    Selección de modelo
  4. Introduzca las instrucciones de evaluación. La solicitud 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 calificació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 datos básicos

Los siguientes ejemplos muestran cómo crear evaluadores personalizados que usen marcadores de posición de veracidad básica 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 emitir juicios matizados; por ejemplo, tolera pequeñas desviaciones, como el uso de herramientas de ayuda adicionales. actual_tool_trajectoryUtiliza expected_tool_trajectory los marcadores de posición y.

    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 una serie 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 la respuesta esperada y obtiene una puntuación de similitud semántica. Utiliza el expected_response marcador de posición para recibir la verdad básica 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 de Amazon Bedrock. Este método proporciona formularios guiados y validaciones para ayudarlo a configurar los ajustes de su evaluador.

Para crear un AgentCore evaluador personalizado

  1. Abra la consola de Amazon Bedrock. AgentCore

  2. En el panel de navegación izquierdo, seleccione 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.

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

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

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

  4. Para 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 de Lambda, introduzca el ARN de la función de Lambda. Si lo desea, defina 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 la definición personalizada del evaluador, 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án todos los cambios en la definición de evaluador personalizada existente.

  6. En el caso del modelo de evaluador personalizado, elija un modelo compatible seleccionando la barra de búsqueda de modelos situada a la derecha de la definición del evaluador personalizado. Puede elegir un modelo básico de Amazon Bedrock en el punto de enlace de Amazon Bedrock Runtime o en el punto de enlace de Amazon Bedrock Mantle. Para obtener más información sobre los modelos compatibles, consulte:

    • Modelos compatibles

      1. (Opcional) Para establecer los parámetros de inferencia del modelo, habilite Set temperature, Set top P, Set max. Output tokens y Set stop sequences. Los parámetros de inferencia disponibles dependen del modelo seleccionado. Para un modelo de razonamiento, la consola proporciona Set reasoning effort en lugar de Set temperature y Set top P.

  7. Para 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úa cada rastreo individual.

    • Uso de herramientas: evalúe cada uso de herramientas.

  10. Seleccione Crear evaluador personalizado para crear el evaluador personalizado.

Mejores prácticas para un evaluador personalizado

Redactar instrucciones bien estructuradas para los evaluadores es fundamental para que las evaluaciones sean precisas. Tenga en cuenta las siguientes pautas cuando escriba las instrucciones para los evaluadores, seleccione los niveles de los evaluadores y elija valores de referencia.

  • Selección del nivel de evaluación: seleccione el nivel de evaluación adecuado en función de sus requisitos de costo, latencia y rendimiento. Elija entre el nivel de seguimiento (revisa las respuestas de los agentes individuales), el nivel de herramienta (revisa el uso específico de una herramienta) o el nivel de sesión (revisa las sesiones de interacción completas). Su elección debe estar en consonancia con los objetivos del proyecto y 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 con su planteamiento estableciendo el rol modelo de juez 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 todas las instancias.

  • Ejemplo de integración: en tus instrucciones, incorpora de 1 a 3 ejemplos relevantes que muestren cómo evaluarían los humanos el desempeño de los agentes en tu 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 tu instrucción, elige marcadores de posición contextuales de forma estratégica en función de tus requisitos específicos. Encuentre el equilibrio adecuado entre proporcionar suficiente información y evitar la confusión del evaluador. 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 resultados: nuestro servicio incluye automáticamente un mensaje de estandarización al final de cada instrucción personalizada del evaluador. Este mensaje aplica 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 sobre el formato de los resultados en las instrucciones originales del evaluador para no confundir el modelo del juez.