Prise en main
Cette rubrique fournit un flux de travail de bout en bout pour créer, renseigner et publier un ensemble de données.
Schémas de jeux de données
Chaque ensemble de données déclare un schemaType au moment de sa création. AgentCore valide chaque exemple par rapport au schéma déclaré avant de l'accepter. Deux types de schéma sont pris en charge :
-
AGENTCORE_EVALUATION_PREDEFINED_V1 — Pour tester les agents par rapport à des tournures de conversation préécrites. Champs obligatoires :scenario_id, turns (liste non vide ; chaque tour doit contenirinput).
-
AGENTCORE_EVALUATION_SIMULATED_V1 — Pour la génération de conversations synthétiques. Champs obligatoires :scenario_id, actor_profile (objet avec un context et obligatoiregoal),input.
Pour obtenir des définitions complètes des champs de schéma, des exemples et une cartographie de la vérité de base, voir Schéma du jeu de données.
End-to-end flux de travail
L'exemple suivant illustre le cycle de vie complet du jeu de données : création, ajout d'exemples, liste des exemples, publication d'une version et nettoyage.
Exemple
- 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)