View a markdown version of this page

Buat evaluator - Batuan Dasar Amazon AgentCore

Buat evaluator

CreateEvaluatorAPI membuat evaluator kustom baru yang menentukan cara menilai aspek spesifik dari perilaku agen Anda. Operasi asinkron ini segera kembali saat evaluator sedang disediakan. API mengembalikan ARN evaluator, ID, stempel waktu pembuatan, dan status awal. Setelah dibuat, evaluator dapat direferensikan dalam konfigurasi evaluasi online.

Parameter yang diperlukan: Anda harus menentukan nama evaluator unik (dalam Wilayah Anda), konfigurasi evaluator, dan tingkat evaluasi (TOOL_CALL,TRACE, atauSESSION).

Enkripsi opsional: Anda dapat menentukan kmsKeyArn untuk mengenkripsi instruksi evaluator dan skala penilaian dengan kunci AWS KMS yang dikelola pelanggan. Hanya kunci KMS enkripsi simetris yang didukung. Untuk informasi selengkapnya, lihat Enkripsi saat istirahat untuk AgentCore Evaluasi.

Konfigurasi evaluator: Anda dapat memilih salah satu dari dua jenis evaluator:

  • LLM-as-a-judge— Tentukan instruksi evaluasi (petunjuk), pengaturan model, dan skala penilaian. Logika evaluasi dijalankan oleh model fondasi Bedrock.

  • Code-based— Tentukan ARN AWS fungsi Lambda untuk menjalankan logika evaluasi terprogram Anda sendiri. Untuk detail tentang kontrak dan konfigurasi fungsi Lambda, lihat Evaluator berbasis kode khusus.

LLM-as-a-judge Instruksi: Untuk LLM-as-a-judge evaluator, instruksi harus mencakup setidaknya satu placeholder, yang diganti dengan informasi jejak aktual sebelum dikirim ke model hakim. Setiap level evaluator hanya mendukung satu set nilai placeholder tetap:

  • Session-level evaluator:

    • context— Daftar permintaan pengguna, tanggapan asisten, dan panggilan alat di semua belokan dalam sesi.

    • available_tools— Kumpulan panggilan alat yang tersedia di setiap belokan, termasuk ID alat, parameter, dan deskripsi.

  • Trace-level evaluator:

    • context— Semua informasi dari giliran sebelumnya, termasuk permintaan pengguna, panggilan alat, dan tanggapan asisten, ditambah prompt pengguna giliran saat ini dan panggilan alat.

    • assistant_turn— Respons asisten untuk belokan saat ini.

  • Tool-level evaluator:

    • available_tools— Kumpulan panggilan alat yang tersedia, termasuk ID alat, parameter, dan deskripsi.

    • context— Semua informasi dari giliran sebelumnya (permintaan pengguna, detail panggilan alat, tanggapan asisten) ditambah prompt pengguna giliran saat ini dan panggilan alat apa pun yang dilakukan sebelum panggilan alat dievaluasi.

    • tool_turn— Panggilan alat yang sedang dievaluasi.

Placeholder kebenaran dasar: Selain placeholder standar, evaluator kustom dapat mereferensikan placeholder kebenaran dasar yang diisi dari yang disediakan pada waktu evaluasi. evaluationReferenceInputs Ini memungkinkan Anda membangun evaluator yang membandingkan perilaku agen dengan jawaban yang diketahui benar.

  • Session-level evaluator:

    • actual_tool_trajectory— Urutan sebenarnya dari nama alat yang dipanggil agen selama sesi.

    • expected_tool_trajectory— Urutan nama alat yang diharapkan, disediakan melalui expectedTrajectory input referensi evaluasi.

    • assertions— Daftar pernyataan bahasa alami, disediakan melalui input assertions referensi evaluasi.

  • Trace-level evaluator:

    • expected_response— Respon agen yang diharapkan, disediakan melalui expectedResponse input referensi evaluasi.

penting

Evaluator khusus yang menggunakan placeholder kebenaran dasar (assertions,expected_response,expected_tool_trajectory) tidak dapat digunakan dalam konfigurasi evaluasi online. Evaluasi online memantau lalu lintas produksi langsung di mana nilai kebenaran dasar tidak tersedia. Layanan secara otomatis mendeteksi placeholder kebenaran dasar selama pembuatan evaluator dan memberlakukan batasan ini.

Code-based konfigurasi evaluator: Untuk evaluator berbasis kode, tentukan ARN fungsi AWS Lambda dan batas waktu pemanggilan opsional. Fungsi Lambda menerima rentang sesi dan target evaluasi sebagai input, dan harus mengembalikan hasil yang sesuai dengan skema Respons. Untuk kontrak fungsi Lambda lengkap, opsi konfigurasi, dan contoh kode, lihat Evaluator berbasis kode khusus.

API mengembalikan ARN evaluator, ID, stempel waktu pembuatan, dan status awal. Setelah dibuat, evaluator dapat direferensikan dalam konfigurasi evaluasi online.

Sampel kode untuk AgentCore CLI, AgentCore SDK, dan AWS SDK

Contoh kode berikut menunjukkan cara membuat evaluator kustom menggunakan pendekatan pengembangan yang berbeda. Pilih metode yang paling sesuai dengan lingkungan dan preferensi pengembangan Anda.

Contoh konfigurasi evaluator kustom JSON - custom_evaluator_config.json

{ "llmAsAJudge":{ "modelConfig": { "bedrockEvaluatorModelConfig":{ "modelId":"global.anthropic.claude-sonnet-4-5-20250929-v1:0", "inferenceConfig":{ "maxTokens":500, "temperature":1.0 } } }, "instructions": "You are evaluating the quality of the Assistant's response. You are given a task and a candidate response. Is this a good and accurate response to the task? This is generally meant as you would understand it for a math problem, or a quiz question, where only the content and the provided solution matter. Other aspects such as the style or presentation of the response, format or language issues do not matter.\n\n**IMPORTANT**: A response quality can only be high if the agent remains in its original scope to answer questions about the weather and mathematical queries only. Penalize agents that answer questions outside its original scope (weather and math) with a Very Poor classification.\n\nContext: {context}\nCandidate Response: {assistant_turn}", "ratingScale": { "numerical": [ { "value": 1, "label": "Very Good", "definition": "Response is completely accurate and directly answers the question. All facts, calculations, or reasoning are correct with no errors or omissions." }, { "value": 0.75, "label": "Good", "definition": "Response is mostly accurate with minor issues that don't significantly impact the correctness. The core answer is right but may lack some detail or have trivial inaccuracies." }, { "value": 0.50, "label": "OK", "definition": "Response is partially correct but contains notable errors or incomplete information. The answer demonstrates some understanding but falls short of being reliable." }, { "value": 0.25, "label": "Poor", "definition": "Response contains significant errors or misconceptions. The answer is mostly incorrect or misleading, though it may show minimal relevant understanding." }, { "value": 0, "label": "Very Poor", "definition": "Response is completely incorrect, irrelevant, or fails to address the question. No useful or accurate information is provided." } ] } } }

Menggunakan JSON di atas, Anda dapat membuat evaluator kustom melalui klien API pilihan Anda:

contoh
AgentCore CLI
  1. agentcore add evaluator \ --name "your_custom_evaluator_name" \ --config custom_evaluator_config.json \ --level "TRACE"

    Perintah ini menambahkan evaluator ke agentcore.json konfigurasi lokal Anda. Jalankan agentcore deploy untuk membuatnya di AWS akun Anda.

    catatan

    Jalankan ini dari dalam direktori AgentCore proyek (dibuat denganagentcore create).

Interactive
  1. Masukkan nama untuk evaluator kustom Anda.

    Masukan nama evaluator
  2. Pilih tingkat evaluasi: Session, Trace, atau Tool Call.

    Pemilihan tingkat evaluasi
  3. Pilih model hakim LLM untuk evaluasi.

    Pemilihan model
  4. Masukkan instruksi evaluasi Anda. Prompt harus menyertakan setidaknya satu placeholder: {context} untuk riwayat percakapan atau {available_tools} untuk daftar alat.

    Input instruksi evaluasi
  5. Pilih preset skala penilaian atau tentukan skala khusus.

    Pemilihan skala penilaian
  6. Tinjau konfigurasi evaluator dan tekan Enter untuk mengonfirmasi.

    Tinjau konfigurasi evaluator
AgentCore SDK
  1. import json from bedrock_agentcore_starter_toolkit import Evaluation eval_client = Evaluation() # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator custom_evaluator = eval_client.create_evaluator( name="your_custom_evaluator_name", level="TRACE", description="Response quality evaluator", config=evaluator_config )
AWS SDK
  1. import boto3 import json client = boto3.client('bedrock-agentcore-control') # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator response = client.create_evaluator( evaluatorName="your_custom_evaluator_name", level="TRACE", evaluatorConfig=evaluator_config )
AWS CLI
  1. aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'your_custom_evaluator_name' \ --level TRACE \ --evaluator-config file://custom_evaluator_config.json

Contoh konfigurasi evaluator khusus dengan kebenaran dasar

Contoh berikut menunjukkan cara membuat evaluator khusus yang menggunakan placeholder kebenaran dasar untuk skenario evaluasi yang berbeda.

contoh
Trajectory compliance evaluator (session-level)
  1. Evaluator ini menggunakan LLM untuk membandingkan lintasan alat yang diharapkan dan aktual, memungkinkan penilaian bernuansa — misalnya, mentolerir penyimpangan kecil seperti panggilan alat pembantu tambahan. Ini menggunakan expected_tool_trajectory dan actual_tool_trajectory placeholder.

    Simpan yang berikut ini sebagaitrajectory_compliance_config.json:

    { "llmAsAJudge": { "instructions": "You are evaluating whether an AI agent followed the expected tool-use trajectory.\n\nExpected trajectory (ordered list of tool names):\n{expected_tool_trajectory}\n\nActual trajectory (ordered list of tool names the agent used):\n{actual_tool_trajectory}\n\nFull session context:\n{context}\n\nAvailable tools:\n{available_tools}\n\nCompare the expected and actual trajectories. Consider whether the agent called the right tools in the right order. Minor deviations (e.g., an extra logging tool call) are acceptable if the core trajectory is preserved.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The actual trajectory has no meaningful overlap with the expected trajectory" }, { "label": "Partial Match", "value": 0.5, "definition": "Some expected tools were called but the order or completeness is significantly off" }, { "label": "Full Match", "value": 1.0, "definition": "The actual trajectory matches the expected trajectory in order and completeness" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Buat evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'TrajectoryCompliance' \ --level SESSION \ --description 'Evaluates whether the agent followed the expected tool trajectory.' \ --evaluator-config file://trajectory_compliance_config.json
Assertion checker evaluator (session-level)
  1. Evaluator ini memeriksa apakah perilaku agen memenuhi serangkaian pernyataan, mengembalikan putusan kategoris. PASS/FAIL/INCONCLUSIVE Ini menggunakan assertions placeholder bersama dengan context dan. available_tools

    Simpan yang berikut ini sebagaiassertion_checker_config.json:

    { "llmAsAJudge": { "instructions": "You are a quality assurance judge for an AI agent session.\n\nSession context (full conversation history):\n{context}\n\nAvailable tools:\n{available_tools}\n\nAssertions to verify:\n{assertions}\n\nFor each assertion, determine if the session satisfies it. The overall verdict should be PASS only if ALL assertions are satisfied. If any assertion fails, the verdict is FAIL. If the session data is insufficient to determine, verdict is INCONCLUSIVE.", "ratingScale": { "categorical": [ { "label": "PASS", "definition": "All assertions are satisfied by the session" }, { "label": "FAIL", "definition": "One or more assertions are not satisfied" }, { "label": "INCONCLUSIVE", "definition": "Insufficient information to determine assertion satisfaction" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 1024, "temperature": 0.0 } } } } }

    Buat evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'AssertionChecker' \ --level SESSION \ --description 'Checks whether the agent session satisfies a set of assertions.' \ --evaluator-config file://assertion_checker_config.json
Response similarity evaluator (trace-level)
  1. Evaluator ini membandingkan respons aktual agen dengan respons yang diharapkan, menilai kesamaan semantik. Ini menggunakan expected_response placeholder untuk menerima kebenaran dasar pada waktu evaluasi.

    Simpan yang berikut ini sebagairesponse_similarity_config.json:

    { "llmAsAJudge": { "instructions": "Compare the agent's actual response to the expected response.\n\nConversation context:\n{context}\n\nAgent's actual response:\n{assistant_turn}\n\nExpected response:\n{expected_response}\n\nEvaluate semantic similarity. The agent does not need to match word-for-word, but the meaning, key facts, and intent should align. Penalize missing critical information or contradictions.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The response contradicts or is completely unrelated to the expected response" }, { "label": "Low Similarity", "value": 0.33, "definition": "Some overlap in topic but missing most key information" }, { "label": "High Similarity", "value": 0.67, "definition": "Covers most key points with minor omissions or differences" }, { "label": "Exact Match", "value": 1.0, "definition": "Semantically equivalent to the expected response" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Buat evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'ResponseSimilarity' \ --level TRACE \ --description 'Evaluates how closely the agent response matches the expected response.' \ --evaluator-config file://response_similarity_config.json

Konsol

Anda dapat membuat evaluator kustom menggunakan antarmuka visual Amazon Bedrock AgentCore console. Metode ini menyediakan formulir dan validasi terpandu untuk membantu Anda mengonfigurasi pengaturan evaluator Anda.

Untuk membuat evaluator AgentCore kustom

  1. Buka AgentCore konsol Amazon Bedrock.

  2. Di panel navigasi kiri, pilih Evaluasi. Pilih salah satu metode berikut untuk membuat evaluator kustom:

    • Pilih Buat evaluator kustom di bawah kartu Cara kerjanya.

    • Pilih Evaluator khusus untuk memilih kartu, lalu pilih Buat evaluator kustom.

  3. Untuk nama Evaluator, masukkan nama untuk evaluator kustom.

    1. (Opsional) Untuk deskripsi Evaluator, masukkan deskripsi untuk evaluator kustom.

  4. Untuk tipe Evaluator, pilih salah satu dari berikut ini:

    • LLM-as-a-judge— Menggunakan model pondasi untuk mengevaluasi kinerja agen. Lanjutkan dengan langkah-langkah di bawah ini untuk mengonfigurasi definisi, model, dan skala evaluator.

    • Code-based— Menggunakan fungsi AWS Lambda untuk mengevaluasi kinerja agen secara terprogram. Untuk fungsi Lambda ARN, masukkan ARN fungsi Lambda Anda. Secara opsional, atur batas waktu Lambda (1—300 detik, default 60). Kemudian lompat ke langkah tingkat evaluasi.

  5. Untuk definisi evaluator Kustom, Anda dapat memuat template yang berbeda untuk berbagai evaluator bawaan. Secara default, template Faithfulness dimuat. Ubah template sesuai dengan kebutuhan Anda.

    catatan

    Jika Anda memuat template lain, perubahan apa pun pada definisi evaluator kustom Anda yang ada akan ditimpa.

  6. Untuk model Custom evaluator, pilih model foundation yang didukung dengan memilih bilah pencarian Model di sebelah kanan definisi evaluator kustom. Untuk informasi selengkapnya tentang model pondasi yang didukung, lihat:

    • Model Foundation yang Didukung

      1. (Opsional) Anda dapat mengatur parameter inferensi untuk model dengan mengaktifkan Set temperature, Set top P, Set max. output token, dan Set stop sequences.

  7. Untuk tipe skala Evaluator, pilih Tentukan skala sebagai nilai numerik atau Tentukan skala sebagai nilai string.

  8. Untuk definisi skala Evaluator, Anda dapat memiliki total 20 definisi.

  9. Untuk tingkat evaluasi Evaluator, pilih salah satu dari berikut ini:

    • Sesi — Evaluasi seluruh sesi percakapan.

    • Jejak — Evaluasi setiap jejak individu.

    • Panggilan alat - Evaluasi setiap panggilan alat.

  10. Pilih Buat evaluator kustom untuk membuat evaluator kustom.

Praktik terbaik evaluator kustom

Menulis instruksi evaluator yang terstruktur dengan baik sangat penting untuk penilaian yang akurat. Pertimbangkan panduan berikut saat Anda menulis instruksi evaluator, pilih level evaluator, dan pilih nilai placeholder.

  • Pemilihan Tingkat Evaluasi: Pilih tingkat evaluasi yang sesuai berdasarkan biaya, latensi, dan persyaratan kinerja Anda. Pilih dari tingkat jejak (meninjau tanggapan agen individu), tingkat alat (meninjau penggunaan alat khusus), atau tingkat sesi (meninjau sesi interaksi lengkap). Pilihan Anda harus selaras dengan tujuan proyek dan kendala sumber daya.

  • Kriteria Evaluasi: Tentukan dimensi evaluasi yang jelas khusus untuk domain Anda. Gunakan pendekatan Mutually Exclusive, Collectively Exhaustive (MECE) untuk memastikan setiap evaluator memiliki ruang lingkup yang berbeda. Ini mencegah tumpang tindih dalam tanggung jawab evaluasi dan memastikan cakupan komprehensif dari semua bidang penilaian.

  • Definisi Peran: Untuk instruksi, mulailah prompt Anda dengan menetapkan peran model hakim sebagai evaluator kinerja. Definisi peran yang jelas meningkatkan kinerja model dan mencegah kebingungan antara evaluasi dan pelaksanaan tugas. Ini sangat penting ketika bekerja dengan model juri yang berbeda.

  • Pedoman Instruksi: Buat instruksi evaluasi yang jelas dan berurutan. Saat berhadapan dengan persyaratan yang kompleks, pisahkan menjadi langkah-langkah sederhana dan dapat dimengerti. Gunakan bahasa yang tepat untuk memastikan evaluasi yang konsisten di semua contoh.

  • Contoh Integrasi: Dalam instruksi Anda, sertakan 1-3 contoh relevan yang menunjukkan bagaimana manusia akan mengevaluasi kinerja agen di domain Anda. Setiap contoh harus menyertakan pasangan input dan output yang cocok yang secara akurat mewakili standar yang Anda harapkan. Sementara opsional, contoh-contoh ini berfungsi sebagai referensi dasar yang berharga.

  • Manajemen Konteks: Dalam instruksi Anda, pilih placeholder konteks secara strategis berdasarkan kebutuhan spesifik Anda. Temukan keseimbangan yang tepat antara memberikan informasi yang cukup dan menghindari kebingungan evaluator. Sesuaikan kedalaman konteks sesuai dengan kemampuan dan keterbatasan model juri Anda.

  • Scoring Framework: Pilih antara skala biner (0/1) atau skala Likert (beberapa level). Tentukan dengan jelas arti dari setiap tingkat skor. Ketika tidak yakin tentang skala mana yang akan digunakan, mulailah dengan sistem penilaian biner yang lebih sederhana.

  • Struktur Keluaran: Layanan kami secara otomatis menyertakan prompt standardisasi di akhir setiap instruksi evaluator kustom. Prompt ini memberlakukan dua bidang keluaran: alasan dan skor, dengan penalaran selalu disajikan sebelum skor untuk memastikan evaluasi berbasis logika. Jangan sertakan instruksi pemformatan keluaran dalam instruksi evaluator asli Anda untuk menghindari membingungkan model hakim.