Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Skema dataset
Dataset berisi satu atau lebih skenario. Setiap skenario mewakili percakapan (sesi) dengan agen. Pelari dataset on-demand dan batch menggunakan format dataset yang sama.
AgentCore SDK mendukung dua jenis skenario:
-
Skenario yang telah ditentukan menggunakan urutan putaran tetap yang Anda buat dengan tangan. Pelari memutar ulang giliran 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.
FileDatasetProvidermendeteksi secara otomatis 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 putaran tetap dengan input yang diketahui dan output opsional yang diharapkan.
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. Putaran dijalankan 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 |
|---|---|---|---|---|
|
|
Ya |
String |
Non-empty |
Pengidentifikasi unik untuk skenario. |
|
|
Ya |
Daftar objek |
Non-empty daftar |
Daftar putaran dalam percakapan. Setiap giliran memiliki |
|
|
Tidak |
Daftar string |
Urutan nama alat yang diharapkan. Digunakan oleh evaluator lintasan ( |
|
|
|
Tidak |
Daftar string |
Pernyataan bahasa alami tentang perilaku yang diharapkan. Digunakan oleh |
|
|
|
Tidak |
Objek |
Metadata nilai kunci arbitrer untuk skenario. |
Putar bidang
| Bidang | Diperlukan | Tipe | Batasan | Deskripsi |
|---|---|---|---|---|
|
|
Ya |
String atau Objek |
Non-empty |
Prompt dikirim ke agen untuk giliran ini. Dapat berupa string biasa (misalnya, |
|
|
Tidak |
String |
Respons agen yang diharapkan untuk giliran ini. Digunakan oleh |
Skenario simulasi
Skenario simulasi mendefinisikan profil aktor dan input awal. Aktor menghasilkan putaran 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 |
|---|---|---|---|---|
|
|
Ya |
String |
Non-empty |
Pengidentifikasi unik untuk skenario. |
|
|
Ya |
Objek |
Harus berisi |
Identitas dan tujuan aktor, berisi |
|
|
Ya |
String atau Objek |
Non-empty |
Pesan pertama yang dikirim ke agen Anda untuk memulai percakapan. Biasanya string biasa, tetapi juga bisa menjadi objek terstruktur. |
|
|
Tidak |
String |
Metadata opsional yang menjelaskan skenario. Berguna untuk mengatur dan mengidentifikasi skenario dalam hasil. |
|
|
|
Tidak |
Bilangan Bulat |
Harus ≥ 1 |
Jumlah putaran maksimum sebelum percakapan berhenti. Default: 10. |
|
|
Tidak |
Daftar string |
Pernyataan bahasa alami tentang perilaku yang diharapkan. Digunakan oleh |
|
|
|
Tidak |
Objek |
Metadata nilai kunci arbitrer untuk skenario. |
catatan
Skenario simulasi tidak mendukung expected_trajectory atau per expected_response putaran karena aliran 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:
| Evaluator | Bidang kebenaran dasar | Tingkat | Deskripsi |
|---|---|---|---|
|
|
|
Jejak |
Mengukur seberapa akurat respons agen cocok dengan jawaban yang diharapkan. |
|
|
|
Sesi |
Memvalidasi apakah perilaku agen memenuhi pernyataan bahasa alami. |
|
|
|
Sesi |
Memeriksa apakah urutan panggilan alat yang sebenarnya cocok dengan tepat. |
|
|
|
Sesi |
Memeriksa apakah alat yang diharapkan muncul secara berurutan, memungkinkan tambahan di antara mereka. |
|
|
|
Sesi |
Memeriksa apakah semua alat yang diharapkan ada, terlepas dari urutannya. |
-
Bidang kebenaran dasar bersifat 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 mengarahkan 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 Evaluate API, lihat Evalu asi kebenaran dasar.
Konstruksi kumpulan data sebaris
Alih-alih memuat dari file JSON, Anda dapat membuat kumpulan data langsung di 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()