Mengelola metrik evaluasi

Sebelum memulai

Sebelum mengelola metrik evaluasi, pastikan Anda memiliki hal berikut:

  • Project dengan Google Cloud **Agent Platform API** diaktifkan.
  • (Opsional) Jika menggunakan Agent Platform SDK, lakukan inisialisasi klien seperti yang dijelaskan dalam Mengevaluasi agen Anda.

Metric Registry memungkinkan Anda menentukan, menyimpan, dan mengelola konfigurasi yang dapat digunakan kembali untuk cara agen Anda dievaluasi. Daripada mengonfigurasi kriteria untuk setiap pengujian, Anda dapat menyimpan metrik standar—seperti rubrik berbasis LLM kustom untuk keamanan atau fungsi Python untuk akurasi eksekusi—dan menerapkannya secara konsisten ke penilaian offline dan monitor online berkelanjutan.

Jenis metrik

Agent Platform mendukung tiga jenis metrik dalam registry:

  • Metrik yang Telah Ditetapkan: Metrik terkelola yang disediakan oleh Google, termasuk penilai multi-turn untuk keberhasilan tugas, kualitas penggunaan alat, dan kepatuhan lintasan.
  • Metrik LLM Kustom: Rubrik bahasa alami tempat "Judge LLM" mengevaluasi respons agen berdasarkan kriteria dan skala rating spesifik Anda.
  • Metrik Kode Kustom: Fungsi Python yang secara terprogram memvalidasi perilaku agen, seperti memeriksa format output tertentu atau memverifikasi respons alat.

Selain metrik terkelola yang disediakan oleh Google, Anda dapat menggunakan metrik terdaftar yang disesuaikan untuk evaluasi.

Metrik yang telah ditetapkan

Agent Platform menyediakan serangkaian metrik yang telah ditetapkan untuk mengevaluasi agen. Metrik ini dikelola oleh Google dan mencakup dimensi evaluasi umum untuk interaksi agen satu kali dan multi-turn.

Anda dapat mengakses metrik yang telah ditetapkan di SDK menggunakan types.RubricMetric.METRIC_NAME. Untuk mengetahui detail lengkap semua metrik berbasis rubrik terkelola, termasuk persyaratan input dan format output, lihat Detail untuk metrik berbasis rubrik terkelola.

Metrik agen satu kali

Metrik berikut mengevaluasi satu interaksi agen (satu perintah dan satu respons, yang berpotensi dengan panggilan alat perantara):

Metrik Jenis Pengakses SDK Deskripsi
Kualitas Respons Akhir Agen Rubrik adaptif types.RubricMetric.FINAL_RESPONSE_QUALITY Evaluasi komprehensif yang otomatis membuat kriteria rubrik berdasarkan konfigurasi agen (petunjuk sistem dan deklarasi alat deklarasi) serta perintah pengguna.
Halusinasi Agen Rubrik statis types.RubricMetric.HALLUCINATION Memeriksa faktualitas dengan mensegmentasi respons ke dalam klaim atomik dan memverifikasi setiap klaim didasarkan pada penggunaan alat dari peristiwa perantara.
Kualitas Penggunaan Alat Agen Rubrik adaptif types.RubricMetric.TOOL_USE_QUALITY Mengevaluasi pemilihan alat yang sesuai, penggunaan parameter yang benar, dan kepatuhan terhadap urutan operasi yang ditentukan.
Keamanan Rubrik statis types.RubricMetric.SAFETY Menilai apakah respons melanggar kebijakan keamanan, termasuk data PII dan demografi, ujaran kebencian, konten berbahaya, pelecehan, atau konten seksual eksplisit. Menampilkan 1 untuk aman dan 0 untuk tidak aman.

Metrik agen multi-turn

Metrik berikut mengevaluasi percakapan agen multi-turn. Metrik ini menganalisis konteks percakapan lengkap untuk menilai performa agen secara keseluruhan di beberapa turn:

Metrik Jenis Pengakses SDK Deskripsi
Keberhasilan Tugas Multi-turn Agen Rubrik adaptif types.RubricMetric.MULTI_TURN_TASK_SUCCESS Mengevaluasi apakah agen berhasil mencapai tujuan percakapan. Metrik tanpa referensi ini berfokus pada apakah tujuan tercapai, bukan bagaimana tujuan tercapai.
Kualitas Penggunaan Alat Multi-turn Agen Rubrik adaptif types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY Mengevaluasi kualitas panggilan fungsi yang dilakukan selama percakapan multi-turn. Menilai apakah agen memanggil alat yang tepat dengan argumen yang benar pada waktu yang tepat.
Kualitas Lintasan Multi-turn Agen Rubrik adaptif types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY Mengevaluasi lintasan (jalur) percakapan secara keseluruhan. Tidak seperti Keberhasilan Tugas, metrik ini menilai bagaimana agen mencapai tujuan—apakah jalur penalaran logis dan efisien.

Menggunakan metrik yang telah ditetapkan di SDK

from vertexai import evals, types

# Run an evaluation with predefined metrics
result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.FINAL_RESPONSE_QUALITY,
        types.RubricMetric.TOOL_USE_QUALITY,
        types.RubricMetric.HALLUCINATION,
        types.RubricMetric.SAFETY,
    ],
)

# Visualize results in Colab
result.show()

Mengelola metrik di konsol

  1. Di Google Cloud konsol, buka halaman Agent Platform > Agents > Evaluation.

    Buka Evaluasi

  2. Klik tab Metrics untuk melihat registry.

  3. Membuat metrik: Klik New metric , lalu pilih Custom LLM metric atau Custom code metric.

  4. Menentukan rubrik: Untuk metrik LLM, gunakan tombol Sample untuk mengisi petunjuk, kriteria (misalnya, Clarity atau Excitement), dan skor rating dengan cepat.

  5. Melihat dan mengedit: Klik nama metrik untuk melihat definisinya dalam mode hanya baca, atau gunakan ikon More options untuk Duplicate atau Delete resource.

Mengelola metrik dengan SDK

Anda dapat mendaftarkan dan menggunakan metrik secara terprogram menggunakan Agent Platform SDK.

Mendaftarkan Metrik LLM Kustom

from vertexai import evals, types

# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
        name="tone_check",
        prompt_template="Analyze the tone of the response ...",
        result_parsing_function="""
          import json, re
          def parse_results(responses):
              response = json.loads(responses[0])
              return {"score": response.get("score", 0.0),
                      "explanation": response.get("explanation", "default explanation")}
          """
)

# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
    metric=tone_check_metric
)

Mendaftarkan Metrik Kode Kustom

from vertexai import evals, types

# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
    agent_data = instance.get('agent_eval_data', {})
    turns = agent_data.get('turns', [])
    for turn in turns:
        ...
"""

accuracy_metric = types.CodeExecutionMetric(
    name="multi_turn_accuracy",
    custom_function=accuracy_metric_code
)

# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
    metric=accuracy_metric
)