(উপরের ইমেজে ক্লিক করে এই পাঠের ভিডিও দেখুন)
যেমনটি AI এজেন্টগুলির ব্যবহার বাড়ছে, তেমনি প্রটোকলগুলোর প্রয়োজনও বাড়ছে যা স্ট্যান্ডার্ডাইজেশন, নিরাপত্তা এবং উন্মুক্ত উদ্ভাবনকে নিশ্চিত করে। এই পাঠে, আমরা ৩টি প্রটোকল কভার করব যা এই চাহিদা মেটাতে চেষ্টা করছে - Model Context Protocol (MCP), Agent to Agent (A2A) এবং Natural Language Web (NLWeb)।
এই পাঠে আমরা কভার করব:
• কীভাবে MCP AI এজেন্টগুলিকে ব্যবহারকারীর কাজ সম্পন্ন করতে বাহ্যিক টুল এবং ডেটা অ্যাক্সেস করতে সক্ষম করে।
• কীভাবে A2A বিভিন্ন AI এজেন্টদের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে।
• কীভাবে NLWeb যে কোনো ওয়েবসাইটে প্রাকৃতিক ভাষার ইন্টারফেস নিয়ে আসে, যা AI এজেন্টদের কন্টেন্ট আবিষ্কার এবং ইন্টারঅ্যাক্ট করতে সক্ষম করে।
• চেনা MCP, A2A, এবং NLWeb-এর মূল উদ্দেশ্য এবং সুবিধাগুলি AI এজেন্টদের প্রসঙ্গে চিনতে পারা।
• বর্ণনা করা কিভাবে প্রতিটি প্রটোকল LLM, টুল এবং অন্যান্য এজেন্টদের মধ্যে যোগাযোগ ও ইন্টারঅ্যাকশনকে সহজ করে।
• স্বীকৃতি দেওয়া প্রতিটি প্রটোকল জটিল এজেন্টিক সিস্টেম গঠনে যে ভিন্ন ভূমিকা পালন করে তা সনাক্ত করা।
Model Context Protocol (MCP) একটি ওপেন স্ট্যান্ডার্ড যা অ্যাপ্লিকেশনগুলোকে LLM-দের জন্য প্রসঙ্গ এবং টুল সরবরাহ করার মানকৃত উপায় প্রদান করে। এটি একটি "সার্বজনীন অ্যাডাপ্টার" সক্ষম করে বিভিন্ন ডেটা উৎস এবং টুলগুলোর সাথে যে AI এজেন্টগুলি সামঞ্জস্যপূর্ণভাবে সংযুক্ত হতে পারে।
চলুন MCP-এর উপাদানগুলি, সরাসরি API ব্যবহারের তুলনায় সুবিধাগুলি, এবং AI এজেন্টগুলি কিভাবে একটি MCP সার্ভার ব্যবহার করতে পারে তার একটি উদাহরণ দেখি।
MCP একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচার-এ কাজ করে এবং মূল উপাদানগুলো হল:
• Hosts হল LLM অ্যাপ্লিকেশনগুলো (উদাহরণস্বরূপ VSCode-এর মতো একটি কোড এডিটর) যা MCP সার্ভারের সাথে সংযোগ শুরু করে।
• Clients হল হোস্ট অ্যাপ্লিকেশনের ভিতরে এমন উপাদানগুলো যা সার্ভারের সঙ্গে এক-এক সংযোগ বজায় রাখে।
• Servers হল হালকা ওজনের প্রোগ্রামগুলো যা নির্দিষ্ট সক্ষমতা উন্মোচন করে।
প্রটোকলে তিনটি মূল প্রিমিটিভ অন্তর্ভুক্ত রয়েছে যা MCP সার্ভারের সক্ষমতাসমূহ:
• Tools: এগুলো স্বতন্ত্র ক্রিয়া বা ফাংশন যা একটি AI এজেন্ট কোনো কার্য সম্পাদনের জন্য কল করতে পারে। উদাহরণস্বরূপ, একটি আবহাওয়া সার্ভিস "get weather" টুল উন্মোচন করতে পারে, অথবা একটি ই-কমার্স সার্ভার "purchase product" টুল উন্মোচন করতে পারে। MCP সার্ভারগুলো তাদের সক্ষমতা তালিকায় প্রতিটি টুলের নাম, বর্ণনা, এবং ইনপুট/আউটপুট স্কিমা বিজ্ঞাপন করে।
• Resources: এগুলো হল রিড-অনলি ডেটা আইটেম বা ডকুমেন্ট যা MCP সার্ভার প্রদান করতে পারে, এবং ক্লায়েন্টরা প্রয়োজনে এগুলোকে রিট্রিভ করতে পারে। উদাহরণ হিসেবে ফাইলের কনটেন্ট, ডাটাবেস রেকর্ড, বা লগ ফাইল অন্তর্ভুক্ত। Resources হতে পারে টেক্সট (যেমন কোড বা JSON) বা বাইনারি (যেমন ইমেজ বা PDF)।
• Prompts: এগুলো পূর্বনির্ধারিত টেমপ্লেট যা প্রস্তাবিত প্রম্পট প্রদান করে, জটিল ওয়ার্কফ্লো গঠনে সহায়ক।
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" টুল কল করতে হবে এবং প্রাসঙ্গিক প্যারামিটার (origin, destination) MCP সার্ভারে পাঠায়।
-
নিষ্পাদন ও প্রতিক্রিয়া: MCP সার্ভার, একটি র্যাপার হিসেবে কাজ করে, এয়ারলাইনের অভ্যন্তরীণ বুকিং API-তে প্রকৃত কল করে। তারপর এটি ফ্লাইট সংক্রান্ত তথ্য (যেমন JSON ডেটা) গ্রহণ করে এবং AI অ্যাসিস্ট্যান্টকে ফেরত পাঠায়।
-
পরে ইন্টারঅ্যাকশন: AI অ্যাসিস্ট্যান্ট ফ্লাইট অপশনগুলো প্রদর্শন করে। একবার আপনি একটি ফ্লাইট নির্বাচন করলে, অ্যাসিস্ট্যান্ট একই MCP সার্ভারে "book flight" টুলটি কল করতে পারে এবং বুকিং সম্পন্ন করতে পারে।
যেখানে MCP LLM-কে টুলগুলোর সাথে সংযোগ করাতে কেন্দ্রিত, সেখানে Agent-to-Agent (A2A) প্রটোকল এক ধাপ এগিয়ে যায় এবং বিভিন্ন AI এজেন্টদের মধ্যে যোগাযোগ ও সহযোগিতা সক্ষম করে। A2A বিভিন্ন সংস্থা, পরিবেশ এবং প্রযুক্তি স্ট্যাকের মধ্যে AI এজেন্টদের সংযুক্ত করে একটি শেয়ার করা কাজ সম্পন্ন করতে সাহায্য করে।
চলুন A2A-এর উপাদান এবং সুবিধাগুলি পরীক্ষা করি, পাশাপাশি আমাদের ট্রাভেল অ্যাপ্লিকেশনে এটি কিভাবে প্রয়োগ হতে পারে তার একটি উদাহরণ দেখি।
A2A এজেন্টদের মধ্যে যোগাযোগ সক্ষম করা এবং তাদের ব্যবহারকারীর একটি উপ-কার্য সম্পন্ন করতে একসাথে কাজ করানোতে ফোকাস করে। প্রটোকলের প্রতিটি উপাদান এয়ে অবদান রাখে:
MCP সার্ভার কিভাবে টুলগুলোর তালিকা শেয়ার করে তার অনুরূপ, একটি Agent Card-এ থাকে:
- এজেন্টের নাম।
- এটি সাধারণত কোন ধরণের কাজ সম্পন্ন করে তার একটি বর্ণনা।
- অন্য এজেন্টগুলো (বা এমনকি মানব ব্যবহারকারীরাও) কখন এবং কেন সেই এজেন্টকে কল করবে তা বোঝার জন্য নির্দিষ্ট দক্ষতার একটি তালিকা বর্ণনার সঙ্গে।
- এজেন্টের বর্তমান Endpoint URL
- এজেন্টের ভার্সন এবং ক্ষমতা যেমন স্ট্রিমিং রেসপন্স এবং পুশ নোটিফিকেশন।
Agent Executor দায়িত্বশীল ব্যবহারকারীর চ্যাটের প্রসঙ্গ রিমোট এজেন্টকে পৌঁছে দেওয়ার জন্য; রিমোট এজেন্টকে কাজটি বুঝতে এর প্রয়োজন হয়। একটি A2A সার্ভারে, একটি এজেন্ট ইনকামিং অনুরোধগুলো পার্স করতে এবং নিজের অভ্যন্তরীণ টুলগুলো ব্যবহার করে কাজ সম্পাদন করতে তার নিজস্ব Large Language Model (LLM) ব্যবহার করে।
একবার রিমোট এজেন্ট অনুরোধকৃত কাজ সম্পন্ন করলে, তার কাজের ফলাফল একটি আর্টিফ্যাক্ট হিসেবে তৈরি হয়। একটি আর্টিফ্যাক্ট এজেন্টের কাজের ফল ধারণ করে, কি সম্পন্ন হয়েছে তার একটি বর্ণনা, এবং প্রোটোকলের মাধ্যমে পাঠানো টেক্সট প্রসঙ্গ। আর্টিফ্যাক্টটি পাঠানোর পর, রিমোট এজেন্টের সাথে সংযোগ বন্ধ করা হয় যতক্ষণ না আবার প্রয়োজন হয়।
এই উপাদানটি আপডেটগুলো পরিচালনা এবং বার্তা পাঠাতে ব্যবহৃত হয়। এজেন্টিক সিস্টেমে প্রোডাকশনে এটি বিশেষভাবে গুরুত্বপূর্ণ যাতে কাজ সম্পন্ন হওয়ার আগেই এজেন্টদের মধ্যে সংযোগ বন্ধ না হয়ে যায়, বিশেষত যখন কাজ সম্পন্ন করতে সময় বেশি লাগতে পারে।
• উন্নত সহযোগিতা: এটি বিভিন্ন ভেন্ডার ও প্ল্যাটফর্মের এজেন্টদের ইন্টারঅ্যাক্ট, প্রসঙ্গ শেয়ার এবং একসাথে কাজ করতে সক্ষম করে, ঐতিহ্যগতভাবে আলাদা সিস্টেমগুলোর মধ্যে সিল্কস্মুথ অটোমেশন সহজতর করে।
• মডেল নির্বাচন নমনীয়তা: প্রতিটি A2A এজেন্ট সিদ্ধান্ত নিতে পারে কোন LLM এটি সে সার্ভিসে ব্যবহার করবে, যা প্রতিটি এজেন্টের জন্য অপ্টিমাইজ করা বা ফাইন-টিউন করা মডেল ব্যবহারের সুযোগ দেয়, MCP-এর কিছু ক্ষেত্রে একক LLM সংযোগের বিপরীতে।
• ইনবিল্ট প্রমাণীকরণ: প্রমাণীকরণ সরাসরি A2A প্রটোকলে সংযুক্ত থাকে, যা এজেন্ট ইন্টারঅ্যাকশনের জন্য একটি দৃঢ় নিরাপত্তা ফ্রেমওয়ার্ক প্রদান করে।
চলুন আমাদের ট্রাভেল বুকিং সিনারিওটিকে বাড়িয়ে তুলি, এবার A2A ব্যবহার করে।
-
ব্যবহারকারীর অনুরোধ মাল্টি-এজেন্টে: একজন ব্যবহারকারী "Travel Agent" A2A ক্লায়েন্ট/এজেন্টের সাথে ইন্টারঅ্যাক্ট করে, হয়তো বলে, "পরের সপ্তাহে পুরো একটি ট্রিপ Honolulu-তে বুক করুন, ফ্লাইট, একটি হোটেল, এবং একটি রেন্টাল কার সহ।"
-
Travel Agent-এর অর্কেস্ট্রেশন: Travel Agent এই জটিল অনুরোধ গ্রহণ করে। এটি তার LLM ব্যবহার করে কাজটির বিশ্লেষণ করে এবং সিদ্ধান্ত নেয় যে এটি অন্যান্য বিশেষায়িত এজেন্টদের সাথে ইন্টারঅ্যাক্ট করতে হবে।
-
এজেন্ট-পারস্পরিক যোগাযোগ: Travel Agent পরে A2A প্রটোকল ব্যবহার করে ডাউনস্ট্রিম এজেন্টগুলোর সাথে সংযোগ স্থাপন করে, যেমন বিভিন্ন কোম্পানি দ্বারা তৈরি "Airline Agent," "Hotel Agent," এবং "Car Rental Agent"।
-
ডেলিগেটেড টাস্ক এক্সিকিউশন: Travel Agent এই বিশেষায়িত এজেন্টদের কাছে নির্দিষ্ট কাজ পাঠায় (যেমন, "Find flights to Honolulu," "Book a hotel," "Rent a car")। এই প্রতিটি বিশেষায়িত এজেন্ট তাদের নিজস্ব LLM চালায় এবং তাদের নিজস্ব টুল ব্যবহার করে (যেগুলো MCP সার্ভারই হতে পারে), এবং বুকিংয়ের নির্দিষ্ট অংশ সম্পাদন করে।
-
সংহত প্রতিক্রিয়া: একবার সব ডাউনস্ট্রিম এজেন্ট তাদের কাজগুলি সম্পন্ন করলে, Travel Agent ফলাফলগুলো (ফ্লাইটের বিবরণ, হোটেল নিশ্চিতকরণ, কার রেন্টাল বুকিং) সংকলন করে এবং ব্যবহারকারীর কাছে একটি সমন্বিত, চ্যাট-শৈলীর প্রতিক্রিয়া পাঠায়।
ওয়েবসাইটগুলো দীর্ঘকাল ধরে ইন্টারনেটে ব্যবহারকারীরা তথ্য এবং ডেটা অ্যাক্সেস করার প্রধান মাধ্যম হিসেবে রয়েছে।
চলুন NLWeb-এর বিভিন্ন উপাদান, NLWeb-এর সুবিধা এবং আমাদের ট্রাভেল অ্যাপ্লিকেশন দেখে কিভাবে NLWeb কাজ করে তা দেখি।
-
NLWeb অ্যাপ্লিকেশন (কোর সার্ভিস কোড): প্রাকৃতিক ভাষার প্রশ্নগুলো প্রক্রিয়া করার সিস্টেম। এটি প্ল্যাটফর্মের বিভিন্ন অংশকে সংযুক্ত করে প্রতিক্রিয়া সৃষ্টি করে। আপনি এটিকে একটি ওয়েবসাইটের প্রাকৃতিক ভাষার ফিচারগুলিকে চালিত করা এঞ্জিন হিসেবে ভাবতে পারেন।
-
NLWeb প্রটোকল: এটি একটি ওয়েবসাইটের সঙ্গে প্রাকৃতিক ভাষার ইন্টারঅ্যাকশনের জন্য মৌলিক নিয়মের সেট। এটি JSON ফরম্যাটে প্রতিক্রিয়া পাঠায় (প্রায়শই Schema.org ব্যবহার করে)। এর উদ্দেশ্য হল "AI Web"-এর জন্য একটি সরল ভিত্তি তৈরি করা, যেভাবে HTML অনলাইনে ডকুমেন্ট শেয়ার করা সম্ভব করে তোলে।
-
MCP সার্ভার (Model Context Protocol Endpoint): প্রতিটি NLWeb সেটআপও একটি MCP সার্ভার হিসেবে কাজ করে। এর মানে এটি টুল (যেমন একটি “ask” মেথড) এবং ডেটা শেয়ার করতে পারে অন্যান্য AI সিস্টেমগুলোর সঙ্গে। বাস্তবে, এটি ওয়েবসাইটের কনটেন্ট এবং সক্ষমতাগুলো AI এজেন্টদের দ্বারা ব্যবহারযোগ্য করে তোলে, সাইটটিকে বড় "এজেন্ট ইকোসিস্টেম"-এর অংশ বানায়।
-
Embedding মডেলসমূহ: এই মডেলগুলো ব্যবহার করা হয় ওয়েবসাইট কনটেন্টকে সংখ্যাত্মক প্রতিনিধিত্বে রূপান্তর করতে, যাকে ভেক্টর (embeddings) বলা হয়। এই ভেক্টরগুলো অর্থ ধারণ করে এমনভাবে যা কম্পিউটার তুলনা এবং সার্চ করতে পারে। এগুলো একটি বিশেষ ডাটাবেজে সংরক্ষিত থাকে, এবং ব্যবহারকারীরা নির্ধারণ করতে পারে কোন embedding মডেল তারা ব্যবহার করতে চান।
-
Vector ডাটাবেস (রিট্রিভাল মেকানিজম): এই ডাটাবেসটি ওয়েবসাইট কনটেন্টের embeddings সংরক্ষণ করে। যখন কেউ একটি প্রশ্ন করে, NLWeb ভেক্টর ডাটাবেস চেক করে দ্রুত সবচেয়ে প্রাসঙ্গিক তথ্য খুঁজে বের করে। এটি সম্ভাব্য উত্তরগুলোর একটি দ্রুত তালিকা দেয়, মিলের ভিত্তিতে র্যাঙ্ক করা। NLWeb বিভিন্ন ভেক্টর স্টোরেজ সিস্টেমের সঙ্গে কাজ করে যেমন Qdrant, Snowflake, Milvus, Azure AI Search, এবং Elasticsearch।
আবার আমাদের ট্রাভেল বুকিং ওয়েবসাইটটি বিবেচনা করুন, কিন্তু এবার এটি NLWeb দ্বারা চালিত।
-
ডেটা ইনজেস্টশন: ট্রাভেল ওয়েবসাইটের বিদ্যমান প্রোডাক্ট ক্যাটালগগুলো (যেমন ফ্লাইট লিস্টিং, হোটেল বর্ণনা, টัวার প্যাকেজ) Schema.org ব্যবহার করে ফরম্যাট করা হয় বা RSS ফিডের মাধ্যমে লোড করা হয়। NLWeb-এর টুলগুলো এই স্ট্রাকচার্ড ডেটা ইনজেস্ট করে, embeddings তৈরি করে, এবং সেগুলোকে লোকাল অথবা রিমোট ভেক্টর ডাটাবেসে সংরক্ষণ করে।
-
প্রাকৃতিক ভাষার কুয়েরি (মানব): একজন ব্যবহারকারী ওয়েবসাইটে আসে এবং মেনু ব্রাউজ করার পরিবর্তে একটি চ্যাট ইন্টারফেসে টাইপ করে: "পরের সপ্তাহে Honolulu-তে একটি পুলসহ পরিবার-বান্ধব হোটেল খুঁজুন"।
-
NLWeb প্রক্রিয়াকরণ: NLWeb অ্যাপ্লিকেশন এই কুয়েরি গ্রহণ করে। এটি কুয়েরিটিকে বোঝার জন্য একটি LLM-কে পাঠায় এবং একই সময়ে প্রাসঙ্গিক হোটেল লিস্টিং খুঁজতে তার ভেক্টর ডাটাবেসও সার্চ করে।
-
নির্ভুল ফলাফল: LLM ডাটাবেস থেকে সার্চ ফলাফলগুলো ব্যাখ্যা করতে সাহায্য করে, "family-friendly," "pool," এবং "Honolulu" ক্রাইটেরিয়া অনুযায়ী সেরা ম্যাচগুলো চিহ্নিত করে, এবং তারপর একটি প্রাকৃতিক ভাষার প্রতিক্রিয়া ফরম্যাট করে। গুরুত্বপূর্ণভাবে, প্রতিক্রিয়াটি ওয়েবসাইটের ক্যাটালগের বাস্তব হোটেলগুলোর রেফারেন্স দেয়, কল্পিত তথ্য পরিহার করে।
-
AI এজেন্ট ইন্টারঅ্যাকশন: যেহেতু NLWeb একটি MCP সার্ভার হিসেবে কাজ করে, একটি বাহ্যিক AI ট্রাভেল এজেন্টও এই ওয়েবসাইটের NLWeb ইনস্ট্যান্সে সংযুক্ত হতে পারে। AI এজেন্টটি তারপর
ask("Are there any vegan-friendly restaurants in the Honolulu area recommended by the hotel?")MCP মেথডটি ব্যবহার করে সরাসরি ওয়েবসাইটকে কুয়েরি করতে পারে। NLWeb ইনস্ট্যান্সটি এটি প্রসেস করে, যদি রেস্তোঁরা তথ্য লোড করা থাকে তাহলে তার ডাটাবেস ব্যবহার করে, এবং একটি স্ট্রাকচার্ড JSON প্রতিক্রিয়া ফেরত দেয়।
যোগ দিন Microsoft Foundry Discord এ অন্যান্য শিক্ষার্থীদের সাথে দেখা করতে, অফিস আওয়ারস অংশ নিতে এবং আপনার AI এজেন্ট সংক্রান্ত প্রশ্নগুলোর উত্তর পেতে।
অস্বীকরণ: এই দলিলটি AI অনুবাদ সেবা Co-op Translator ব্যবহার করে অনূদিত করা হয়েছে। যদিও আমরা যথাসাধ্য শুদ্ধতার চেষ্টা করি, স্বয়ংক্রিয় অনুবাদে ত্রুটি বা ভুল থাকতে পারে। মূল দলিলকে তার স্থানীয় ভাষায় প্রামাণ্য উৎস হিসেবে গণ্য করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে যে কোনো বিভ্রান্তি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।


