View a markdown version of this page

Introducción - Amazon Bedrock AgentCore

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. # 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
  1. 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)