View a markdown version of this page

esquema de conjunto de datos - 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.

esquema de conjunto de datos

Un conjunto de datos contiene uno o más escenarios. Cada escenario representa una conversación (sesión) con el agente. Tanto los ejecutores de conjuntos de datos por lotes como bajo demanda utilizan el mismo formato de conjunto de datos.

El AgentCore SDK admite dos tipos de escenarios:

  • Los escenarios predefinidos utilizan una secuencia fija de turnos que se crean a mano. El corredor repite los giros exactamente como están escritos.

  • Los escenarios simulados utilizan a un LLM-backed actor para generar turnos de forma dinámica en función de una persona y un objetivo. Consulte Simulación de usuarios para obtener más información sobre los perfiles de los actores y la configuración de la simulación.

FileDatasetProviderdetecta automáticamente el tipo de escenario a partir de la estructura JSON: los escenarios con un turns campo se cargan como predefinidos; los escenarios con un actor_profile campo (y sin élturns) se cargan como simulados.

Escenarios predefinidos

Un escenario predefinido especifica una secuencia fija de giros con entradas conocidas y salidas esperadas opcionales.

Single-turn ejemplo

Cada escenario envía un mensaje y comprueba la respuesta:

{ "scenarios": [ { "scenario_id": "math-question", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" } ], "expected_trajectory": ["calculator"], "assertions": ["Agent used the calculator tool to compute the result"] }, { "scenario_id": "weather-check", "turns": [ { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["weather"], "assertions": ["Agent used the weather tool"] } ] }

Multi-turn ejemplo

Multi-turn los escenarios tienen varios turnos por escenario. Los turnos se ejecutan de forma secuencial dentro de la misma sesión, manteniendo el contexto de la conversación. Cada turno puede tener su propia expected_response duración assertions y expected_trajectory aplicarse a toda la sesión:

{ "scenarios": [ { "scenario_id": "math-then-weather", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" }, { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["calculator", "weather"], "assertions": [ "Agent used the calculator tool for the math question", "Agent used the weather tool when asked about weather" ] } ] }

Campos de escenario

Campo Obligatorio Tipo Restricciones Description (Descripción)

scenario_id

Sí

Cadena

Non-empty

Identificador único para el escenario.

turns

Sí

Lista de objetos

Non-empty lista

Lista de turnos en la conversación. Cada turno tiene input (obligatorio) y expected_response (opcional).

expected_trajectory

No

Lista de cadenas

Secuencia esperada de nombres de herramientas. Utilizado por los evaluadores de trayectorias (Builtin.TrajectoryExactOrderMatch,Builtin.TrajectoryInOrderMatch,Builtin.TrajectoryAnyOrderMatch).

assertions

No

Lista de cadenas

Afirmaciones en lenguaje natural sobre el comportamiento esperado. Utilizado por Builtin.GoalSuccessRate.

metadata

No

Objeto

Metadatos de valores clave arbitrarios para el escenario.

Cambie los campos

Campo Obligatorio Tipo Restricciones Description (Descripción)

input

Sí

Cadena u objeto

Non-empty

La solicitud enviada al agente para este turno. Puede ser una cadena simple (por ejemplo,"What is my balance?") o un objeto estructurado (por ejemplo,{"role": "user", "content": "What is my balance?"}).

expected_response

No

Cadena

La respuesta esperada del agente para este turno. Utilizado por Builtin.Correctness. Se asigna posicionalmente a la traza producida por este turno; la curva 0 se asigna al trazo 0, la curva 1 se asigna al trazo 1.

Escenarios simulados

Un escenario simulado define un perfil de actor y una entrada inicial. El actor genera los siguientes turnos de forma dinámica:

{ "scenarios": [ { "scenario_id": "geography-student", "scenario_description": "A curious student asks geography questions", "actor_profile": { "traits": {"expertise": "novice", "tone": "curious"}, "context": "A student studying world geography who wants to learn about capitals", "goal": "Find out the capital cities of at least two different countries" }, "input": "Hi! I'm studying geography. Can you help me learn about world capitals?", "max_turns": 5, "assertions": [ "Agent provides accurate capital city information", "Agent is helpful and encouraging to the student" ] } ] }

Campos de escenario

Campo Obligatorio Tipo Restricciones Description (Descripción)

scenario_id

Sí

Cadena

Non-empty

Identificador único para el escenario.

actor_profile

Sí

Objeto

Debe contener context y goal

La identidad y el objetivo del actor, context incluidos (obligatorio), goal (obligatorio) y traits (opcional). Consulte Simulación de usuario.

input

Sí

Cadena u objeto

Non-empty

El primer mensaje enviado a su agente para iniciar la conversación. Normalmente es una cadena simple, pero también puede ser un objeto estructurado.

scenario_description

No

Cadena

Metadatos opcionales que describen el escenario. Son útiles para organizar e identificar escenarios en los resultados.

max_turns

No

Entero

Debe ser ≥ 1

Número máximo de turnos antes de que se detenga la conversación. Predeterminado: 10.

assertions

No

Lista de cadenas

Afirmaciones en lenguaje natural sobre el comportamiento esperado. Utilizado por Builtin.GoalSuccessRate.

metadata

No

Objeto

Metadatos de valores clave arbitrarios para el escenario.

nota

Los escenarios simulados no admiten expected_trajectory la opción por turno expected_response porque el flujo de la conversación no se conoce de antemano. assertionsUtilízalo para obtener la verdad básica con escenarios simulados.

Mapeo de la verdad básica

Ambos corredores asignan automáticamente los campos del conjunto de datos a los evaluadores que los utilizan:

Evaluador Campo de verdad fundamental Nivel Description (Descripción)

Builtin.Correctness

turns[].expected_response

Rastreo

Mide la precisión con la que la respuesta del agente coincide con la respuesta esperada.

Builtin.GoalSuccessRate

assertions

Session

Valida si el comportamiento del agente satisface las afirmaciones del lenguaje natural.

Builtin.TrajectoryExactOrderMatch

expected_trajectory

Session

Comprueba que la secuencia real de llamadas a la herramienta coincide exactamente.

Builtin.TrajectoryInOrderMatch

expected_trajectory

Session

Comprueba que las herramientas esperadas aparezcan en orden, lo que permite añadir más entre ellas.

Builtin.TrajectoryAnyOrderMatch

expected_trajectory

Session

Comprueba que todas las herramientas esperadas estén presentes, independientemente del orden en que estén.

  • Los campos de información básica son opcionales. Los evaluadores que no utilizan la verdad básica (por ejemploBuiltin.Helpfulness,Builtin.Faithfulness) evalúan basándose únicamente en el contenido de la sesión.

  • Puede incluir todos los campos de información básica en un único conjunto de datos. Cada corredor envía los campos relevantes a los evaluadores apropiados.

  • Si no hay campos de verdad básicos, los evaluadores vuelven a su modalidad básica sin la verdad.

Para obtener más información sobre los campos de Ground Truth y cómo funcionan con la API Evaluate, consulta las evaluaciones de Ground Truth.

Construcción de conjuntos de datos en línea

En lugar de cargarlos desde un archivo JSON, puedes crear conjuntos de datos directamente en Python:

from bedrock_agentcore.evaluation import Dataset, PredefinedScenario, Turn dataset = Dataset( scenarios=[ PredefinedScenario( scenario_id="math-question", turns=[ Turn( input="What is 15 + 27?", expected_response="15 + 27 = 42", ), ], expected_trajectory=["calculator"], assertions=["Agent used the calculator tool"], ), PredefinedScenario( scenario_id="weather-check", turns=[ Turn(input="What's the weather?"), ], expected_trajectory=["weather"], ), ] )

O carga desde un archivo JSON:

from bedrock_agentcore.evaluation import FileDatasetProvider dataset = FileDatasetProvider("dataset.json").get_dataset()