Introducción
En este tema se proporciona un flujo de trabajo integral para crear, rellenar y publicar un conjunto de datos.
Esquemas de conjuntos de datos
Cada conjunto de datos declara una schemaType en el momento de la creación. AgentCore valida cada ejemplo con el esquema declarado antes de aceptarlo. Se admiten dos tipos de esquema:
-
AGENTCORE_EVALUATION_PREDEFINED_V1: para comparar los agentes con turnos de conversación preescritos. Campos obligatorios:, (lista no vacía; cada turno debe contenerla). scenario_id turns input
-
AGENTCORE_EVALUATION_SIMULATED_V1: para generar conversaciones sintéticas. Campos obligatorios:, (objeto con un y obligatorio),. scenario_id actor_profile context goal input
Para ver las definiciones completas de los campos del esquema, los ejemplos y el mapeo de la verdad fundamental, consulte el esquema del conjunto de datos.
End-to-end flujo de trabajo
El siguiente ejemplo muestra el ciclo de vida completo del conjunto de datos: crear, añadir ejemplos, enumerar ejemplos, publicar una versión y limpiar.
ejemplo
- AgentCore CLI
-
-
# 1. Create dataset
agentcore add dataset --name my_eval_dataset \
--schema-type AGENTCORE_EVALUATION_PREDEFINED_V1
# 2. Add your scenarios to the JSONL file
# File: agentcore/datasets/my_eval_dataset.jsonl
# 3. Deploy to create the dataset and sync examples
agentcore deploy
# 4. Publish version 1
agentcore dataset publish-version --name my_eval_dataset
# 5. Check status (shows versions and example count)
agentcore status --type dataset
# 6. Download a published version to local file
agentcore dataset download --name my_eval_dataset --version 1
# 7. Cleanup
agentcore remove dataset --name my_eval_dataset
agentcore deploy
- AgentCore SDK
-
-
from bedrock_agentcore.evaluation import DatasetClient
client = DatasetClient(region_name="us-west-2")
# 1. Create dataset (polls until ACTIVE)
ds = client.create_dataset_and_wait(
datasetName="my_eval_dataset",
schemaType="AGENTCORE_EVALUATION_PREDEFINED_V1",
source={
"inlineExamples": {
"examples": [
{
"scenario_id": "TC-01",
"turns": [{"input": "What is my balance?", "expected_response": "Your balance is $50."}],
"assertions": ["Response includes a dollar amount"],
}
]
}
},
)
dataset_id = ds["datasetId"]
print(f"Created: {dataset_id}, status={ds['status']}")
# 2. Add more examples
ds = client.add_examples_and_wait(
datasetId=dataset_id,
source={
"inlineExamples": {
"examples": [
{"scenario_id": "TC-02", "turns": [{"input": "Transfer $100", "expected_response": "Transfer complete."}]}
]
}
},
)
print(f"Example count: {ds['exampleCount']}")
# 3. List examples
resp = client.list_dataset_examples(datasetId=dataset_id)
for example in resp["examples"]:
print(f" {example['exampleId']}: {example['scenario_id']}")
# 4. Publish version 1
ds = client.create_dataset_version_and_wait(datasetId=dataset_id)
print(f"Published, draftStatus: {ds.get('draftStatus')}")
# 5. List versions
resp = client.list_dataset_versions(datasetId=dataset_id)
for v in resp["versions"]:
print(f" Version {v['datasetVersion']}: {v['exampleCount']} examples")
# 6. Cleanup
client.delete_dataset_and_wait(datasetId=dataset_id)