Yayınlanma tarihi: 19 Mayıs 2026, Son güncelleme tarihi: 28 Mayıs 2026
| Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
|---|---|---|---|---|
| GitHub | Görünüm | Deneme Amacı (Intent to Experiment) |
WebMCP, üretken yapay zeka modellerini kullanan aracıları destekler. Üretken yapay zeka kullanan sistemleri test etmek için testlerinizin olasılıksal sonuçları desteklemesi gerekir: Bir giriş, doğruluk derecesi değişen binlerce yanıta yol açabilir. Bu test tekniğine değerlendirmeler (evals) adı verilir.
Araçları üretime sunmadan önce, temsilcilerin aracı ne zaman çağırmaları gerektiğini, nasıl yürüteceklerini ve hangi yanıtların kabul edilebilir olduğunu anladıklarını onaylamanız gerekir. Hata fırsatlarını ortaya çıkmadan önce ele alın.
Sisteminizi büyük dil modeli (LLM) ile etkileşim noktalarında test etmek için değerlendirmeler yazın:
- Modelin, aracınızın amacını açıklamasına ve şemasına göre anladığını kontrol edin.
- Modelin, kullanıcı niyetini desteklemek için doğru parametrelerle doğru aracı seçtiğini doğrulayın.
- Modelin, aldığı bilgilere göre hareket ettiğini (ör. başka bir aracı çağırmak için bilgileri kullandığını) onaylayın.
- Başarılı kullanıcı yolculuklarını doğrulayın. Kullanıcının amacını göz önünde bulundurarak, bir aracı, sağlanan araçlarla web sitemdeki kullanıcı yolculuğunu başarıyla tamamlayabilir mi?
Modelle iletişim kurmayan herhangi bir sistem etkileşimi için klasik deterministik testler yazmaya devam etmelisiniz.
Arıza modları
Geliştiriciler, arızaların meydana gelmeden önce önlenmesi için sistemlerini test etmelidir. Bunu yapabilmek için, sistemin hem kendi başına hem de dış faktörlerle etkileşim halindeyken ne zaman başarısız olabileceğini anlamanız gerekir. WebMCP söz konusu olduğunda, aracın kendisi arızalanabilir ve aracılar da araçları beklendiği gibi kullanamayabilir.
WebMCP araçları başarısız olabilir ve aracı, WebMCP araçlarıyla birlikte başarısız olabilir. Örneğin, kullanıcınız sepetine bir tişört eklemek istiyor olsun.
| Hata | Örnek | Sorun giderme |
|---|---|---|
| Temsilci doğru aracı seçemiyor veya doğrudan yanlış aracı çağırıyor. |
Ajan
|
|
| Temsilci araçları yanlış sırayla çağırıyor. |
Temsilci önce
|
|
| Temsilci, aracı yanlış argümanlarla çağırıyor. |
Ajan
|
|
Kullanıcı sepetindeki ürünleri kontrol etmek isterse ne olacak?
| Hata | Örnek | Sorun giderme |
|---|---|---|
| Aletin çıktısı hatalı veya alet bir şeyi gözden kaçırıyor. | Kullanıcı
|
|
Son olarak, bir araç JavaScript'in başarısız olduğu herhangi bir şekilde işe yarayabilir. Sorunu gidermek için aşağıdakileri inceleyin:
- Araç kodu, olası tüm çalışma zamanı hatalarını ve istisnalarını düzgün bir şekilde ele alıyor mu?
- Hata, aracıya ve modele düzgün bir şekilde bildiriliyor mu?
- Aracın dayandığı harici API'ler veya hizmetler sağlıklı mı?
- Hata yapısı, modelin geçici bir sorun (yeniden deneme) ile kritik bir arıza arasında ayrım yapabilmesi için yeterince açık mı?
Test araçlarını izole bir şekilde test edin.
Bir müşteri temsilcisi, "Küçük bir pizza istiyorum" gibi bir istek için hangi aracı kullanacağını çözemezse, karmaşık bir kullanıcı yolculuğunda hiçbir şansı olmaz.
Araçları birbirinden bağımsız olarak test ederek, tarayıcı simülasyonu çalıştırmadan önce şemalarınızı ve açıklamalarınızı optimize edebilirsiniz.
Çağrı doğruluğunu ölçün
Demomuz olan WebMCP zaMaker'a bir göz atın.
Kullanıcı "Küçük bir pizza istiyorum" dediğinde, "size":"Small" argümanıyla set_pizza_size çağrısı yapma niyetini gösteren bir model yanıtı bekleyebilirsiniz.
expectedCall fonksiyonu beklenen fonksiyonu ve argümanı tanımlar. Bu yaklaşım, ajanın sağlanan şemaya dayanarak kullanıcının amacını desteklemek için doğru aracı seçeceğini doğrular.
{
"messages": [
{
"role": "user",
"content": "I'd like a small pizza."
}
],
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
}
expectedCall kural tabanlı, deterministik bir test gerçekleştirmek için kullanılır:
WebMCP araçlarınızı bir bileşenin yaşam döngüsüne bağlamak mümkündür; bu da uygulamanızın durumunun WebMCP'nin beklediğiyle eşleştiği zamanı test etmeniz gerektiği anlamına gelir. Bunu yönetmek için, değerlendirmek istediğiniz eyaletle ilgili eksiksiz bir araç listesi sağlayın. Örneğin, bir kullanıcı temsilcisiyle birlikte internette gezinirken WebMCP zaMaker'ı açar.
Uygulama durumu
[
...
{
"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)",
...
},
...
]
Beklenen arama
...
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
...
WebMCP açıldığında add_topping, set_pizza_size ve set_pizza_style araçlarını kullanıma sunar. Bu araçlardan herhangi birini doğru bir şekilde test etmek için, simüle edilmiş, eksiksiz bir durum oluşturmak üzere tüm araçları dahil etmelisiniz.
NOT: Bir temsilcinin ek araçlara erişimi olabilir, ancak yapabileceğiniz en iyi şey sağladığınız araçları değerlendirmektir.
Artık ajanın gerektiğinde doğru aracı çağırdığını bildiğinize göre, araç çağrısının doğru parametrelere sahip olup olmadığını ve sonucun beklendiği gibi olup olmadığını test edebilirsiniz. İki aşama vardır: deterministik testler ve olasılıksal testler.
Deterministik testler çalıştırın.
WebMCP araçları JavaScript veya HTML ek açıklamaları ile oluşturulduğundan, aşağıdaki görevleri gerçekleştirmek için belirleyici testler yazabilirsiniz:
- Alet mantığını doğrulayın.
- Bağımlılıkların doğru şekilde çağrıldığını doğrulayın.
- Kullanıcı arayüzünün beklendiği gibi güncellendiğini ve diğer kasıtlı yan etkileri doğrulayın.
- Döndürülen bilgilerin beklenen değerle eşleştiğini doğrulayın.
- Test parametrelerini doğrulayın.
Örneğin, aracınız SearchComponent fonksiyonunu kullanıyorsa, SearchComponent'ın bir taklidini geçirerek test edebilirsiniz. En iyi sonuçları elde etmek için, aracın çalıştığı ortamı simüle etmeyi unutmayın. Bu, başka bir uygulama entegrasyon testi yazarken kullanacağınız teknikle aynıdır.
Olasılıksal testler çalıştırın.
Sonraki araçları düzgün bir şekilde çağırmak için model çıktısına ihtiyacınız varsa, değerlendirmeler yazmanız gerekir.
Kullanıcılar, modelden doğrudan, aracın ne işe yaradığını soran sorgular veya bir aracın kullanılması gerektiğini ima eden belirsiz sorgular gönderebilirler. Örneğin, "Pizzama pepperoni ekle" doğrudan bir sorgudur. "Pizzamın üzerine tüm etleri istiyorum" ifadesi daha belirsizdir ve modelin, add_topping aracına ihtiyaç duyduğunu ve hangi malzemelerin et olarak tanımlanabileceğini anlamasını gerektirir.
Değerlendirmeleriniz için veri kümeleri oluştururken, hem temel araç performansını test eden doğrudan sorguları hem de model mantığını ve araç seçim mantığını test eden açık uçlu sorguları ekleyin.
Bir kahve dükkanı işletiyorsanız, müşterilerinizin geçen ay sipariş ettikleri kahvenin aynısını tekrar sipariş etmelerini isteyen müşteri hizmetlerine destek sağlayabilirsiniz. Önceki siparişleri aramak için bir araç, OrderHistoryService, ve kahve siparişi vermek için başka bir araç yazın. Sipariş geçmişi hizmetini test etmek için, kahve ürün kimliğini döndüren bir örnek gönderebilirsiniz.
Bu örnekte, modelin sorgunun amacını anlayıp anlamadığını, doğru aracı seçip seçmediğini ve bu aracın harekete geçmek için doğru bilgiyi sağlayıp sağlamadığını değerlendiriyorsunuz.
Model get_order_history'ı çağırmazsa, order_product için hangi item_id'i kullanacağını bilemez.
Uçtan uca test
Kullanıcıların ve temsilcilerinin yolculuklarını başarıyla tamamlayabileceklerinden emin olmak için uçtan uca testler yazın. Tek tek araçları test etmenin yanı sıra, çok adımlı işlemlerin doğru sırayla gerçekleştirilip gerçekleştirilmediğini de test ediyorsunuz.
Örneğin, çevrimiçi bir giyim mağazası işletiyorsunuz. Bir kullanıcı müşteri temsilcisine şu soruyu soruyor: "Siyah bir ceket ve bir kot pantolon almak istiyorum." Kullanılan malzemelerin dökümünü verebilir misiniz?
Başarılı bir temsilcilik yolculuğu şu şekilde olabilir:
- Giyim kategorisine gidin.
- İstenen giyim eşyalarından birini bulun (sıra önemli değil).
- Belirli öğeyi bul (
search_clothes). - Malzeme listesini içeren ürün detaylarını alın (
get_product_details). - İstenen her bir ürün için 2-4. adımları tekrarlayın.
Ajan 2. adıma ulaştığında, önce siyahı mı yoksa kot pantolonu mu arayacağı önemli değil, arama sırası da önemsiz. Ancak, geri kalan adımlar sırayla izlenmelidir.
Aracının araçları beklenen sırayla çağırdığını doğrulamak için uçtan uca bir değerlendirme yazın:
{
"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" }
}
]
}
]
}
]
}
Tedarik zincirinin ortasındaki arızaları değerlendirin.
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon ve complete_checkout. add_discount_coupon başarısız oldu, ancak işlem yine de tamamlanabildi, yani kullanıcı indirim almadı.Bazen bir temsilcinin birden fazla aracı ardı ardına çağırması gerekebilir. Bu işlem sırasında bir alet arızalanırsa ne olur? Örneğin, bir kullanıcı kupon kodunu kullanarak pizza siparişi vermek istiyor:
"Küçük boy pesto soslu pizza istiyorum." Promosyon kodumu kullanın, FreePizza."
Temsilcinin add_discount_coupon noktasında başarısız olup tam fiyatlı bir pizza için ödeme işlemine devam etmesi mümkündür. add_discount_coupon aracını test etmek için, bu senaryoyu simüle etmek amacıyla, bir modelle etkileşime girmeden, bu araç çağrıları dizisini manuel olarak çalıştırabilirsiniz. Uygulamanızı, aracın arızalanacağını öngördüğünüz duruma getirin. Bu durumda, bu start_checkout aracından sonradır. Ardından, add_discount_coupon'ı tek başına değerlendirebilirsiniz.
WebMCP ile deneyler yapın.
Öncelikle araçların değerlendirmelerini ayrı ayrı yapmaya başlayın ve WebMCP uyumlu herhangi bir aracı kullanarak kendi WebMCP özellikli sitelerinizi değerlendirin:
- İndirinGitHub'da deneysel değerlendirme araçları.
- Kursumuzu inceleyin, Yapay Zeka Değerlendirmeleri Oluşturun.