(এই লেসনের ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন)
যেহেতু AI এজেন্টগুলোর ব্যবহার বাড়ছে, তেমনি প্রোটোকলের প্রয়োজন কেবল মানসম্মতকরণ, নিরাপত্তা নিশ্চিত করা এবং খোলা উদ্ভাবনের সমর্থন দেওয়ার জন্য। এই লেসনে, আমরা তিনটি প্রোটোকল নিয়ে আলোচনা করব যা এই প্রয়োজন মেটাতে চেষ্টা করছে - Model Context Protocol (MCP), Agent to Agent (A2A) এবং Natural Language Web (NLWeb)।
এই লেসনে আমরা আলোচনা করব:
• কিভাবে MCP এআই এজেন্টদের বহিরাগত টুল এবং ডেটা অ্যাক্সেস করতে দেয় ব্যবহারকারীর কাজ শেষ করার জন্য।
• কিভাবে A2A বিভিন্ন AI এজেন্টের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে।
• কিভাবে NLWeb যেকোনো ওয়েবসাইটে প্রাকৃতিক ভাষার ইন্টারফেস নিয়ে আসে, যা AI এজেন্টদের বিষয়বস্তু আবিষ্কার এবং ইন্টারঅ্যাক্ট করতে দেয়।
• AI এজেন্টদের পরিপ্রেক্ষিতে MCP, A2A এবং NLWeb-এর মূল উদ্দেশ্য এবং সুবিধাসমূহ চিহ্নিত করা।
• প্রতিটি প্রোটোকল কিভাবে LLM, টুল এবং অন্যান্য এজেন্টের মধ্যে যোগাযোগ এবং ইন্টারঅ্যাকশনের সুবিধা দেয় তা বর্ণনা করা।
• জটিল এজেন্টিক সিস্টেম নির্মাণে প্রতিটি প্রোটোকলের পৃথক ভূমিকা সনাক্ত করা।
Model Context Protocol (MCP) একটি খোলা স্ট্যান্ডার্ড যা অ্যাপ্লিকেশনগুলিকে LLM-এ প্রাসঙ্গিকতা এবং টুল সরবরাহ করার জন্য মানসম্মত পদ্ধতি প্রদান করে। এটি একটি “সাধারণ অ্যাডাপ্টার” হিসেবে কাজ করে যা AI এজেন্টদের জন্য বিভিন্ন ডেটা সোর্স এবং টুলগুলোর সাথে এক ধরনের সঙ্গতিপূর্ণ সংযোগ নিশ্চিত করে।
চলুন MCP-এর উপাদানগুলো, সরাসরি API ব্যবহারের তুলনায় সুবিধাসমূহ এবং একটি MCP সার্ভার কীভাবে AI এজেন্ট দ্বারা ব্যবহার হতে পারে তার উদাহরণ দেখি।
MCP একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচার-এর উপর কাজ করে এবং এর মূল উপাদানগুলো হলো:
• হোস্টস হলো LLM অ্যাপ্লিকেশন (যেমন VSCode-এর মত কোড এডিটর) যা MCP সার্ভারের সাথে সংযোগ শুরু করে।
• ক্লায়েন্টস হল হোস্ট অ্যাপে থাকা উপাদান যা সার্ভারের সাথে এক-এক সংযোগ বজায় রাখে।
• সার্ভারস হলো হালকা প্রোগ্রাম যা নির্দিষ্ট ক্ষমতা প্রদান করে।
প্রোটোকলের অন্তর্ভুক্ত তিনটি মূল প্রিমিটিভ, যা MCP সার্ভারের ক্ষমতাসমূহ:
• টুলস: এগুলো হল পৃথক কাজ বা ফাংশন যেগুলো AI এজেন্ট কল করে কোনো কাজ সম্পাদন করতে পারে। উদাহরণস্বরূপ, একটি আবহাওয়া সেবা “get weather” টুল দিতে পারে, অথবা একটি ই-কমার্স সার্ভার “purchase product” টুল দিতে পারে। MCP সার্ভার প্রতিটি টুলের নাম, বিবরণ, এবং ইনপুট/আউটপুট স্কিমা তাদের ক্ষমতা তালিকায় বিজ্ঞাপন করে।
• রিসোর্সেস: এগুলো পঠনযোগ্য ডেটা আইটেম বা ডকুমেন্ট যা MCP সার্ভার প্রয়োজন অনুসারে সরবরাহ করতে পারে, এবং ক্লায়েন্ট তা রিকোয়েস্ট করে পেতে পারে। উদাহরণস্বরূপ ফাইলের বিষয়বস্তু, ডাটাবেস রেকর্ড, বা লগ ফাইল। রিসোর্স হতে পারে টেক্সট (যেমন কোড বা JSON) অথবা বাইনারি (যেমন ছবি বা PDFs)।
• প্রম্পটস: এগুলো হলো পূর্বনির্ধারিত টেমপ্লেট যা প্রস্তাবিত প্রম্পট দেয়, জটিল ওয়ার্কফ্লো চালানোর জন্য।
MCP AI এজেন্টদের জন্য উল্লেখযোগ্য সুবিধা প্রদান করে:
• ডায়নামিক টুল আবিষ্কার: এজেন্টগুলো সার্ভার থেকে অ্যাভেইলেবল টুলগুলোর তালিকা এবং তাদের বর্ণনা ডায়নামিকভাবে পেতে পারে। পারম্প্রিক API-তে সাধারণত ইন্টিগ্রেশনের জন্য স্থির কোডিং দরকার হয়, যার ফলে যদি API পরিবর্তিত হয় তাহলে কোডো বদলাতে হয়। MCP-তে “একবার ইন্টিগ্রেট” করার মাধ্যমে আরো নমনীয়তা আসে।
• বিভিন্ন LLM এর মধ্যে ইন্টারঅপারেবিলিটি: MCP বিভিন্ন LLM-এর মধ্যে কাজ করে, ফলে পারফরম্যান্স উন্নয়নের জন্য কোর মডেল পরিবর্তন করার সুবিধা দেয়।
• মানসম্মত নিরাপত্তা: MCP-তে একটি স্ট্যান্ডার্ড অথেনটিকেশন পদ্ধতি রয়েছে, যা MCP সার্ভারে অ্যাক্সেস যুক্ত করার সময় স্কেলেবিলিটি বাড়ায়। এটি বিভিন্ন API-এর জন্য আলাদা কি ও অথেনটিকেশন পদ্ধতি ব্যবস্থার থেকে সহজ।

ধরা যাক একজন ব্যবহারকারী MCP দ্বারা চালিত একটি AI সহকারী ব্যবহার করে ফ্লাইট বুক করতে চান।
সংযোগ: AI সহকারী (MCP ক্লায়েন্ট) একটি বিমান সংস্থার MCP সার্ভারে সংযোগ করে।
টুল আবিষ্কার: ক্লায়েন্ট বিমান সংস্থার MCP সার্ভারকে জিজ্ঞাসা করে, “আপনার কাছে কি কি টুলস আছে?” সার্ভার প্রতিক্রিয়া দেয় “search flights” এবং “book flights” এর মত টুলসের তালিকা।
টুল কল করা: তারপর আপনি AI সহকারীকে বলেন, “Portland থেকে Honolulu-তে একটি ফ্লাইট খুঁজুন।” AI সহকারী তার LLM ব্যবহার করে বুঝে যে “search flights” টুলটি কল করতে হবে এবং প্রাসঙ্গিক প্যারামিটার (উৎপত্তি, গন্তব্য) MCP সার্ভারে পাঠায়।
বাস্তবায়ন ও প্রতিক্রিয়া: MCP সার্ভার, একটি র্যাপার হিসাবে, বিমান সংস্থার অভ্যন্তরীণ বুকিং API-তে কল করে। এটি ফ্লাইট তথ্য (যেমন JSON ডেটা) পায় এবং AI সহকারীকে পাঠায়।
অতিরিক্ত ইন্টারঅ্যাকশন: AI সহকারী ফ্লাইট অপশনগুলো উপস্থাপন করে। আপনি যখন একটি ফ্লাইট নির্বাচন করবেন, সহকারী হয়ত একই MCP সার্ভারে “book flight” টুল কল করে বুকিং সম্পূর্ণ করবে।
MCP যেখানে LLM ও টুল যুক্ত করার দিকে লক্ষ্য করে, Agent-to-Agent (A2A) প্রটোকল এক ধাপ এগিয়ে বিভিন্ন AI এজেন্টের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে। A2A AI এজেন্টদের বিভিন্ন প্রতিষ্ঠান, পরিবেশ এবং প্রযুক্তি স্ট্যাক জুড়ে সংযোগ করে যৌথ কাজ সম্পন্ন করতে সাহায্য করে।
আমরা A2A-এর উপাদান ও সুবিধাসমূহ আলোচনা করব এবং কীভাবে আমাদের ভ্রমণ অ্যাপ্লিকেশনে এটি প্রয়োগ হতে পারে তার উদাহরণ দেখব।
A2A এজেন্টদের মধ্যে যোগাযোগ নিশ্চিত করতে এবং ব্যবহারকারীর একটি উপকাজ সম্পন্ন করতে একসাথে কাজ করার ওপর কেন্দ্রিত। প্রোটোকলের প্রতিটি উপাদান এটি সাপোর্ট করে:
MCP সার্ভার যেভাবে টুলের তালিকা শেয়ার করে, এজেন্ট কার্ডে থাকে:
এজেন্ট এক্সিকিউটার ব্যবহারকারীর চ্যাটের প্রসঙ্গ দূরবর্তী এজেন্টকে দেয়, কারণ দূরবর্তী এজেন্টকে কাজ বুঝতে এটি প্রয়োজন। A2A সার্ভারে, একটি এজেন্ট নিজস্ব LLM ব্যবহার করে আগত রিকোয়েস্ট বিশ্লেষণ ও নিজস্ব টুল ব্যবহার করে কাজ সম্পাদন করে।
যখন দূরবর্তী এজেন্ট অনুরোধকৃত কাজ শেষ করে, তার কাজের ফলাফল একটি আর্টিফ্যাক্ট হিসেবে তৈরি হয়। আর্টিফ্যাক্টে থাকে এজেন্টের কাজের ফলাফল, কৃত কাজের বিবরণ, এবং প্রটোকলের মাধ্যমে পাঠানো টেক্সট প্রসঙ্গ। আর্টিফ্যাক্ট পাঠানোর পর দূরবর্তী এজেন্টের সাথে সংযোগ বন্ধ হয়ে যায় যতক্ষণ আবার প্রয়োজন হয়।
এটি আপডেট হ্যান্ডলিং এবং বার্তা প্রেরণের জন্য ব্যবহৃত হয়। এজেন্টিক সিস্টেমে এটি অত্যন্ত গুরুত্বপূর্ণ যেন কাজ সম্পন্ন হওয়ার আগে এজেন্টদের সংযোগ বন্ধ না হয়, বিশেষত যখন কাজ সম্পন্ন করতে বেশি সময় লাগে।
• উন্নত সহযোগিতা: এটি বিভিন্ন বিক্রেতা এবং প্ল্যাটফর্মের এজেন্টদের মধ্যে ইন্টারঅ্যাকশন, প্রাসঙ্গিকতা শেয়ার এবং একসঙ্গে কাজ করার সুযোগ দেয়, যা সাধারণত বিচ্ছিন্ন সিস্টেমগুলোর মধ্যে স্বয়ংক্রিয়তায় সহায়ক।
• মডেল নির্বাচন নমনীয়তা: প্রতিটি A2A এজেন্ট নিজের কাজের জন্য কোন LLM ব্যবহার করবে তা নিজে নির্ধারণ করতে পারে, যা MCP-এর একক LLM সংযোগের তুলনায় আরও অপ্টিমাইজড বা ফাইন-টিউনড মডেল ব্যবহারের সুবিধা দেয়।
• অ্যাথেনটিকেশন অন্তর্ভুক্ত: A2A প্রোটোকলে সরাসরি অথেনটিকেশন অন্তর্ভুক্ত থাকায় এজেন্টদের মধ্যে নিরাপদ যোগাযোগ নিশ্চিত করে।

চলুন আমাদের ভ্রমণ বুকিং পরিস্থিতি আরও বিস্তারিত দেখি, এবার A2A ব্যবহার করে।
ব্যবহারকারীর অনুরোধ মাল্টি-এজেন্টকে: একজন ব্যবহারকারী “Travel Agent” A2A ক্লায়েন্ট/এজেন্টের সাথে কথা বলে বলতে পারেন, “পরবর্তী সপ্তাহে Honolulu-তে পুরো ট্রিপ বুক করুন, ফ্লাইট, হোটেল এবং রেন্টাল কার সহ।”
ট্রাভেল এজেন্টের সমন্বয়: ট্রাভেল এজেন্ট এই জটিল অনুরোধ পায়। এটি নিজের LLM ব্যবহার করে কাজটি নিয়ে চিন্তা করে এবং নির্ধারণ করে যে অন্যান্য বিশেষায়িত এজেন্টদের সাথে যোগাযোগ করতে হবে।
এজেন্টদের মধ্যে যোগাযোগ: তারপর ট্রাভেল এজেন্ট A2A প্রোটোকল ব্যবহার করে নিচুতল এজেন্ট যেমন “Airline Agent”, “Hotel Agent” এবং “Car Rental Agent”-এর সাথে সংযোগ করে, যেগুলো বিভিন্ন কোম্পানির তৈরি।
এরোপিত কাজ সম্পাদন: ট্রাভেল এজেন্ট নির্দিষ্ট কাজগুলো এসব বিশেষায়িত এজেন্টের কাছে পাঠায় (উদাহরণস্বরূপ, “Honolulu-এর ফ্লাইট খুঁজুন”, “হোটেল বুক করুন”, “গাড়ি ভাড়া নিন”)। প্রতিটি বিশেষায়িত এজেন্ট তাদের নিজস্ব LLM এবং টুল (যা MCP সার্ভারও হতে পারে) ব্যবহার করে তাদের অংশের কাজ করে।
সমন্বিত প্রতিক্রিয়া: নিচুতল এজেন্টরা তাদের কাজ শেষ করলে, ট্রাভেল এজেন্ট সব ফলাফল (ফ্লাইট বিবরণ, হোটেল নিশ্চিতকরণ, গাড়ি ভাড়া বুকিং) মিলিয়ে একটি সম্পূর্ণ, চ্যাট-স্টাইলের প্রতিক্রিয়া ব্যবহারকারীকে পাঠায়।
ওয়েবসাইট দীর্ঘদিন ধরে ব্যবহারকারীরা ইন্টারনেটের তথ্য ও ডেটা অ্যাক্সেস করার প্রধান মাধ্যম।
আসুন NLWeb-এর বিভিন্ন উপাদান, সুবিধা এবং আমাদের ভ্রমণ অ্যাপ্লিকেশনের মাধ্যমে NLWeb কীভাবে কাজ করে তা দেখি।
NLWeb অ্যাপ্লিকেশন (কর পরিষেবা কোড): একটি সিস্টেম যা প্রাকৃতিক ভাষার প্রশ্ন প্রক্রিয়াকরণ করে। এটি প্ল্যাটফর্মের বিভিন্ন অংশ সংযুক্ত করে যাতে উত্তর তৈরি হয়। এটিকে ওয়েবসাইটের প্রাকৃতিক ভাষার বৈশিষ্ট্য চালানোর ইঞ্জিন ভাবা যেতে পারে।
NLWeb প্রটোকল: এটি একটি ওয়েবসাইটের সাথে প্রাকৃতিক ভাষার মিথস্ক্রিয়ার জন্য মৌলিক নিয়মাবলী। এটি JSON ফর্ম্যাটে (অধিকাংশ সময় Schema.org ব্যবহার করে) উত্তর পাঠায়। এর উদ্দেশ্য “AI ওয়েব” এর জন্য সহজ ভিত্তি তৈরি করা, যেমন HTML অনলাইন ডকুমেন্ট শেয়ারিং সম্ভব করেছিল।
MCP সার্ভার (Model Context Protocol Endpoint): প্রতিটি NLWeb সেটআপ MCP সার্ভার হিসেবেও কাজ করে। অর্থাৎ এটি অন্যান্য AI সিস্টেমের সঙ্গে টুলস (যেমন ‘ask’ পদ্ধতি) এবং ডেটা শেয়ার করতে পারে। এইভাবে ওয়েবসাইটের বিষয়বস্তু ও ক্ষমতা AI এজেন্ট দ্বারা উপযোগী হয়, ওয়েবসাইট “এজেন্ট ইকোসিস্টেম”-এর অংশে পরিণত হয়।
এম্বেডিং মডেলস: এই মডেলগুলো ওয়েবসাইটের বিষয়বস্তু সংখ্যাগত উপস্থাপনায় (ভেক্টর/এম্বেডিং) রূপান্তর করে। এই ভেক্টরগুলো অর্থ ধারণ করে যা কম্পিউটার তুলনা ও অনুসন্ধান করতে পারে। এগুলো বিশেষ ডাটাবেসে সংরক্ষিত হয়, এবং ব্যবহারকারীরা মোডেল নির্বাচন করতে পারে।
ভেক্টর ডাটাবেস (আবার আহরণের পদ্ধতি): এই ডাটাবেস ওয়েবসাইটের বিষয়বস্তু এম্বেডিং সংরক্ষণ করে। কেউ প্রশ্ন করলে, NLWeb দ্রুত সবচেয়ে প্রাসঙ্গিক তথ্য খুঁজে ডাটাবেস পর্যালোচনা করে। এটি সম্ভাব্য উত্তরগুলোর দ্রুত তালিকা দেয়, সাদৃশ্য অনুসারে র্যাঙ্ক করে। NLWeb বিভিন্ন ভেক্টর স্টোরেজ সিস্টেমের সাথে কাজ করে যেমন Qdrant, Snowflake, Milvus, Azure AI Search, এবং Elasticsearch।

আবার একবার ভাবুন আমাদের ভ্রমণ বুকিং ওয়েবসাইট, এবার NLWeb দ্বারা চালিত।
ডেটা গ্রহণ: ভ্রমণ ওয়েবসাইটের বিদ্যমান পণ্য ক্যাটালগ (যেমন ফ্লাইট তালিকা, হোটেল বর্ণনা, টুর প্যাকেজ) Schema.org ফর্ম্যাটে অথবা RSS ফিডের মাধ্যমে লোড করা হয়। NLWeb-এর টুলস এই গঠিত ডেটা গ্রহণ করে এম্বেডিং তৈরি করে ও স্থানীয় বা দূরবর্তী ভেক্টর ডাটাবেসে সংরক্ষণ করে।
প্রাকৃতিক ভাষার কুয়েরি (মানব): একজন ব্যবহারকারী মেনু ভ্রমণের পরিবর্তে চ্যাট ইন্টারফেসে টাইপ করে: “আমার জন্য Honolulu-তে পরবর্তী সপ্তাহে একটি পরিবার-সানন্দ হোটেল পুলসহ খুঁজুন”।
NLWeb প্রক্রিয়াকরণ: NLWeb অ্যাপ্লিকেশন এই কুয়েরি গ্রহণ করে। এটি LLM-এ পাঠায় বোঝার জন্য এবং একইসময়ে ভেক্টর ডাটাবেসে প্রাসঙ্গিক হোটেল তালিকা অনুসন্ধান করে।
সঠিক ফলাফল: LLM অনুসন্ধানের ফলাফল ব্যাখ্যা করতে সাহায্য করে, “পরিবার-সানন্দ”, “পুল”, এবং “Honolulu” ক্রাইটেরিয়া অনুসারে সেরা মিলগুলি চিহ্নিত করে, এবং একটি প্রাকৃতিক ভাষার উত্তর তৈরি করে। জোর দেয়া হয়, উত্তর ওয়েবসাইট ক্যাটালগের আসল হোটেলের দিকে ইঙ্গিত করে, কাল্পনিক তথ্য থেকে বিরত থাকে।
AI এজেন্ট ইন্টারঅ্যাকশন: যেহেতু NLWeb MCP সার্ভার হিসেবে কাজ করে, বাইরের একটি AI ট্রাভেল এজেন্টও এই ওয়েবসাইটের NLWeb ইন্সট্যান্সে সংযুক্ত হতে পারে। AI এজেন্ট ask MCP পদ্ধতি ব্যবহার করে সরাসরি ওয়েবসাইটকে প্রশ্ন করতে পারে: ask("Honolulu এলাকায় হোটেল দ্বারা সুপারিশকৃত কোনও ভেগান-সানন্দ রেস্তোরাঁ আছে কি?")। NLWeb এই প্রশ্ন প্রক্রিয়া করে, তার রেস্টুরেন্ট তথ্যভান্ডারের (যদি লোড করা থাকে) সাহায্যে এবং কাঠামোবদ্ধ JSON উৎসর্গ করে।
Microsoft Foundry Discord-এ যোগ দিন অন্য শিক্ষার্থীদের সাথে পেতে, অফিস আওয়ার এ অংশ নিতে এবং আপনার AI এজেন্ট সম্পর্কিত প্রশ্নগুলোর উত্তর পেতে।
Context Engineering for AI Agents
অস্বীকৃতি: এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনূদিত হয়েছে। যদিও আমরা শুদ্ধতার জন্য চেষ্টা করি, অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার স্বভাষায় কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহারে প্রয়োজনীয় ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।