প্রকাশিত: ১৯ মে, ২০২৬, শেষবার আপডেট করা হয়েছে: ২৮ মে, ২০২৬
| ব্যাখ্যামূলক | ওয়েব | এক্সটেনশন | Chrome স্ট্যাটাস | ইনটেন্ট |
|---|---|---|---|---|
| GitHub | ভিউ | পরীক্ষা করার উদ্দেশ্য |
WebMCP এমন এজেন্টদের সমর্থন করে যারা জেনারেটিভ AI মডেল ব্যবহার করে। জেনারেটিভ AI ব্যবহার করে যেকোনও সিস্টেম পরীক্ষা করতে, আপনার পরীক্ষাকে সম্ভাব্য ফলাফল সমর্থন করতে হবে: একটি ইনপুট বিভিন্ন মাত্রার নির্ভুলতা সহ হাজার হাজার উত্তর দিতে পারে। এই পরীক্ষা করার কৌশলকে মূল্যায়ন বা ইভ্যাল বলা হয়।
প্রোডাকশনে টুল রিলিজ করার আগে, আপনাকে নিশ্চিত করতে হবে যে এজেন্টরা কখন টুল কল করতে হবে, কীভাবে এটি এক্সিকিউট করতে হবে এবং কোন উত্তরগুলি গ্রহণযোগ্য তা বোঝেন। সমস্যা হওয়ার আগেই সেগুলি সমাধানের সুযোগ নিন।
লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) ব্যবহার করে আপনার সিস্টেমের টাচপয়েন্ট পরীক্ষা করার জন্য মূল্যায়ন লিখুন (LLM):
- মডেলটি আপনার টুলের উদ্দেশ্য বুঝতে পেরেছে কিনা তা চেক করুন। এটি টুলের বিবরণ ও স্কিমা থেকে বোঝা যাবে।
- যাচাই করে দেখুন যে মডেলটি ব্যবহারকারীর উদ্দেশ্য পূরণের জন্য সঠিক প্যারামিটার সহ সঠিক টুল বেছে নিয়েছে কিনা।
- মডেলটি যে তথ্য পেয়েছে সেই অনুযায়ী কাজ করছে কিনা তা কনফার্ম করুন, যেমন অন্য টুলকে কল করার জন্য তথ্য ব্যবহার করা।
- সফল ব্যবহারকারীর জার্নি যাচাই করুন। ব্যবহারকারীর উদ্দেশ্য বিবেচনা করে, এজেন্ট কি প্রদত্ত টুলের সাহায্যে আমার ওয়েবসাইটে ব্যবহারকারীর জার্নি সম্পূর্ণ করতে পারবে?
মডেলের সাথে যোগাযোগ করে না এমন যেকোনও সিস্টেম ইন্টার্যাকশনের জন্য আপনাকে ক্লাসিক ডিটারমিনিস্টিক টেস্ট লেখা চালিয়ে যেতে হবে।
সমস্যা হওয়ার ধরন
সমস্যা হওয়ার আগেই তা এড়াতে ডেভেলপারদের তাদের সিস্টেম পরীক্ষা করে দেখা উচিত। এটি করতে, সিস্টেম কখন ব্যর্থ হতে পারে তা আপনাকে বুঝতে হবে, এটি নিজে থেকে এবং বাহ্যিক ফ্যাক্টরের সাথে ইন্টার্যাক্ট করার সময় হতে পারে। WebMCP-এর ক্ষেত্রে, টুলটি কাজ নাও করতে পারে এবং এজেন্টরা প্রত্যাশা অনুযায়ী টুল ব্যবহার করতে নাও পারেন।
WebMCP টুল কাজ নাও করতে পারে এবং এজেন্ট WebMCP টুল ব্যবহার করতে না পারলে কী হবে। যেমন, ধরুন আপনার ব্যবহারকারী তার কার্টে একটি টি-শার্ট যোগ করতে চান।
| করা যায়নি | উদাহরণ | সমস্যার সমাধান করুন |
|---|---|---|
| এজেন্ট সঠিক টুল বেছে নিতে না পারলে বা সরাসরি ভুল টুলে কল করলে। |
এজেন্ট
|
|
| এজেন্ট ভুল ক্রমে টুল কল করে |
এজেন্ট
|
|
| এজেন্ট ভুল আর্গুমেন্ট সহ টুল কল করে |
এজেন্ট কল করে
|
|
ব্যবহারকারী যদি তার কার্টে কী আছে তা চেক করতে চান তাহলে কী হবে?
| করা যায়নি | উদাহরণ | সমস্যার সমাধান করুন |
|---|---|---|
| টুলের আউটপুট ভুল অথবা টুল কিছু তথ্য দেখাতে ভুলে গেছে। | ব্যবহারকারী
|
|
অবশেষে, কোনও টুল যেকোনও উপায়ে জাভাস্ক্রিপ্ট ব্যর্থ করতে পারে। সমস্যার সমাধান করতে, নিম্নলিখিত বিষয়গুলি খতিয়ে দেখুন:
- টুল কোড কি সম্ভাব্য সব রানটাইম সমস্যা ও ব্যতিক্রম সঠিকভাবে ম্যানেজ করে?
- সমস্যার ব্যাপারে কি এজেন্ট ও মডেলকে যথাযথভাবে জানানো হয়েছে?
- টুল কি এক্সটার্নাল API বা পরিষেবার উপর নির্ভর করে? সেগুলি কি ঠিকমতো কাজ করছে?
- সমস্যার গঠন কি যথেষ্ট স্পষ্ট যে মডেলটি একটি সাময়িক সমস্যা (আবার চেষ্টা করুন) এবং একটি গুরুতর সমস্যার মধ্যে পার্থক্য করতে পারে?
আলাদাভাবে টেস্ট টুল
যদি কোনও এজেন্ট এই ধরনের অনুরোধের জন্য কোন টুল কল করতে হবে তা বুঝতে না পারে, "আমি একটি ছোট পিৎজা চাই," তাহলে এটি জটিল ব্যবহারকারীর জার্নিতে কোনও সুযোগ পাবে না।
আলাদাভাবে টুল পরীক্ষা করার মাধ্যমে, ব্রাউজার সিমুলেশন চালানোর আগেই আপনি নিজের স্কিমা ও বিবরণ অপ্টিমাইজ করতে পারবেন।
কলের নির্ভুলতা পরিমাপ করা
আমাদের ডেমো, অর্থাৎ
WebMCP zaMaker দেখুন।
ব্যবহারকারী যখন প্রম্পট করেন, "আমি একটি ছোট পিৎজা নিতে চাই," তখন আপনি মডেলের উত্তর থেকে
set_pizza_size কল করার উদ্দেশ্য বুঝতে পারবেন
"size":"Small" আর্গুমেন্ট।
expectedCall ফাংশন প্রত্যাশিত ফাংশন ও আর্গুমেন্টকে সংজ্ঞায়িত করে। এই পদ্ধতিতে এটি নিশ্চিত করা যায় যে এজেন্ট, প্রদান করা স্কিমার উপর ভিত্তি করে ব্যবহারকারীর উদ্দেশ্য পূরণের জন্য সঠিক টুল বেছে নেবে।
{
"messages": [
{
"role": "user",
"content": "I'd like a small pizza."
}
],
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
}
নিয়ম-ভিত্তিক, ডিটারমিনিস্টিক পরীক্ষা করতে expectedCall ব্যবহার করা হয়:
আপনার WebMCP টুলকে কোনও কম্পোনেন্টের লাইফসাইকেলের সাথে যুক্ত করা সম্ভব, যার অর্থ হল WebMCP যা আশা করে, আপনার অ্যাপ্লিকেশন স্টেট তার সাথে ম্যাচ করলে আপনাকে অবশ্যই পরীক্ষা করতে হবে। এটি ম্যানেজ করতে, আপনি যে স্টেট মূল্যায়ন করতে চান সেটির সাথে প্রাসঙ্গিক টুলের সম্পূর্ণ তালিকা দিন। যেমন, একজন ব্যবহারকারী তার এজেন্টের সাথে কো-ব্রাউজ করছেন এবং WebMCP zaMaker খুলছেন।
অ্যাপ্লিকেশান অবস্থা
[
...
{
"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)",
...
},
...
]
প্রত্যাশিত কল
...
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
...
খুললে, WebMCP add_topping, set_pizza_size এবং
set_pizza_style টুল দেখায়। এইসব আলাদা আলাদা টুলের যেকোনও একটি সঠিকভাবে পরীক্ষা করতে,
আপনাকে একটি সিমুলেটেড, সম্পূর্ণ স্টেট তৈরি করার জন্য সব টুল অন্তর্ভুক্ত করতে হবে।
মনে রাখবেন: এজেন্টের কাছে অতিরিক্ত টুলে অ্যাক্সেস থাকতে পারে, তবে আপনি সবচেয়ে ভালো যা করতে পারেন তা হল আপনার দেওয়া টুল মূল্যায়ন করা।
যেহেতু আপনি এখন জানেন যে এজেন্ট প্রয়োজন অনুযায়ী সঠিক টুল কল করে, তাই আপনি পরীক্ষা করে দেখতে পারেন যে টুল কলের সঠিক প্যারামিটার আছে কিনা এবং ফলাফল প্রত্যাশিত কিনা। দুটি ধাপ আছে: ডিটারমিনিস্টিক টেস্ট ও প্রোবাবিলিস্টিক টেস্ট।
ডিটারমিনিস্টিক টেস্ট রান করা
WebMCP টুল জাভাস্ক্রিপ্ট বা HTML অ্যানোটেশন দিয়ে তৈরি হওয়ায়, আপনি নিম্নলিখিত কাজগুলি করার জন্য ডিটারমিনিস্টিক টেস্ট লিখতে পারবেন:
- টুলের লজিক যাচাই করুন।
- ডিপেন্ডেন্সি সঠিকভাবে কল করা হয়েছে কিনা তা কনফার্ম করুন।
- অন্যান্য ইচ্ছাকৃত পার্শ্বপ্রতিক্রিয়া সহ ব্যবহারকারী ইন্টারফেস প্রত্যাশিতভাবে আপডেট হয়েছে কিনা তা কনফার্ম করুন।
- প্রত্যাশিত মানের সাথে রিটার্ন করা তথ্য মিলছে কিনা তা যাচাই করুন।
- টেস্ট প্যারামিটার যাচাই করুন।
যেমন, আপনার টুল যদি SearchComponent ফাংশন ব্যবহার করে, তাহলে আপনি SearchComponent-এর একটি মক পাস করে
পরীক্ষা করতে পারেন। সবচেয়ে ভালো ফলাফল পেতে, টুলটি যে এনভায়রনমেন্টে কাজ করছে সেটি
সিমুলেট করতে ভুলবেন না। এটি সেই একই
টেকনিক যা আপনি অন্য অ্যাপ্লিকেশন ইন্টিগ্রেশন টেস্ট লেখার সময় ব্যবহার করতেন।
সম্ভাব্যতার ভিত্তিতে পরীক্ষা চালানো
পরবর্তী টুল সঠিকভাবে কল করার জন্য মডেল আউটপুটের প্রয়োজন হলে, আপনাকে evals লিখতে হবে।
ব্যবহারকারী মডেলকে সরাসরি কোয়েরি করতে পারেন যেখানে টুলটি কী করে তা নির্দিষ্টভাবে জানতে চাওয়া হয় অথবা এমন অস্পষ্ট কোয়েরি করা হয় যা থেকে বোঝা যায় যে টুলটি ব্যবহার করা উচিত। যেমন, "আমার পিৎজায় পেপেরনি যোগ করো" হল একটি সরাসরি কোয়েরি। "আমার পিজ্জায় সব মাংস চাই" কথাটি আরও দ্ব্যর্থবোধক এবং এর জন্য মডেলকে বুঝতে হবে যে add_topping টুল ব্যবহার করতে হবে এবং কোন টপিংকে মাংস হিসেবে সংজ্ঞায়িত করা যেতে পারে।
আপনার মূল্যায়ন করার জন্য ডেটাসেট তৈরি করার সময়, সরাসরি কোয়েরি অন্তর্ভুক্ত করুন যা বেসিক টুল এক্সিকিউশন এবং ওপেন-এন্ডেড কোয়েরি পরীক্ষা করে যা মডেলের যুক্তি ও টুল বেছে নেওয়ার লজিক পরীক্ষা করে।
আপনি কফি শপ চালালে, যেসব ব্যবহারকারী তাদের এজেন্টকে গত মাসে অর্ডার করা একই কফি
আবার অর্ডার করতে বলেন, তাদের আপনি সহায়তা করতে পারেন। আগের
অর্ডার সার্চ করার জন্য একটি টুল লেখো, OrderHistoryService এবং কফি অর্ডার করার জন্য আরেকটি টুল লেখো।
অর্ডার ইতিহাস পরিষেবা পরীক্ষা করতে, আপনি একটি মক পাঠাতে পারেন যা কফি প্রোডাক্ট আইডি রিটার্ন করে।
এই উদাহরণে, আপনি মূল্যায়ন করে দেখবেন যে মডেলটি কোয়েরির উদ্দেশ্য বুঝতে পেরেছে কিনা, সঠিক
টুল বেছে নিয়েছে কিনা এবং সেই টুলটি অ্যাকশন নেওয়ার জন্য সঠিক তথ্য প্রদান করেছে কিনা।
মডেলটি get_order_history কল না করলে, order_product-এর জন্য কী item_id
ব্যবহার করতে হবে তা সেটি জানতে পারবে না।
এন্ড-টু-এন্ড টেস্টিং
ব্যবহারকারী ও তাদের এজেন্টরা যাতে সফলভাবে জার্নি সম্পূর্ণ করতে পারেন, সেই ব্যাপারে আপনাকে নিশ্চিত করতে এন্ড-টু-এন্ড টেস্ট লিখুন। আলাদা আলাদা টুল পরীক্ষা করার পাশাপাশি, আপনি এও পরীক্ষা করে দেখছেন যে একাধিক ধাপের অ্যাকশন সঠিক ক্রম অনুসারে করা হচ্ছে কিনা।
যেমন, আপনি একটি অনলাইন পোশাকের দোকান চালান। একজন ব্যবহারকারী তার এজেন্টকে জিজ্ঞাসা করেছেন: "আমি একটি কালো জ্যাকেট ও জিন্স কিনতে চাই। কোন কোন মেটিরিয়াল ব্যবহার করা হয়েছে তার একটি তালিকা দিতে পারবেন?"
একটি সফল এজেন্টিক জার্নি নিচে উল্লেখ করা উদাহরণের মতো হতে পারে:
- পোশাকের বিভাগে নেভিগেট করুন।
- অনুরোধ করা পোশাকের আইটেমগুলির মধ্যে একটি খুঁজে বের করো (কোন আইটেম আগে বা পরে খুঁজে পাওয়া গেছে তা গুরুত্বপূর্ণ নয়)।
- নির্দিষ্ট আইটেম (
search_clothes) খোঁজো। - উপকরণ তালিকা (
get_product_details) আছে এমন প্রোডাক্টের বিবরণ পান। - অনুরোধ করা প্রতিটি আইটেমের জন্য ২-৪ নম্বর ধাপ আবার করুন।
এজেন্ট যখন ২ নম্বর ধাপে পৌঁছাবে, তখন সেটি প্রথমে কালো রঙের ফার্স্ট ফার্স্ট বা জিন্স সার্চ করতে পারে, কোন আইটেম আগে সার্চ করা হচ্ছে তা গুরুত্বপূর্ণ নয়। তবে, বাকি ধাপগুলি অবশ্যই ক্রম অনুযায়ী অনুসরণ করতে হবে।
এজেন্ট প্রত্যাশিত ক্রমে টুল কল করছে কিনা তা যাচাই করতে এন্ড-টু-এন্ড মূল্যায়ন লিখুন:
{
"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" }
}
]
}
]
}
]
}
মিড-চেন ব্যর্থতা মূল্যায়ন করা
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon এবং complete_checkout। add_discount_coupon কাজ করেনি, কিন্তু প্রসেসটি সম্পূর্ণ করা গেছে, অর্থাৎ ব্যবহারকারী কোনও ডিসকাউন্ট পাননি।এমন সময় আসতে পারে যখন কোনও এজেন্টকে একাধিক টুলকে পর পর কল করতে হবে। এই প্রসেস চলাকালীন কোনও টুল কাজ না করলে কী হবে? যেমন, কোনও ব্যবহারকারী কুপন কোড ব্যবহার করে পিৎজা অর্ডার করতে চান:
"আমি একটি ছোট পেস্টো পিৎজা নিতে চাই। আমার প্রোমো কোড, FreePizza ব্যবহার করো।"
এমন হতে পারে যে এজেন্ট add_discount_coupon-এ ব্যর্থ হয়েছে এবং সম্পূর্ণ দামের পিৎজা
চেক-আউট করার প্রসেস শুরু করেছে। add_discount_coupon টুল পরীক্ষা করে দেখতে, আপনি
এই টুল কলের সিকোয়েন্স ম্যানুয়ালি এক্সিকিউট করতে পারেন। এর জন্য
মডেলের সাথে ইন্টার্যাক্ট করার প্রয়োজন নেই। আপনার অ্যাপ্লিকেশনকে সেই অবস্থায় নিয়ে যান
যেখানে আপনি টুলটি কাজ করবে না বলে মনে করেন। এই ক্ষেত্রে, সেটি হল
start_checkout টুলের পরে। তারপরে, আপনি add_discount_couponআলাদাভাবে
মূল্যায়ন করতে পারবেন।
WebMCP-র সাথে এক্সপেরিমেন্ট করা
আলাদাভাবে টুলের জন্য ইভ্যাল নিয়ে পরীক্ষা শুরু করুন এবং যেকোনও WebMCP-এর সাথে মানানসই এজেন্ট দিয়ে আপনার WebMCP চালু করা সাইট মূল্যায়ন করুন:
- আমাদের GitHub-এ পরীক্ষামূলক মূল্যায়ন টুল ডাউনলোড করুন।
- আমাদের কোর্স, AI মূল্যায়ন তৈরি করুন পর্যালোচনা করুন।