Engineering Anthropic: Panduan Praktis dan Metodologi untuk Evaluasi (Evals) AI Agent
(anthropic.com)Ringkasan:
- Benchmark LLM yang ada saja tidak cukup untuk mengukur secara akurat kinerja 'AI agent' yang menggunakan alat dan melakukan penalaran multi-langkah.
- Evaluasi agent perlu menggabungkan unit test dan integration test, mirip dengan pengujian perangkat lunak.
- Efektif untuk menggunakan campuran penilaian deterministik berbasis kode (code-based) dan penilaian berbasis model (model-based) yang memanfaatkan LLM.
- Sesuai siklus hidup pengembangan agent, perlu beralih dari 'Capability Evals' ke 'Regression Evals'.
Ringkasan detail:
-
Mengapa evaluasi AI agent sulit
Tidak seperti chatbot sederhana (single-turn), agent menggunakan alat, mengubah status lingkungan, dan menyelesaikan tugas dalam beberapa tahap (multi-turn). Karena itu, hanya memeriksa jawaban akhir saja tidak cukup; perlu mengevaluasi secara menyeluruh apakah agent menggunakan alat yang tepat, apakah prosesnya efisien, dan sebagainya. -
Struktur evaluasi agent (Eval)
Sistem evaluasi yang efektif terdiri dari elemen-elemen inti berikut.
- Task: Satu test case dengan input yang ditentukan dan kriteria keberhasilan.
- Grader: Logika yang memberi skor pada hasil eksekusi agent.
- Transcript: Catatan eksekusi lengkap yang mencakup proses berpikir agent, pemanggilan alat, hasil antara, dan sebagainya.
- Outcome: Status akhir lingkungan yang berubah setelah eksekusi agent (misalnya, apakah reservasi benar-benar dibuat di DB).
- Perbandingan jenis grader
Anthropic merekomendasikan untuk menggabungkan tiga jenis grader berikut.
| Jenis | Deskripsi | Kelebihan | Kekurangan |
|---|---|---|---|
| Berbasis kode (Code-based) | Pencocokan string, regex, analisis statis, menjalankan unit test, dll. | Cepat, murah, objektif, dapat direproduksi | Bisa melewatkan nuansa yang kompleks, kurang fleksibel |
| Berbasis model (Model-based) | Menggunakan LLM sebagai juri untuk penilaian berbasis rubrik | Fleksibel, dapat menangkap nuansa, cocok untuk pertanyaan terbuka | Bisa non-deterministik, berbiaya, perlu kalibrasi oleh manusia |
| Manusia (Human) | Review oleh pakar, crowdsourcing | 'Gold standard' untuk kualitas | Sangat lambat dan mahal |
- Contoh evaluasi coding agent (konfigurasi YAML)
Saat mengevaluasi coding agent, yang dilihat bukan hanya apakah kode berjalan (tes deterministik), tetapi juga gaya coding atau ada tidaknya pelanggaran keamanan (analisis statis/penilaian LLM). Berikut contoh hipotetis konfigurasi evaluasi untuk task 'memperbaiki kerentanan keamanan'.
task:
id: "fix-auth-bypass_1"
desc: "Memperbaiki kerentanan bypass autentikasi yang terjadi saat field kata sandi kosong"
graders:
# 1. Tes deterministik: periksa apakah kode tes yang sebenarnya lolos
- type: deterministic_tests
required: [test_empty_pw_rejected.py, test_null_pw_rejected.py]
# 2. Penilaian rubrik LLM: evaluasi kualitas dan gaya kode
- type: llm_rubric
rubric: prompts/code_quality.md
# 3. Analisis statis: jalankan linter dan alat keamanan
- type: static_analysis
commands: [ruff, mypy, bandit]
# 4. Pemeriksaan status: verifikasi apakah log keamanan tercatat dengan benar
- type: state_check
expect:
security_logs: {event_type: "auth_blocked"}
# 5. Verifikasi penggunaan alat: apakah file yang diperlukan dibaca dan dimodifikasi
- type: tool_calls
required:
- {tool: read_file, params: {path: "src/auth/*"}}
- {tool: edit_file}
- {tool: run_tests}
# Metrik yang dilacak
tracked_metrics:
- type: transcript
metrics:
- n_turns # jumlah turn
- n_toolcalls # jumlah pemanggilan alat
- n_total_tokens # penggunaan token
- type: latency
metrics:
- time_to_first_token
- Metrik evaluasi
Untuk menangani sifat non-deterministik agent, selain akurasi sederhana digunakan juga metrik berikut.
- pass@k: Probabilitas berhasil setidaknya sekali dalam k percobaan (mengukur kemampuan eksplorasi).
- pass^k: Probabilitas semua percobaan berhasil saat dicoba k kali (mengukur konsistensi/keandalan).
- Alat dan framework
Untuk membangun sistem evaluasi, disarankan memanfaatkan alat seperti Harbor (eksekusi lingkungan kontainer), Promptfoo (konfigurasi tes berbasis YAML), Braintrust, LangSmith, atau membangun framework sendiri yang sesuai dengan workflow tim. Yang penting bukan framework itu sendiri, melainkan tersedianya test case berkualitas tinggi.
1 komentar
Karena isinya bagus, saya menambahkan versi terjemahan bahasa Korea.
https://rosettalens.com/s/ko/demystifying-evals-for-ai-agents