Introdução
Este tópico fornece um fluxo de trabalho completo para criar, preencher e publicar um conjunto de dados.
Esquemas de conjuntos de dados
Cada conjunto de dados declara um schemaType no momento da criação. AgentCore valida cada exemplo em relação ao esquema declarado antes de aceitá-lo. Há suporte para dois tipos de esquema:
-
AGENTCORE_EVALUATION_PREDEFINED_V1 — Para testar agentes em relação a turnos de conversação pré-escritos. Campos obrigatórios:scenario_id, turns (lista não vazia; cada turno deve conterinput).
-
AGENTCORE_EVALUATION_SIMULATED_V1 — Para geração de conversas sintéticas. Campos obrigatórios:scenario_id, actor_profile (objeto com context e obrigatóriogoal),input.
Para ver definições completas do campo do esquema, exemplos e mapeamento da verdade básica, consulte Esquema do conjunto de dados.
End-to-end fluxo de trabalho
O exemplo a seguir demonstra o ciclo de vida completo do conjunto de dados: criar, adicionar exemplos, listar exemplos, publicar uma versão e limpar.
exemplo
- 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)