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. Los ejecutores de conjuntos de datos por lotes y 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 turnos exactamente como están escritos.
-
Los escenarios simulados utilizan un LLM-backed actor para generar turnos de forma dinámica en función de la persona y el objetivo. Consulte Simulación de usuario 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 noturns) 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 secuencialmente dentro de la misma sesión, manteniendo el contexto de la conversación. Cada turno puede tener su propio expected_response turno 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) |
|---|---|---|---|---|
|
|
Sí |
Cadena |
Non-empty |
Identificador único del escenario. |
|
|
Sí |
Lista de objetos |
Non-empty lista |
Lista de turnos de la conversación. Cada turno tiene |
|
|
No |
Lista de cadenas |
Secuencia esperada de nombres de herramientas. Utilizado por los evaluadores de trayectoria ( |
|
|
|
No |
Lista de cadenas |
Afirmaciones en lenguaje natural sobre el comportamiento esperado. Utilizado por |
|
|
|
No |
Objeto |
Metadatos de valores clave arbitrarios para el escenario. |
Gire los campos
| Campo | Obligatorio | Tipo | Restricciones | Description (Descripción) |
|---|---|---|---|---|
|
|
Sí |
Cadena u objeto |
Non-empty |
El mensaje enviado al agente para este turno. Puede ser una cadena simple (por ejemplo, |
|
|
No |
Cadena |
La respuesta esperada del agente para este turno. Utilizado por |
Escenarios simulados
Un escenario simulado define un perfil de actor y una entrada inicial. El actor genera los turnos siguientes 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) |
|---|---|---|---|---|
|
|
Sí |
Cadena |
Non-empty |
Identificador único del escenario. |
|
|
Sí |
Objeto |
Debe contener |
La identidad y el objetivo del actor, |
|
|
Sí |
Cadena u objeto |
Non-empty |
El primer mensaje enviado a su agente para iniciar la conversación. Suele ser una cadena simple, pero también puede ser un objeto estructurado. |
|
|
No |
Cadena |
Metadatos opcionales que describen el escenario. Útiles para organizar e identificar escenarios en los resultados. |
|
|
|
No |
Entero |
Debe ser ≥ 1 |
Número máximo de turnos antes de que se detenga la conversación. Predeterminado: 10. |
|
|
No |
Lista de cadenas |
Afirmaciones en lenguaje natural sobre el comportamiento esperado. Utilizado por |
|
|
|
No |
Objeto |
Metadatos de valores clave arbitrarios para el escenario. |
nota
Los escenarios simulados no son compatibles expected_trajectory ni por turno expected_response porque el flujo de la conversación no se conoce de antemano. Úsalo assertions para obtener información básica con escenarios simulados.
Mapeo de la verdad fundamental
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) |
|---|---|---|---|
|
|
|
Rastreo |
Mide la precisión con la que la respuesta del agente coincide con la respuesta esperada. |
|
|
|
Session |
Valida si el comportamiento del agente cumple con las afirmaciones del lenguaje natural. |
|
|
|
Session |
Comprueba que la secuencia real de llamadas a la herramienta coincide exactamente. |
|
|
|
Session |
Comprueba que las herramientas esperadas aparecen en orden, lo que permite añadir extras entre ellas. |
|
|
|
Session |
Comprueba que todas las herramientas esperadas estén presentes, independientemente del orden. |
-
Los campos de información básica son opcionales. Los evaluadores que no utilizan la verdad fundamental (por ejemplo
Builtin.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 correspondientes.
-
Si no hay campos de verdad fundamental, los evaluadores recurren a su modo libre de verdades fundamentales.
Para obtener más información sobre los campos basados en la verdad y sobre cómo funcionan con la API Evaluate, consulte las evaluaciones basadas en la verdad.
Construcción de conjuntos de datos en línea
En lugar de cargarlos desde un archivo JSON, puedes construir 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 cárguelos desde un archivo JSON:
from bedrock_agentcore.evaluation import FileDatasetProvider dataset = FileDatasetProvider("dataset.json").get_dataset()