যেহেতু AI এজেন্টের ব্যবহার বৃদ্ধি পাচ্ছে, সেহেতু এমন প্রোটোকলের প্রয়োজনীয়তাও বাড়ছে যা মানকরণ, নিরাপত্তা এবং উন্মুক্ত উদ্ভাবনকে সমর্থন করে। এই পাঠে আমরা তিনটি প্রোটোকল নিয়ে আলোচনা করব যা এই চাহিদা পূরণ করতে চায় - মডেল কনটেক্সট প্রোটোকল (MCP), এজেন্ট টু এজেন্ট (A2A) এবং ন্যাচারাল ল্যাঙ্গুয়েজ ওয়েব (NLWeb)।
এই পাঠে আমরা আলোচনা করব:
• কীভাবে MCP AI এজেন্টদের বহিরাগত টুল এবং ডেটা অ্যাক্সেস করতে সাহায্য করে ব্যবহারকারীর কাজ সম্পন্ন করতে।
• কীভাবে A2A বিভিন্ন AI এজেন্টের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে।
• কীভাবে NLWeb যেকোনো ওয়েবসাইটে প্রাকৃতিক ভাষার ইন্টারফেস নিয়ে আসে, যা AI এজেন্টদের কন্টেন্ট আবিষ্কার এবং এর সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে।
• AI এজেন্টের প্রেক্ষাপটে MCP, A2A এবং NLWeb-এর মূল উদ্দেশ্য এবং সুবিধাগুলি চিহ্নিত করা।
• প্রতিটি প্রোটোকল কীভাবে LLMs, টুল এবং অন্যান্য এজেন্টের মধ্যে যোগাযোগ এবং ইন্টারঅ্যাকশন সহজ করে তা ব্যাখ্যা করা।
• জটিল এজেন্টিক সিস্টেম তৈরিতে প্রতিটি প্রোটোকলের স্বতন্ত্র ভূমিকা স্বীকৃতি দেওয়া।
মডেল কনটেক্সট প্রোটোকল (MCP) একটি উন্মুক্ত মান যা LLMs-কে কনটেক্সট এবং টুল সরবরাহ করার জন্য অ্যাপ্লিকেশনগুলিকে একটি মানক পদ্ধতি প্রদান করে। এটি AI এজেন্টদের বিভিন্ন ডেটা সোর্স এবং টুলের সাথে একটি "ইউনিভার্সাল অ্যাডাপ্টার" হিসেবে সংযুক্ত হতে সাহায্য করে।
চলুন MCP-এর উপাদান, সরাসরি API ব্যবহারের তুলনায় এর সুবিধা এবং AI এজেন্টরা কীভাবে MCP সার্ভার ব্যবহার করতে পারে তার একটি উদাহরণ দেখি।
MCP একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচারে কাজ করে এবং এর মূল উপাদানগুলো হলো:
• হোস্টস: LLM অ্যাপ্লিকেশন (যেমন VSCode-এর মতো কোড এডিটর) যা MCP সার্ভারের সাথে সংযোগ শুরু করে।
• ক্লায়েন্টস: হোস্ট অ্যাপ্লিকেশনের উপাদান যা সার্ভারের সাথে এক-এক সংযোগ বজায় রাখে।
• সার্ভারস: হালকা প্রোগ্রাম যা নির্দিষ্ট ক্ষমতা প্রকাশ করে।
প্রোটোকলে তিনটি মূল প্রিমিটিভ অন্তর্ভুক্ত রয়েছে, যা MCP সার্ভারের ক্ষমতাগুলি নির্দেশ করে:
• টুলস: এগুলো হলো নির্দিষ্ট কাজ সম্পাদনের জন্য AI এজেন্ট দ্বারা ডাকা যায় এমন পৃথক অ্যাকশন বা ফাংশন। উদাহরণস্বরূপ, একটি আবহাওয়া পরিষেবা "আবহাওয়া জানুন" টুল সরবরাহ করতে পারে, অথবা একটি ই-কমার্স সার্ভার "পণ্য কিনুন" টুল সরবরাহ করতে পারে। MCP সার্ভার প্রতিটি টুলের নাম, বিবরণ এবং ইনপুট/আউটপুট স্কিমা তাদের ক্ষমতার তালিকায় বিজ্ঞাপন দেয়।
• রিসোর্সেস: এগুলো হলো রিড-ওনলি ডেটা আইটেম বা ডকুমেন্ট যা MCP সার্ভার সরবরাহ করতে পারে এবং ক্লায়েন্টরা সেগুলো চাহিদা অনুযায়ী পুনরুদ্ধার করতে পারে। উদাহরণস্বরূপ, ফাইল কন্টেন্ট, ডেটাবেস রেকর্ড বা লগ ফাইল। রিসোর্সেস টেক্সট (যেমন কোড বা JSON) বা বাইনারি (যেমন ইমেজ বা PDF) হতে পারে।
• প্রম্পটস: এগুলো হলো পূর্বনির্ধারিত টেমপ্লেট যা জটিল ওয়ার্কফ্লো সম্পাদনের জন্য প্রস্তাবিত প্রম্পট সরবরাহ করে।
MCP AI এজেন্টদের জন্য উল্লেখযোগ্য সুবিধা প্রদান করে:
• ডায়নামিক টুল ডিসকভারি: এজেন্টরা একটি সার্ভার থেকে উপলব্ধ টুলগুলোর তালিকা এবং তাদের কাজের বিবরণ ডায়নামিকভাবে পেতে পারে। এটি ঐতিহ্যবাহী API-এর বিপরীতে, যেখানে ইন্টিগ্রেশনের জন্য স্ট্যাটিক কোডিং প্রয়োজন হয় এবং API পরিবর্তন হলে কোড আপডেট করতে হয়। MCP একটি "একবার ইন্টিগ্রেট করুন" পদ্ধতি প্রদান করে, যা আরও বেশি অভিযোজনযোগ্যতা নিশ্চিত করে।
• LLMs-এর মধ্যে আন্তঃপরিচালনযোগ্যতা: MCP বিভিন্ন LLM-এর সাথে কাজ করে, যা মূল মডেল পরিবর্তন করে আরও ভালো পারফরম্যান্স মূল্যায়নের জন্য নমনীয়তা প্রদান করে।
• মানক নিরাপত্তা: MCP একটি মানক প্রমাণীকরণ পদ্ধতি অন্তর্ভুক্ত করে, যা অতিরিক্ত MCP সার্ভারে অ্যাক্সেস যোগ করার সময় স্কেলেবিলিটি উন্নত করে। এটি বিভিন্ন ঐতিহ্যবাহী API-এর জন্য আলাদা কী এবং প্রমাণীকরণ প্রকার পরিচালনার চেয়ে সহজ।

ধরা যাক একজন ব্যবহারকারী MCP দ্বারা চালিত একটি AI সহকারী ব্যবহার করে একটি ফ্লাইট বুক করতে চান।
সংযোগ: AI সহকারী (MCP ক্লায়েন্ট) একটি এয়ারলাইনের সরবরাহ করা MCP সার্ভারের সাথে সংযোগ স্থাপন করে।
টুল ডিসকভারি: ক্লায়েন্ট এয়ারলাইনের MCP সার্ভারকে জিজ্ঞাসা করে, "আপনার কাছে কী টুল রয়েছে?" সার্ভার "ফ্লাইট অনুসন্ধান করুন" এবং "ফ্লাইট বুক করুন" টুল সরবরাহ করে।
টুল আহ্বান: আপনি AI সহকারীকে বলেন, "পোর্টল্যান্ড থেকে হনলুলু পর্যন্ত একটি ফ্লাইট অনুসন্ধান করুন।" AI সহকারী, তার LLM ব্যবহার করে, বুঝতে পারে যে এটি "ফ্লাইট অনুসন্ধান করুন" টুলটি ডাকার প্রয়োজন এবং প্রাসঙ্গিক প্যারামিটার (উৎপত্তি, গন্তব্য) MCP সার্ভারে পাঠায়।
নির্বাহ এবং প্রতিক্রিয়া: MCP সার্ভার, একটি র্যাপারের মতো কাজ করে, এয়ারলাইনের অভ্যন্তরীণ বুকিং API-তে প্রকৃত কল করে। এটি ফ্লাইট তথ্য (যেমন JSON ডেটা) গ্রহণ করে এবং AI সহকারীকে ফেরত পাঠায়।
পরবর্তী ইন্টারঅ্যাকশন: AI সহকারী ফ্লাইট বিকল্পগুলি উপস্থাপন করে। আপনি একটি ফ্লাইট নির্বাচন করার পর, সহকারী একই MCP সার্ভারে "ফ্লাইট বুক করুন" টুলটি আহ্বান করতে পারে এবং বুকিং সম্পন্ন করতে পারে।
যেখানে MCP LLMs-কে টুলের সাথে সংযুক্ত করার উপর ফোকাস করে, সেখানে এজেন্ট-টু-এজেন্ট (A2A) প্রোটোকল আরও এক ধাপ এগিয়ে গিয়ে বিভিন্ন AI এজেন্টের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে। A2A বিভিন্ন সংস্থা, পরিবেশ এবং প্রযুক্তি স্ট্যাকের AI এজেন্টদের একটি শেয়ার করা কাজ সম্পন্ন করতে সংযুক্ত করে।
আমরা A2A-এর উপাদান এবং সুবিধাগুলি পরীক্ষা করব, পাশাপাশি আমাদের ভ্রমণ অ্যাপ্লিকেশনে এটি কীভাবে প্রয়োগ করা যেতে পারে তার একটি উদাহরণ দেখব।
A2A এজেন্টদের মধ্যে যোগাযোগ সক্ষম করার এবং ব্যবহারকারীর একটি উপকর্ম সম্পন্ন করার জন্য তাদের একসঙ্গে কাজ করার উপর ফোকাস করে। প্রোটোকলের প্রতিটি উপাদান এতে অবদান রাখে:
যেভাবে একটি MCP সার্ভার টুলগুলোর তালিকা শেয়ার করে, সেভাবে একটি এজেন্ট কার্ডে থাকে:
◦ এজেন্টের নাম।
◦ এটি যে সাধারণ কাজগুলো সম্পন্ন করে তার বিবরণ।
◦ নির্দিষ্ট দক্ষতার তালিকা এবং তাদের বিবরণ, যা অন্য এজেন্ট (বা এমনকি মানব ব্যবহারকারী) বুঝতে সাহায্য করে কখন এবং কেন তারা সেই এজেন্টকে ডাকবে।
◦ এজেন্টের বর্তমান এন্ডপয়েন্ট URL।
◦ এজেন্টের সংস্করণ এবং ক্ষমতাগুলি, যেমন স্ট্রিমিং প্রতিক্রিয়া এবং পুশ নোটিফিকেশন।
এজেন্ট এক্সিকিউটর ব্যবহারকারীর চ্যাটের কনটেক্সট রিমোট এজেন্টে পাঠানোর জন্য দায়ী, যাতে রিমোট এজেন্ট বুঝতে পারে যে কী কাজ সম্পন্ন করতে হবে। A2A সার্ভারে, একটি এজেন্ট তার নিজস্ব লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) ব্যবহার করে আসা অনুরোধগুলো বিশ্লেষণ করে এবং তার নিজস্ব অভ্যন্তরীণ টুল ব্যবহার করে কাজ সম্পন্ন করে।
একবার একটি রিমোট এজেন্ট অনুরোধকৃত কাজ সম্পন্ন করলে, তার কাজের ফলাফল একটি আর্টিফ্যাক্ট হিসেবে তৈরি হয়। একটি আর্টিফ্যাক্টে থাকে এজেন্টের কাজের ফলাফল, কী সম্পন্ন হয়েছে তার বিবরণ, এবং প্রোটোকলের মাধ্যমে পাঠানো টেক্সট কনটেক্সট। আর্টিফ্যাক্ট পাঠানোর পর, রিমোট এজেন্টের সাথে সংযোগ বন্ধ হয়ে যায় যতক্ষণ না এটি আবার প্রয়োজন হয়।
এই উপাদানটি আপডেট পরিচালনা এবং বার্তা প্রেরণের জন্য ব্যবহৃত হয়। এটি বিশেষভাবে গুরুত্বপূর্ণ উৎপাদন পরিবেশে এজেন্টিক সিস্টেমের জন্য, যাতে এজেন্টদের মধ্যে সংযোগ একটি কাজ সম্পন্ন হওয়ার আগে বন্ধ না হয়, বিশেষত যখন কাজ সম্পন্ন করতে বেশি সময় লাগে।
• উন্নত সহযোগিতা: এটি বিভিন্ন বিক্রেতা এবং প্ল্যাটফর্মের এজেন্টদের ইন্টারঅ্যাক্ট করতে, কনটেক্সট শেয়ার করতে এবং একসঙ্গে কাজ করতে সক্ষম করে, ঐতিহ্যগতভাবে বিচ্ছিন্ন সিস্টেমগুলোর মধ্যে নির্বিঘ্ন অটোমেশন সহজতর করে।
• মডেল নির্বাচন নমনীয়তা: প্রতিটি A2A এজেন্ট তার অনুরোধ পরিষেবা দেওয়ার জন্য কোন LLM ব্যবহার করবে তা নির্ধারণ করতে পারে, যা প্রতিটি এজেন্টের জন্য অপ্টিমাইজড বা ফাইন-টিউনড মডেল ব্যবহার করার সুযোগ দেয়।
• অন্তর্নির্মিত প্রমাণীকরণ: প্রমাণীকরণ সরাসরি A2A প্রোটোকলে সংযুক্ত, যা এজেন্ট ইন্টারঅ্যাকশনের জন্য একটি শক্তিশালী নিরাপত্তা কাঠামো প্রদান করে।

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

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