Anthropic luncurkan plugin evals untuk Claude Code: 6 tipe grader, baseline tanpa plugin, dan CI gate. Cek cara kerjanya dan biayanya di sini.
Anthropic baru-baru ini ngedrop fitur baru yang cukup gede buat para dev yang bangun plugin di Claude Code: `claude plugin eval`. Jadi gini, command ini bakal jalanin plugin kamu terhadap prompt-prompt realistis, nilai apa yang dihasilin Claude, trus bandingin hasilnya sama run di mana plugin nggak di-load. Tujuannya simpel: jawab tiga pertanyaan yang sebelumnya nggak bisa diukur — apakah skillnya ketrigger, apakah survive pas ada edit atau model baru, dan apakah benar-benar ngalahin model polos tanpa plugin.
Fitur ini butuh Claude Code v2.1.269 ke atas dan bisa jalan di sembarang direktori yang punya `plugin.json` atau `.claude-plugin/plugin.json` manifest, atau skills-directory plugin. Penting buat diinget: setiap eval run dan setiap judge grader itu panggilan model asli yang ditagih ke plan atau API account kamu. Jadi nggak ada yang gratis di sini — kecuali empat dari enam grader yang dihitung dari transcript dan file di disk.
Struktur eval suite dan 6 tipe grader
Eval suite nyimpen di direktori `evals/` di dalam plugin. Tiap case itu subdirektori yang isinya `prompt.md` dan folder `graders/`. Body prompt dikirim ke Claude persis seperti yang ditulis, dan `@path` mentions nggak di-expand. Frontmatter di `prompt.md` bisa set `max_turns` (default 10), `timeout_seconds` (default 300), `model`, `tags`, dan `allowed_tools`. Grader itu file markdown dengan frontmatter yang set `type`, `weight` opsional, dan `arm` opsional. Ada enam tipe grader: empat gratis karena komputasi dari transcript dan file di disk — `regex`, `tool_used`, `tool_order`, `file_exists` — dan dua yang panggil judge model dan nambah tagihan — `llm` yang nilai jawaban lawan kriteria prosa yang kamu tulis, dan `baseline` yang bandingin jawaban lawan jawaban referensi.
Advertisement
Slot in-article yang tampil setelah paragraf ketiga.
Command `claude plugin eval init` baca plugin, tanya apa yang dianggap hasil bagus, usulkan case dan grader, coba jalanin, trus nulis filenya. Di CI, flag `--bare` nulis template kosong sebagai gantinya. Angka yang paling penting di sini adalah Δ (delta). Secara default tiap case jalan dua kali: `with-arm` di mana plugin di-load dan `without-arm` di mana nggak. Selisihnya, Δ, itu kontribusi plugin. Kalau case skor 1.0 di kedua arm, berarti plugin nggak punya peran di keberhasilan itu.
Temuan paling umum: skill nggak ketrigger di phrasing natural
Contoh output di docs nunjukin single case dengan WITH 1.00, W/OUT 0.33, Δ +0.67 di 6 run, estimasi biaya $0.41 dan butuh 74 detik. Grader yang ditandai `with-only`, biasanya `tool_used: Skill`, dilaporkan sebagai indikator dan dikecualikan dari skor, karena without-arm nggak punya skill yang bisa nembak. Anthropic nyebutin temuan pertama paling umum: Δ mendekati nol dengan grader `tool_used: Skill` gagal, yang artinya Claude nggak milih skill kamu di phrasing natural. Itu cacat yang `claude plugin validate` nggak bisa lihat, soalnya validate cuma cek sintaks manifest dan schema, bukan perilaku.
Hasil mendarat di `evals/results//report.html` dengan verdict per-grader dan vote judge. Kalau akun support, laporan juga dipublish ke `claude.ai` kecuali flag `--no-publish` diset. Biaya dan CI: satu suite bikin kira-kira `cases × runs × arms` agent runs, ditambah 3 panggilan judge pendek per `llm` atau `baseline` grader per run, dan hasil bisa beda antar run. Invokasi CI yang terdokumentasi pakai `--trust-plugin`, `--json results.json`, `--threshold 0.8`, `--model claude-sonnet-5`, `--judge-model claude-haiku-4-5`, `--no-publish`, dan `--max-cost-usd 20`. Runner butuh install Claude Code dan kredensial kayak `ANTHROPIC_API_KEY`. Tanpa `--trust-plugin`, checkout untrusted ditolak dengan exit 1 kalau nggak ada terminal. Masalah laporan nggak pernah ubah exit code, dan `--json` suppress progress output.
Praktis buat kamu: siapin eval sejak awal
Buat kamu yang lagi bangun plugin Claude Code, fitur ini game-changer banget. Sebelumnya kamu cuma bisa validasi sintaks, sekarang bisa buktiin perilaku. Mulai dari `claude plugin eval init` buat generate suite pertama, trus iterasi. Perhatiin Δ — itu satu-satunya angka yang jujur. Kalau Δ deket nol tapi `tool_used: Skill` gagal, berarti skill kamu nggak dipilih Claude saat user ngomong natural. Itu masalah desain prompt/skill, bukan bug. Set `--max-cost-usd` di CI biar nggak kejutan tagihan, dan pakai `--threshold` buat gate merge. Ingat: setiap run itu uang asli, jadi desain case yang efisien.
- Jalankan `claude plugin eval init` buat generate suite evaluasi pertama otomatis
- Fokus pada Δ (delta) — selisih skor with/without plugin — bukan skor absolut
- Kalau Δ ~0 dan `tool_used: Skill` gagal, perbaiki trigger skill, bukan logika dalamnya
- Set `--max-cost-usd` dan `--threshold` di CI pipeline buat kontrol biaya dan quality gate
- Gunakan grader gratis (regex, tool_used, tool_order, file_exists) sebanyak mungkin, batasi llm/baseline
Catatan redaksi
Kalau lo cuma ambil satu hal dari artikel ini
AI Updates update dari MarkTechPost.
Sumber asli
Artikel ini merupakan rewrite editorial dari laporan MarkTechPost.
Baca artikel asli di MarkTechPost→