Evaluasi untuk WebMCP
Dipublikasikan: 19 Mei 2026
WebMCP mendukung agen yang menggunakan model AI generatif. Untuk menguji sistem apa pun yang menggunakan AI generatif, pengujian Anda harus mendukung hasil probabilistik: satu input dapat menghasilkan ribuan jawaban dengan tingkat akurasi yang bervariasi. Teknik pengujian ini disebut evaluasi atau evals.
Sebelum merilis alat ke produksi, Anda harus mengonfirmasi bahwa agen memahami kapan harus memanggil alat, cara menjalankannya, dan jawaban apa yang dapat diterima. Atasi peluang kegagalan sebelum terjadi.
Tulis evaluasi untuk menguji titik kontak sistem Anda dengan model bahasa besar (LLM):
- Periksa apakah model memahami tujuan alat Anda, berdasarkan deskripsi dan skemanya.
- Pastikan model memilih alat yang tepat dengan parameter yang benar untuk mendukung maksud pengguna.
- Pastikan model bertindak berdasarkan informasi yang diterimanya, misalnya menggunakan informasi untuk memanggil alat lain.
- Verifikasi perjalanan pengguna yang berhasil. Mengingat maksud pengguna, dapatkah agen berhasil memenuhi perjalanan pengguna di situs saya dengan alat yang disediakan?
Anda harus terus menulis pengujian deterministik klasik untuk interaksi sistem apa pun yang tidak berkomunikasi dengan model.
Mode kegagalan
Developer harus menguji sistem mereka untuk mencegah kegagalan sebelum terjadi. Untuk melakukannya, Anda harus memahami kapan sistem dapat gagal, baik dengan sendirinya maupun saat berinteraksi dengan faktor eksternal. Untuk WebMCP, alat itu sendiri dapat gagal dan agen mungkin gagal menggunakan alat seperti yang diharapkan.
Alat WebMCP dapat gagal dan agen mungkin gagal dengan alat WebMCP. Misalnya, pengguna Anda ingin menambahkan t-shirt ke keranjang.
| Gagal | Contoh | Memecahkan masalah |
|---|---|---|
| Agen gagal memilih alat yang benar atau langsung memanggil alat yang salah. |
Agen melewati
|
|
| Agen memanggil alat dalam urutan yang salah |
Agen memanggil
|
|
| Agen memanggil alat dengan argumen yang salah |
Agen memanggil
|
|
Bagaimana jika pengguna ingin memeriksa isi keranjangnya?
| Gagal | Contoh | Memecahkan masalah |
|---|---|---|
| Output alat salah atau alat melewatkan sesuatu. | Pengguna meminta untuk
|
|
Terakhir, alat dapat gagal dengan cara apa pun yang menyebabkan JavaScript gagal. Untuk memecahkan masalah, selidiki hal berikut:
- Apakah kode alat menangani semua potensi error dan pengecualian runtime dengan benar?
- Apakah error dilaporkan kembali ke agen dan model dengan baik?
- Apakah API atau layanan eksternal yang diandalkan alat berfungsi dengan baik?
- Apakah struktur error cukup jelas sehingga model dapat membedakan antara masalah sementara (coba lagi) dan kegagalan penting?
Menguji alat secara terpisah
Jika agen tidak dapat mengetahui alat mana yang akan dipanggil untuk permintaan seperti, "Saya ingin pizza kecil", agen tidak akan memiliki peluang dalam perjalanan pengguna yang kompleks.
Dengan menguji alat secara terpisah, Anda dapat mengoptimalkan skema dan deskripsi sebelum menjalankan simulasi browser.
TIPS: Anda dapat memicu panggilan alat WebMCP using navigator.modelContext.executeTool(...).
Mengukur akurasi panggilan
Lihat demo kami, the
WebMCP zaMaker.
Saat pengguna meminta, "Saya ingin pizza kecil", Anda dapat mengharapkan respons model
yang menunjukkan niat untuk melakukan panggilan set_pizza_size dengan argumen
"size":"Small".
Fungsi expectedCall menentukan fungsi dan argumen yang diharapkan. Pendekatan ini mengonfirmasi bahwa agen akan memilih alat yang tepat untuk mendukung maksud pengguna, berdasarkan skema yang disediakan.
{
"messages": [
{
"role": "user",
"content": "I'd like a small pizza."
}
],
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
}
expectedCall digunakan untuk melakukan pengujian deterministik berbasis aturan:
Anda dapat mengikat alat WebMCP ke siklus proses komponen, yang berarti Anda harus menguji saat status aplikasi cocok dengan yang diharapkan WebMCP. Untuk mengelola hal ini, berikan daftar alat lengkap yang relevan dengan status yang ingin Anda evaluasi. Misalnya, pengguna melakukan penjelajahan bersama dengan agennya dan membuka WebMCP zaMaker.
Status aplikasi
[
...
{
"name": "add_topping",
"description": "Add one or more toppings to the pizza",
...
},
{
"name": "set_pizza_size",
"description": "Set the pizza size directly.",
"inputSchema": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"Small",
"Medium",
"Large",
"Extra Large"
],
"description": "The specific size name."
},
}
}
},
{
"name": "set_pizza_style",
"description": "Set the style of the pizza (colors/theme)",
...
},
...
]
Panggilan yang diharapkan
...
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
...
Saat dibuka, WebMCP mengekspos alat add_topping, set_pizza_size, dan set_pizza_style. Untuk menguji setiap alat secara akurat, Anda harus menyertakan semua alat untuk membuat status simulasi yang lengkap.
CATATAN: Agen mungkin memiliki akses ke alat tambahan, tetapi yang terbaik yang dapat Anda lakukan adalah mengevaluasi alat yang Anda berikan.
Setelah mengetahui bahwa agen memanggil alat yang tepat sesuai kebutuhan, Anda dapat menguji apakah panggilan alat memiliki parameter yang benar dan hasilnya sesuai harapan. Ada dua langkah: pengujian deterministik dan pengujian probabilistik.
Menjalankan pengujian deterministik
Karena alat WebMCP dibuat dengan JavaScript atau sebagai anotasi HTML, Anda dapat menulis pengujian deterministik untuk melakukan tugas berikut:
- Memverifikasi logika alat.
- Mengonfirmasi bahwa dependensi dipanggil dengan benar.
- Mengonfirmasi bahwa antarmuka pengguna diperbarui seperti yang diharapkan, bersama dengan efek samping lain yang disengaja.
- Memverifikasi bahwa informasi yang ditampilkan cocok dengan nilai yang diharapkan.
- Memvalidasi parameter pengujian.
Misalnya, jika alat Anda menggunakan fungsi SearchComponent, Anda dapat menguji dengan meneruskan tiruan SearchComponent. Ingatlah untuk menyimulasikan lingkungan tempat alat beroperasi untuk mendapatkan hasil terbaik. Ini adalah teknik yang sama yang akan Anda gunakan untuk menulis pengujian integrasi aplikasi lain.
Menjalankan pengujian probabilistik
Jika Anda memerlukan output model untuk memanggil alat berikutnya dengan benar, Anda harus menulis evaluasi.
Pengguna dapat memberikan kueri langsung ke model yang secara khusus meminta fungsi alat, atau kueri ambigu yang menyiratkan bahwa alat harus digunakan. Misalnya, "Tambahkan pepperoni ke pizza saya" adalah kueri langsung. "Saya ingin semua daging di pizza saya" lebih ambigu dan mengharuskan model memahami bahwa model memerlukan alat add_topping dan topping mana yang dapat ditentukan sebagai daging.
Saat membuat set data untuk evaluasi, sertakan kueri langsung yang menguji eksekusi alat dasar dan kueri terbuka yang menguji penalaran model dan logika pemilihan alat.
Jika Anda menjalankan kedai kopi, Anda dapat mendukung pengguna yang meminta agen mereka untuk memesan ulang kopi yang sama yang mereka pesan bulan lalu. Tulis alat untuk menelusuri pesanan sebelumnya, OrderHistoryService, dan alat lain untuk memesan kopi. Untuk menguji layanan histori pesanan, Anda dapat mengirim tiruan yang menampilkan ID produk kopi.
Dalam contoh ini, Anda mengevaluasi apakah model memahami maksud kueri, memilih alat yang tepat, dan apakah alat tersebut memberikan informasi yang tepat untuk mengambil tindakan.
Jika model tidak memanggil get_order_history, model tidak akan mengetahui item_id mana yang akan digunakan untuk order_product.
Pengujian menyeluruh
Tulis pengujian menyeluruh untuk memberi Anda keyakinan bahwa pengguna dan agen mereka dapat menyelesaikan perjalanan mereka dengan sukses. Selain menguji alat individual, Anda juga menguji bahwa tindakan multi-langkah dilakukan dalam urutan yang benar.
Misalnya, Anda menjalankan toko pakaian online. Pengguna bertanya kepada agennya: "Saya ingin membeli jaket hitam dan celana jeans. Bisakah Anda memberikan rincian bahan yang digunakan?"
Perjalanan agen yang berhasil mungkin terlihat sebagai berikut:
- Buka kategori pakaian.
- Temukan salah satu item pakaian yang diminta (urutan tidak penting).
- Temukan item tertentu (
search_clothes). - Dapatkan detail produk yang berisi daftar bahan (
get_product_details). - Ulangi langkah 2-4 untuk setiap item yang diminta.
Saat agen mencapai langkah 2, agen dapat menelusuri jaket hitam terlebih dahulu atau celana jeans, urutannya tidak penting. Namun, langkah-langkah lainnya harus diikuti secara berurutan.
Tulis evaluasi menyeluruh untuk memverifikasi bahwa agen memanggil alat dalam urutan yang diharapkan:
{
"messages": [
{
"role": "user",
"content": "I am looking to buy a black jacket and a pair of jeans.
Could you provide a breakdown of the materials used ?"
}
],
"expectedCall": [
{
"functionName": "navigate_to_category",
"arguments": { "category": "clothes" }
},
{
"unordered": [
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "black jacket" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JACKET002" }
}
]
},
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "jeans" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JEANS001" }
}
]
}
]
}
]
}
Mengevaluasi kegagalan di tengah rantai
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon, dan complete_checkout. add_discount_coupon gagal, tetapi prosesnya masih dapat diselesaikan, yang berarti pengguna tidak menerima diskon.Mungkin ada saat ketika agen harus memanggil beberapa alat secara berurutan. Apa yang terjadi jika alat gagal di tengah proses ini? Misalnya, pengguna ingin memesan pizza dengan kode kuponnya:
"Saya ingin pizza Pesto kecil. Gunakan kode promo saya, FreePizza."
Agen mungkin gagal di add_discount_coupon dan melanjutkan ke checkout untuk pizza dengan harga penuh. Untuk menguji alat add_discount_coupon, Anda dapat menjalankan urutan panggilan alat ini secara manual, tanpa berinteraksi dengan model, untuk menyimulasikan skenario ini. Bawa aplikasi Anda ke status tempat Anda memperkirakan alat akan gagal. Dalam hal ini, setelah alat start_checkout. Kemudian, Anda dapat mengevaluasi add_discount_coupon secara terpisah.
Bereksperimen dengan WebMCP
Mulai bereksperimen dengan evaluasi untuk alat secara terpisah dan mengevaluasi situs yang mendukung WebMCP dengan agen yang kompatibel dengan WebMCP:
- Download alat evaluasi eksperimental kami di GitHub.
- Tinjau kursus kami, Membuat evaluasi AI.