যেহেতু AI এজেন্টের ব্যবহার বৃদ্ধি পাচ্ছে, তাই স্ট্যান্ডার্ডাইজেশন, নিরাপত্তা এবং উন্মুক্ত উদ্ভাবনকে সমর্থন করার জন্য প্রোটোকলের প্রয়োজনও বাড়ছে। এই পাঠে, আমরা তিনটি প্রোটোকল নিয়ে আলোচনা করব যা এই চাহিদা পূরণের চেষ্টা করছে - মডেল কনটেক্সট প্রোটোকল (MCP), এজেন্ট টু এজেন্ট (A2A) এবং ন্যাচারাল ল্যাঙ্গুয়েজ ওয়েব (NLWeb)।
এই পাঠে আমরা আলোচনা করব:
• কীভাবে MCP AI এজেন্টদের বাহ্যিক টুল এবং ডেটা অ্যাক্সেস করতে সাহায্য করে ব্যবহারকারীর কাজ সম্পন্ন করতে।
• কীভাবে A2A বিভিন্ন AI এজেন্টের মধ্যে যোগাযোগ এবং সহযোগিতা সক্ষম করে।
• কীভাবে NLWeb যেকোনো ওয়েবসাইটে প্রাকৃতিক ভাষার ইন্টারফেস নিয়ে আসে, যা AI এজেন্টদের বিষয়বস্তু আবিষ্কার এবং এর সাথে যোগাযোগ করতে সক্ষম করে।
• সনাক্ত করুন MCP, A2A এবং NLWeb-এর মূল উদ্দেশ্য এবং সুবিধা AI এজেন্টের প্রসঙ্গে।
• ব্যাখ্যা করুন কীভাবে প্রতিটি প্রোটোকল 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 সার্ভার টুলের তালিকা শেয়ার করে, একটি এজেন্ট কার্ডে থাকে:
এজেন্ট এক্সিকিউটর ব্যবহারকারীর চ্যাটের প্রসঙ্গ রিমোট এজেন্টে পাঠানোর জন্য দায়ী, রিমোট এজেন্টকে এটি বুঝতে হবে যে কোন কাজটি সম্পন্ন করতে হবে। একটি A2A সার্ভারে, একটি এজেন্ট তার নিজস্ব বড় ভাষার মডেল (LLM) ব্যবহার করে আসা অনুরোধগুলো পার্স করে এবং তার নিজস্ব অভ্যন্তরীণ টুল ব্যবহার করে কাজ সম্পন্ন করে।
একবার একটি রিমোট এজেন্ট অনুরোধকৃত কাজটি সম্পন্ন করলে, তার কাজের ফলাফল একটি আর্টিফ্যাক্ট হিসেবে তৈরি হয়। একটি আর্টিফ্যাক্ট এজেন্টের কাজের ফলাফল, কী সম্পন্ন হয়েছে তার বিবরণ, এবং প্রোটোকলের মাধ্যমে পাঠানো টেক্সট প্রসঙ্গ ধারণ করে। আর্টিফ্যাক্ট পাঠানোর পরে, রিমোট এজেন্টের সাথে সংযোগ বন্ধ হয়ে যায় যতক্ষণ না এটি আবার প্রয়োজন হয়।
এই উপাদানটি আপডেট পরিচালনা এবং বার্তা পাঠানোর জন্য ব্যবহৃত হয়। এটি প্রোডাকশনে এজেন্টিক সিস্টেমের জন্য বিশেষভাবে গুরুত্বপূর্ণ যাতে এজেন্টদের মধ্যে সংযোগ একটি কাজ সম্পন্ন হওয়ার আগে বন্ধ না হয়, বিশেষত যখন কাজ সম্পন্ন করতে দীর্ঘ সময় লাগে।
• উন্নত সহযোগিতা: এটি বিভিন্ন বিক্রেতা এবং প্ল্যাটফর্মের এজেন্টদের ইন্টারঅ্যাক্ট করতে, প্রসঙ্গ শেয়ার করতে এবং একসঙ্গে কাজ করতে সক্ষম করে, ঐতিহ্যগতভাবে সংযোগ বিচ্ছিন্ন সিস্টেমগুলোর মধ্যে নির্বিঘ্ন অটোমেশন সহজতর করে।
• মডেল নির্বাচন নমনীয়তা: প্রতিটি A2A এজেন্ট তার অনুরোধগুলো পরিষেবা দেওয়ার জন্য কোন LLM ব্যবহার করবে তা সিদ্ধান্ত নিতে পারে, যা এজেন্ট প্রতি অপ্টিমাইজড বা ফাইন-টিউনড মডেলগুলোর অনুমতি দেয়, কিছু MCP পরিস্থিতিতে একটি একক LLM সংযোগের বিপরীতে।
• বিল্ট-ইন অথেনটিকেশন: অথেনটিকেশন সরাসরি A2A প্রোটোকলে সংযুক্ত, এজেন্ট ইন্টারঅ্যাকশনের জন্য একটি শক্তিশালী নিরাপত্তা কাঠামো প্রদান করে।
চলুন আমাদের ট্রাভেল বুকিং দৃশ্যটি প্রসারিত করি, তবে এবার A2A ব্যবহার করে।
ব্যবহারকারীর অনুরোধ মাল্টি-এজেন্টে: একজন ব্যবহারকারী একটি “ট্রাভেল এজেন্ট” A2A ক্লায়েন্ট/এজেন্টের সাথে যোগাযোগ করে, হয়তো বলে, “অনুগ্রহ করে পরের সপ্তাহে হনলুলুতে একটি সম্পূর্ণ ট্রিপ বুক করুন, যার মধ্যে ফ্লাইট, একটি হোটেল এবং একটি রেন্টাল কার অন্তর্ভুক্ত থাকবে।”
ট্রাভেল এজেন্ট দ্বারা অর্কেস্ট্রেশন: ট্রাভেল এজেন্ট এই জটিল অনুরোধটি গ্রহণ করে। এটি তার LLM ব্যবহার করে কাজটি সম্পর্কে যুক্তি করে এবং নির্ধারণ করে যে এটি অন্যান্য বিশেষায়িত এজেন্টদের সাথে যোগাযোগ করতে হবে।
ইন্টার-এজেন্ট যোগাযোগ: ট্রাভেল এজেন্ট তারপর A2A প্রোটোকল ব্যবহার করে ডাউনস্ট্রিম এজেন্টদের সাথে সংযোগ স্থাপন করে, যেমন একটি “এয়ারলাইন এজেন্ট,” একটি “হোটেল এজেন্ট,” এবং একটি “কার রেন্টাল এজেন্ট” যা বিভিন্ন কোম্পানি দ্বারা তৈরি।
ডেলিগেটেড টাস্ক এক্সিকিউশন: ট্রাভেল এজেন্ট এই বিশেষায়িত এজেন্টদের কাছে নির্দিষ্ট কাজ পাঠায় (যেমন, “হনলুলুতে ফ্লাইট খুঁজুন,” “একটি হোটেল বুক করুন,” “একটি গাড়ি ভাড়া করুন”)। এই বিশেষায়িত এজেন্টগুলো, তাদের নিজস্ব LLM চালিয়ে এবং তাদের নিজস্ব টুল ব্যবহার করে (যা MCP সার্ভারও হতে পারে), তাদের নির্দিষ্ট অংশ সম্পন্ন করে।
সমন্বিত প্রতিক্রিয়া: একবার সমস্ত ডাউনস্ট্রিম এজেন্ট তাদের কাজ সম্পন্ন করলে, ট্রাভেল এজেন্ট ফলাফলগুলো (ফ্লাইটের বিবরণ, হোটেলের নিশ্চিতকরণ, গাড়ি ভাড়ার বুকিং) সংকলন করে এবং ব্যবহারকারীর কাছে একটি ব্যাপক, চ্যাট-স্টাইল প্রতিক্রিয়া পাঠায়।
ওয়েবসাইট দীর্ঘদিন ধরে ইন্টারনেট জুড়ে তথ্য এবং ডেটা অ্যাক্সেস করার জন্য ব্যবহারকারীদের প্রধান উপায় হয়ে উঠেছে।
চলুন NLWeb-এর বিভিন্ন উপাদান, NLWeb-এর সুবিধা এবং আমাদের ট্রাভেল অ্যাপ্লিকেশনের মাধ্যমে 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 ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদ প্রদানের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা তার জন্য দায়ী থাকব না।