はじめに
このトピックでは、データセットを作成、入力、公開するためのend-to-endのワークフローについて説明します。
データセットスキーマ
各データセットは、作成schemaType時に を宣言します。AgentCore は、すべての例を受け入れる前に、宣言されたスキーマに対して検証します。2 つのスキーマタイプがサポートされています。
-
AGENTCORE_EVALUATION_PREDEFINED_V1 — 事前に書き込まれた会話のターンに対してエージェントをテストする場合に使用します。必須フィールド: scenario_id、 turns (空でないリスト。各ターンには が含まれている必要がありますinput)。
-
AGENTCORE_EVALUATION_SIMULATED_V1 — 合成会話生成用。必須フィールド: scenario_id、 actor_profile ( contextおよび が必須のオブジェクトgoal)、input。
スキーマフィールドの完全な定義、例、グラウンドトゥルースマッピングについては、「データセットスキーマ」を参照してください。
エンドツーエンドのワークフロー
次の例は、データセットのライフサイクル全体を示しています。作成、例の追加、例の一覧表示、バージョン発行、クリーンアップです。
例
- 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)