View a markdown version of this page

Skema kumpulan data - Batuan Dasar Amazon AgentCore

Skema kumpulan data

Dataset berisi satu atau lebih skenario. Setiap skenario mewakili percakapan (sesi) dengan agen. Baik runner dataset on-demand maupun batch menggunakan format dataset yang sama.

AgentCore SDK mendukung dua jenis skenario:

  • Skenario yang telah ditentukan menggunakan urutan belokan tetap yang Anda buat dengan tangan. Pelari memutar ulang belokan persis seperti yang tertulis.

  • Skenario simulasi menggunakan LLM-backed aktor untuk menghasilkan belokan secara dinamis berdasarkan persona dan tujuan. Lihat Simulasi pengguna untuk detail tentang profil aktor dan konfigurasi simulasi.

FileDatasetProviderotomatis mendeteksi jenis skenario dari struktur JSON: skenario dengan turns bidang dimuat seperti yang telah ditentukan sebelumnya; skenario dengan actor_profile bidang (dan tidakturns) dimuat sebagai simulasi.

Skenario yang telah ditentukan

Skenario yang telah ditentukan menentukan urutan belokan tetap dengan input yang diketahui dan output yang diharapkan opsional.

Single-turn contoh

Setiap skenario mengirimkan satu prompt dan memeriksa respons:

{ "scenarios": [ { "scenario_id": "math-question", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" } ], "expected_trajectory": ["calculator"], "assertions": ["Agent used the calculator tool to compute the result"] }, { "scenario_id": "weather-check", "turns": [ { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["weather"], "assertions": ["Agent used the weather tool"] } ] }

Multi-turn contoh

Multi-turn skenario memiliki beberapa putaran per skenario. Mengubah mengeksekusi secara berurutan dalam sesi yang sama, mempertahankan konteks percakapan. Setiap giliran dapat memiliki sendiriexpected_response, sementara assertions dan expected_trajectory berlaku untuk seluruh sesi:

{ "scenarios": [ { "scenario_id": "math-then-weather", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" }, { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["calculator", "weather"], "assertions": [ "Agent used the calculator tool for the math question", "Agent used the weather tool when asked about weather" ] } ] }

Bidang skenario

Bidang Diperlukan Tipe Batasan Deskripsi

scenario_id

Ya

String

Non-empty

Pengidentifikasi unik untuk skenario.

turns

Ya

Daftar objek

Non-empty daftar

Daftar giliran dalam percakapan. Setiap giliran memiliki input (wajib) dan expected_response (opsional).

expected_trajectory

Tidak

Daftar string

Urutan nama alat yang diharapkan. Digunakan oleh evaluator lintasan (Builtin.TrajectoryExactOrderMatch,,). Builtin.TrajectoryInOrderMatch Builtin.TrajectoryAnyOrderMatch

assertions

Tidak

Daftar string

Pernyataan bahasa alami tentang perilaku yang diharapkan. Digunakan olehBuiltin.GoalSuccessRate.

metadata

Tidak

Objek

Metadata nilai kunci arbitrer untuk skenario tersebut.

Putar bidang

Bidang Diperlukan Tipe Batasan Deskripsi

input

Ya

String atau Objek

Non-empty

Prompt dikirim ke agen untuk giliran ini. Bisa berupa string biasa (misalnya,"What is my balance?") atau objek terstruktur (misalnya,{"role": "user", "content": "What is my balance?"}).

expected_response

Tidak

String

Respon agen yang diharapkan untuk giliran ini. Digunakan olehBuiltin.Correctness. Dipetakan secara posisi ke jejak yang dihasilkan oleh giliran ini; putar 0 peta untuk melacak 0, putar 1 peta untuk melacak 1.

Skenario simulasi

Skenario simulasi mendefinisikan profil aktor dan input awal. Aktor menghasilkan belokan berikutnya secara dinamis:

{ "scenarios": [ { "scenario_id": "geography-student", "scenario_description": "A curious student asks geography questions", "actor_profile": { "traits": {"expertise": "novice", "tone": "curious"}, "context": "A student studying world geography who wants to learn about capitals", "goal": "Find out the capital cities of at least two different countries" }, "input": "Hi! I'm studying geography. Can you help me learn about world capitals?", "max_turns": 5, "assertions": [ "Agent provides accurate capital city information", "Agent is helpful and encouraging to the student" ] } ] }

Bidang skenario

Bidang Diperlukan Tipe Batasan Deskripsi

scenario_id

Ya

String

Non-empty

Pengidentifikasi unik untuk skenario.

actor_profile

Ya

Objek

Harus mengandung context dan goal

Identitas dan tujuan aktor, berisi context (wajib), goal (wajib), dan traits (opsional). Lihat Simulasi pengguna.

input

Ya

String atau Objek

Non-empty

Pesan pertama dikirim ke agen Anda untuk memulai percakapan. Biasanya string polos, tetapi juga bisa menjadi objek terstruktur.

scenario_description

Tidak

String

Metadata opsional yang menjelaskan skenario. Berguna untuk mengatur dan mengidentifikasi skenario dalam hasil.

max_turns

Tidak

Bilangan Bulat

Harus ≥ 1

Jumlah putaran maksimum sebelum percakapan berhenti. Default: 10.

assertions

Tidak

Daftar string

Pernyataan bahasa alami tentang perilaku yang diharapkan. Digunakan olehBuiltin.GoalSuccessRate.

metadata

Tidak

Objek

Metadata nilai kunci arbitrer untuk skenario tersebut.

catatan

Skenario simulasi tidak mendukung expected_trajectory atau per-putaran expected_response karena alur percakapan tidak diketahui sebelumnya. Gunakan assertions untuk kebenaran dasar dengan skenario simulasi.

Pemetaan kebenaran dasar

Kedua pelari secara otomatis memetakan bidang dataset ke evaluator yang menggunakannya:

Penilai Bidang kebenaran dasar Tingkat Deskripsi

Builtin.Correctness

turns[].expected_response

Jejak

Mengukur seberapa akurat respons agen sesuai dengan jawaban yang diharapkan.

Builtin.GoalSuccessRate

assertions

Sesi

Memvalidasi apakah perilaku agen memenuhi pernyataan bahasa alami.

Builtin.TrajectoryExactOrderMatch

expected_trajectory

Sesi

Memeriksa apakah urutan panggilan alat yang sebenarnya cocok persis.

Builtin.TrajectoryInOrderMatch

expected_trajectory

Sesi

Memeriksa bahwa alat yang diharapkan muncul secara berurutan, memungkinkan tambahan di antara mereka.

Builtin.TrajectoryAnyOrderMatch

expected_trajectory

Sesi

Memeriksa bahwa semua alat yang diharapkan ada, terlepas dari urutannya.

  • Bidang kebenaran dasar adalah opsional. Evaluator yang tidak menggunakan kebenaran dasar (misalnya,Builtin.Helpfulness,Builtin.Faithfulness) mengevaluasi berdasarkan konten sesi saja.

  • Anda dapat menyertakan semua bidang kebenaran dasar dalam satu kumpulan data. Setiap pelari merutekan bidang yang relevan ke evaluator yang sesuai.

  • Jika tidak ada bidang kebenaran dasar yang ada, evaluator kembali ke mode bebas kebenaran dasar mereka.

Untuk detail selengkapnya tentang bidang kebenaran dasar dan cara kerjanya dengan API Evaluate, lihat Evaluasi kebenaran dasar.

Konstruksi kumpulan data sebaris

Alih-alih memuat dari file JSON, Anda dapat membuat kumpulan data langsung dengan Python:

from bedrock_agentcore.evaluation import Dataset, PredefinedScenario, Turn dataset = Dataset( scenarios=[ PredefinedScenario( scenario_id="math-question", turns=[ Turn( input="What is 15 + 27?", expected_response="15 + 27 = 42", ), ], expected_trajectory=["calculator"], assertions=["Agent used the calculator tool"], ), PredefinedScenario( scenario_id="weather-check", turns=[ Turn(input="What's the weather?"), ], expected_trajectory=["weather"], ), ] )

Atau muat dari file JSON:

from bedrock_agentcore.evaluation import FileDatasetProvider dataset = FileDatasetProvider("dataset.json").get_dataset()