View a markdown version of this page

はじめに - Amazon Bedrock AgentCore

はじめに

このトピックでは、データセットを作成、入力、公開するためのend-to-endのワークフローについて説明します。

データセットスキーマ

各データセットは、作成schemaType時に を宣言します。AgentCore は、すべての例を受け入れる前に、宣言されたスキーマに対して検証します。2 つのスキーマタイプがサポートされています。

  • AGENTCORE_EVALUATION_PREDEFINED_V1 — 事前に書き込まれた会話のターンに対してエージェントをテストする場合に使用します。必須フィールド: scenario_idturns (空でないリスト。各ターンには が含まれている必要がありますinput)。

  • AGENTCORE_EVALUATION_SIMULATED_V1 — 合成会話生成用。必須フィールド: scenario_idactor_profile ( contextおよび が必須のオブジェクトgoal)、input

スキーマフィールドの完全な定義、例、グラウンドトゥルースマッピングについては、「データセットスキーマ」を参照してください。

エンドツーエンドのワークフロー

次の例は、データセットのライフサイクル全体を示しています。作成、例の追加、例の一覧表示、バージョン発行、クリーンアップです。

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)