Dipublikasikan: 19 Mei 2026, Terakhir diperbarui: 28 Mei 2026
| Video penjelasan | Web | Ekstensi | Status Chrome | Intent |
|---|---|---|---|---|
| GitHub | Uji coba origin |
View | Niat untuk Bereksperimen |
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 eval.
Sebelum merilis alat ke dalam produksi, Anda harus mengonfirmasi bahwa agen memahami kapan harus memanggil alat, cara mengeksekusinya, dan jawaban apa yang dapat diterima. Mengatasi peluang kegagalan sebelum terjadi.
Tulis evaluasi untuk menguji titik kontak sistem Anda dengan model bahasa besar (LLM):
- Pastikan model memahami tujuan alat Anda, berdasarkan deskripsi dan skemanya.
- Verifikasi bahwa model memilih alat yang tepat dengan parameter yang benar untuk mendukung maksud pengguna.
- Mengonfirmasi bahwa model bertindak berdasarkan informasi yang diterimanya, misalnya menggunakan informasi untuk memanggil alat lain.
- Verifikasi keberhasilan perjalanan pengguna. Berdasarkan maksud pengguna, dapatkah agen berhasil memenuhi perjalanan pengguna di situs web saya dengan alat yang disediakan?
Anda harus terus menulis pengujian deterministik klasik untuk setiap interaksi sistem yang tidak berkomunikasi dengan model.
Mode kegagalan
Para pengembang harus menguji sistem mereka untuk mencegah kegagalan sebelum terjadi. Untuk melakukan itu, Anda perlu memahami kapan sistem dapat gagal, baik secara mandiri maupun saat berinteraksi dengan faktor eksternal. Untuk WebMCP, alat itu sendiri mungkin mengalami kegagalan dan agen mungkin gagal menggunakan alat tersebut seperti yang diharapkan.
Alat WebMCP mungkin gagal dan agen mungkin gagal saat menggunakan alat WebMCP. Sebagai contoh, anggaplah pengguna Anda ingin menambahkan kaos ke keranjang belanja mereka.
| Gagal | Contoh | Memecahkan masalah |
|---|---|---|
| Agen gagal memilih alat yang tepat atau langsung memanggil alat yang salah. |
Agen tersebut melewati
|
|
| Agen menyebutkan alat-alat tersebut dengan urutan yang salah. |
Agen tersebut memanggil
|
|
| Agen memanggil alat dengan argumen yang salah. |
Agen tersebut memanggil
|
|
Bagaimana jika pengguna ingin memeriksa isi keranjangnya?
| Gagal | Contoh | Memecahkan masalah |
|---|---|---|
| Output dari alat tersebut salah atau alat tersebut melewatkan sesuatu. | Pengguna meminta
|
|
Terakhir, sebuah alat dapat membantu mengatasi kegagalan JavaScript. Untuk mengatasi masalah, selidiki hal-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 oleh alat ini dalam kondisi sehat?
- Apakah struktur kesalahan cukup jelas sehingga model dapat membedakan antara masalah sementara (coba lagi) dan kegagalan kritis?
Alat uji secara terpisah
Jika agen tidak dapat mengetahui alat mana yang harus 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 Anda sebelum menjalankan simulasi browser.
Mengukur akurasi panggilan
Lihatlah demo kami, WebMCP zaMaker.
Ketika 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 mendefinisikan fungsi dan argumen yang diharapkan. Pendekatan ini menegaskan bahwa agen akan memilih alat yang tepat untuk mendukung maksud pengguna, berdasarkan skema yang diberikan.
{
"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:
Dimungkinkan untuk mengaitkan alat WebMCP Anda dengan siklus hidup komponen, yang berarti Anda harus menguji kapan status aplikasi Anda sesuai dengan apa yang diharapkan WebMCP. Untuk mengelola hal ini, berikan daftar lengkap alat yang relevan dengan kondisi yang ingin Anda evaluasi. Sebagai contoh, seorang pengguna sedang melakukan co-browsing dengan agen mereka 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 menampilkan alat add_topping, set_pizza_size, dan set_pizza_style. Untuk menguji setiap alat secara akurat, Anda harus menyertakan semua alat tersebut untuk menciptakan kondisi simulasi yang lengkap.
CATATAN: Agen mungkin memiliki akses ke alat tambahan, tetapi yang terbaik yang dapat Anda lakukan adalah mengevaluasi alat yang Anda sediakan.
Sekarang setelah Anda mengetahui bahwa agen memanggil alat yang tepat sesuai kebutuhan, Anda dapat menguji apakah panggilan alat tersebut memiliki parameter yang benar dan apakah hasilnya sesuai harapan. Ada dua langkah: pengujian deterministik dan pengujian probabilistik.
Jalankan pengujian deterministik
Karena alat WebMCP dibangun dengan JavaScript atau sebagai anotasi HTML, Anda dapat menulis pengujian deterministik untuk melakukan tugas-tugas berikut:
- Verifikasi logika alat.
- Konfirmasikan bahwa dependensi telah dipanggil dengan benar.
- Konfirmasikan bahwa antarmuka pengguna telah diperbarui sesuai harapan, beserta efek samping lain yang disengaja.
- Verifikasi bahwa informasi yang dikembalikan sesuai dengan nilai yang diharapkan.
- Validasi parameter pengujian.
Misalnya, jika alat Anda menggunakan fungsi SearchComponent, Anda dapat mengujinya dengan memberikan tiruan (mock) dari SearchComponent. Ingatlah untuk mensimulasikan lingkungan tempat alat tersebut beroperasi untuk mendapatkan hasil terbaik. Ini adalah teknik yang sama yang akan Anda gunakan saat menulis pengujian integrasi aplikasi lainnya.
Jalankan tes probabilistik
Jika Anda memerlukan output model untuk memanggil alat selanjutnya dengan benar, Anda perlu menulis evaluasi.
Pengguna dapat memberikan kueri langsung ke model yang secara spesifik menanyakan fungsi alat tersebut, atau kueri ambigu yang menyiratkan bahwa suatu alat harus digunakan. Sebagai contoh, "Tambahkan pepperoni ke pizza saya" adalah kueri langsung. "Saya ingin semua daging di pizza saya" lebih ambigu dan membutuhkan model untuk memahami bahwa ia membutuhkan alat add_topping dan topping mana yang dapat didefinisikan sebagai daging.
Saat membuat dataset untuk evaluasi Anda, 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 membantu pelanggan yang meminta petugas untuk memesan ulang kopi yang sama seperti yang mereka pesan bulan lalu. Buatlah sebuah alat untuk mencari pesanan sebelumnya, OrderHistoryService, dan alat lain untuk memesan kopi. Untuk menguji layanan riwayat pesanan, Anda dapat mengirimkan data tiruan yang mengembalikan 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, maka model tidak akan tahu item_id apa yang harus digunakan untuk order_product.
Pengujian menyeluruh
Tulis pengujian ujung-ke-ujung untuk memberi Anda keyakinan bahwa pengguna dan agen mereka dapat menyelesaikan perjalanan mereka dengan sukses. Selain menguji masing-masing alat, Anda juga menguji apakah tindakan multi-langkah dilakukan dalam urutan yang benar.
Sebagai contoh, Anda menjalankan toko pakaian online. Seorang pengguna bertanya kepada agennya: "Saya ingin membeli jaket hitam dan celana jeans. Bisakah Anda memberikan rincian bahan-bahan yang digunakan?
Perjalanan keagenan yang sukses mungkin terlihat seperti 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 material (
get_product_details). - Ulangi langkah 2-4 untuk setiap item yang diminta.
Ketika agen mencapai langkah 2, ia dapat mencari yang berwarna hitam terlebih dahulu atau yang berwarna jeans, urutannya tidak penting. Namun, langkah-langkah selanjutnya harus diikuti secara berurutan.
Tuliskan evaluasi ujung-ke-ujung untuk memverifikasi bahwa agen memanggil alat-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" }
}
]
}
]
}
]
}
Evaluasi kegagalan di tengah rantai pasokan
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon, dan complete_checkout. add_discount_coupon gagal, tetapi prosesnya tetap dapat diselesaikan, artinya pengguna tidak menerima diskon.Ada kalanya agen harus memanggil beberapa alat secara berurutan. Apa yang terjadi jika sebuah alat mengalami kerusakan di tengah proses ini? Sebagai contoh, pengguna ingin memesan pizza menggunakan kode kupon mereka:
"Saya ingin pizza pesto ukuran kecil." Gunakan kode promo saya, FreePizza."
Ada kemungkinan agen tersebut gagal pada add_discount_coupon dan melanjutkan ke proses pembayaran 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 mensimulasikan skenario ini. Bawa aplikasi Anda ke tahap di mana Anda memperkirakan alat tersebut akan gagal. Dalam hal ini, itu setelah alat start_checkout. Kemudian, Anda dapat mengevaluasi add_discount_coupon secara terpisah.
Bereksperimen dengan WebMCP
Mulailah bereksperimen dengan evaluasi untuk berbagai alat secara terpisah dan evaluasi situs Anda sendiri yang mendukung WebMCP dengan agen yang kompatibel dengan WebMCP:
- Unduh aplikasi kamialat evaluasi eksperimental di GitHub.
- Tinjau kursus kami, Buat evaluasi AI.