এআই এজেন্টদের উন্নত করা: Amazon Bedrock-এ স্টেটফুল MCP-এর দিকে পরিবর্তন
এআই এজেন্টরা দ্রুত বিকশিত হচ্ছে, তবুও তাদের পূর্ণ সম্ভাবনা প্রায়শই স্টেটলেস বাস্তবায়ন দ্বারা বাধাগ্রস্ত হয়েছে, বিশেষ করে এমন পরিস্থিতিতে যেখানে রিয়েল-টাইম ব্যবহারকারীর মিথস্ক্রিয়া, গতিশীল বিষয়বস্তু তৈরি, বা চলমান প্রোগ্রেস আপডেটগুলির প্রয়োজন হয়। পরিশীলিত এআই এজেন্ট তৈরি করা ডেভেলপাররা প্রায়শই এমন চ্যালেঞ্জের মুখোমুখি হন যখন ওয়ার্কফ্লোকে বিরতি দিতে, স্পষ্টীকরণ সংগ্রহ করতে বা দীর্ঘস্থায়ী অপারেশন চলাকালীন স্ট্যাটাস রিপোর্ট করতে হয়। স্টেটলেস এক্সিকিউশনের কঠোর, একমুখী প্রকৃতি সত্যিকারের ইন্টারেক্টিভ এবং প্রতিক্রিয়াশীল এআই অ্যাপ্লিকেশনগুলির বিকাশকে সীমাবদ্ধ করে।
এখন, Amazon Bedrock AgentCore Runtime যুগান্তকারী স্টেটফুল মডেল কনটেক্সট প্রোটোকল (MCP) ক্লায়েন্ট ক্ষমতাগুলি উপস্থাপন করেছে, যা এআই এজেন্টরা কীভাবে ব্যবহারকারী এবং বৃহৎ ভাষা মডেল (LLM)-এর সাথে জড়িত হয় তা পরিবর্তন করে। এই গুরুত্বপূর্ণ আপডেটটি এজেন্টদেরকে স্টেটলেস যোগাযোগের সীমাবদ্ধতা থেকে মুক্ত করে, যা জটিল, মাল্টি-টার্ন এবং অত্যন্ত ইন্টারেক্টিভ ওয়ার্কফ্লো সক্ষম করে। ইলিজিটেশন (Elicitation), স্যাম্পলিং (Sampling), এবং প্রোগ্রেস নোটিফিকেশন (Progress Notifications) এর মতো গুরুত্বপূর্ণ MCP ক্লায়েন্ট বৈশিষ্ট্যগুলিকে একীভূত করার মাধ্যমে, Bedrock AgentCore Runtime MCP সার্ভার এবং ক্লায়েন্টদের মধ্যে দ্বিমুখী কথোপকথন সহজতর করে, আরও বুদ্ধিমান, ব্যবহারকারী-কেন্দ্রিক এআই সমাধানগুলির জন্য পথ প্রশস্ত করে।
স্টেটলেস থেকে স্টেটফুল: ইন্টারেক্টিভ এজেন্ট ওয়ার্কফ্লো উন্মোচন
পূর্বে, AgentCore-এ MCP সার্ভার সমর্থন একটি স্টেটলেস মোডে পরিচালিত হত, যেখানে প্রতিটি HTTP অনুরোধ স্বাধীনভাবে কাজ করত, কোনো শেয়ার করা প্রসঙ্গ ছাড়াই। যদিও এটি মৌলিক টুল সার্ভারগুলির জন্য স্থাপনকে সরল করত, এটি কথোপকথনমূলক ধারাবাহিকতা, মধ্য-ওয়ার্কফ্লো ব্যবহারকারীর স্পষ্টীকরণ, বা রিয়েল-টাইম প্রোগ্রেস রিপোর্টিং এর মতো পরিস্থিতিগুলিকে মারাত্মকভাবে সীমিত করত। সার্ভার কেবল পৃথক অনুরোধগুলির মধ্যে একটি কথোপকথন থ্রেড বজায় রাখতে পারত না, যা সত্যিকারের ইন্টারেক্টিভ এজেন্টগুলির বিকাশকে বাধা দিত।
স্টেটফুল MCP ক্লায়েন্ট ক্ষমতা এর আগমন এই দৃষ্টান্তকে মৌলিকভাবে পরিবর্তন করে। সার্ভার শুরুর সময় stateless_http=False সেট করার মাধ্যমে, AgentCore Runtime প্রতিটি ব্যবহারকারীর সেশনের জন্য একটি ডেডিকেটেড মাইক্রোভিএম (microVM) প্রদান করে। এই মাইক্রোভিএমটি সেশনের পুরো সময়কাল—8 ঘন্টা পর্যন্ত, অথবা idleRuntimeSessionTimeout সেটিং অনুযায়ী 15 মিনিট নিষ্ক্রিয়তার পর—স্থায়ী থাকে, যা সেশনগুলির মধ্যে সিপিইউ, মেমরি এবং ফাইলসিস্টেম বিচ্ছিন্নতা নিশ্চিত করে। Mcp-Session-Id হেডারের মাধ্যমে ধারাবাহিকতা বজায় রাখা হয়, যা সার্ভার প্রারম্ভিক অবস্থায় প্রদান করে এবং ক্লায়েন্ট একই সেশনে ফিরে যাওয়ার জন্য পরবর্তী সমস্ত অনুরোধে অন্তর্ভুক্ত করে। এই ডেডিকেটেড, স্থায়ী পরিবেশ এজেন্টদেরকে প্রসঙ্গ মনে রাখতে, ব্যবহারকারীর ইনপুট চাইতে, গতিশীল LLM বিষয়বস্তু তৈরি করতে এবং অবিচ্ছিন্ন আপডেট প্রদান করতে সক্ষম করে।
নিম্নলিখিত সারণীটি স্টেটলেস এবং স্টেটফুল মোডগুলির মধ্যে প্রধান পার্থক্যগুলি সংক্ষিপ্ত করে:
| স্টেটলেস মোড | স্টেটফুল মোড | |
|---|---|---|
stateless_http সেটিং | TRUE | FALSE |
| সেশন আইসোলেশন | প্রতিটি সেশনের জন্য ডেডিকেটেড মাইক্রোভিএম | প্রতিটি সেশনের জন্য ডেডিকেটেড মাইক্রোভিএম |
| সেশন লাইফটাইম | 8 ঘন্টা পর্যন্ত; 15-মিনিট নিষ্ক্রিয়তার সময়সীমা | 8 ঘন্টা পর্যন্ত; 15-মিনিট নিষ্ক্রিয়তার সময়সীমা |
| ক্লায়েন্ট ক্ষমতা | সমর্থিত নয় | ইলিজিটেশন, স্যাম্পলিং, প্রোগ্রেস নোটিফিকেশন |
| জন্য প্রস্তাবিত | সহজ টুল পরিবেশন | ইন্টারেক্টিভ, মাল্টি-টার্ন ওয়ার্কফ্লো |
যখন একটি সেশন মেয়াদ উত্তীর্ণ হয় বা সার্ভার পুনরায় চালু হয়, তখন প্রাথমিক সেশন আইডি সহ পরবর্তী অনুরোধগুলি 404 ত্রুটি ফিরিয়ে দেবে। সেই সময়ে, ক্লায়েন্টদের একটি নতুন সেশন আইডি পেতে এবং একটি নতুন সেশন শুরু করতে সংযোগ পুনরায় শুরু করতে হবে। স্টেটফুল মোড সক্ষম করার জন্য কনফিগারেশন পরিবর্তনটি আপনার সার্ভার স্টার্টআপে একটি একক ফ্ল্যাগ:
mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Enable stateful mode)
এই ফ্ল্যাগ ছাড়াও, MCP ক্লায়েন্ট প্রারম্ভিক হ্যান্ডশেকের সময় তাদের জন্য সমর্থন ঘোষণা করলেই তিনটি ক্লায়েন্ট ক্ষমতা স্বয়ংক্রিয়ভাবে উপলব্ধ হয়ে যায়।
নতুন ক্লায়েন্ট ক্ষমতাগুলির গভীরে প্রবেশ: ইলিজিটেশন, স্যাম্পলিং এবং প্রোগ্রেস
স্টেটফুল মোডে রূপান্তরের সাথে সাথে, Amazon Bedrock AgentCore Runtime MCP স্পেসিফিকেশন থেকে তিনটি শক্তিশালী ক্লায়েন্ট ক্ষমতা উন্মোচন করে, যার প্রতিটি উন্নত এআই এজেন্টদের জন্য গুরুত্বপূর্ণ স্বতন্ত্র মিথস্ক্রিয়া প্যাটার্নগুলিকে সমাধান করার জন্য ডিজাইন করা হয়েছে। এই ক্ষমতাগুলি যা পূর্বে একটি কঠোর, একমুখী কমান্ড এক্সিকিউশন ছিল তাকে MCP সার্ভার এবং তার সংযুক্ত ক্লায়েন্টগুলির মধ্যে একটি তরল, দ্বিমুখী সংলাপে রূপান্তরিত করে। এটি উল্লেখ করা গুরুত্বপূর্ণ যে এই বৈশিষ্ট্যগুলি অপ্ট-ইন, অর্থাৎ ক্লায়েন্টরা প্রারম্ভিক অবস্থায় তাদের সমর্থন ঘোষণা করে, এবং সার্ভারগুলিকে শুধুমাত্র সেই ক্ষমতাগুলি ব্যবহার করতে হবে যা সংযুক্ত ক্লায়েন্ট বিজ্ঞাপন দিয়েছে।
ইলিজিটেশন: এআই এজেন্টগুলিতে গতিশীল ব্যবহারকারীর ইনপুট সক্ষম করা
ইলিজিটেশন (Elicitation) ইন্টারেক্টিভ এআই-এর একটি ভিত্তিপ্রস্তর হিসাবে দাঁড়িয়েছে, যা একটি MCP সার্ভারকে বিচক্ষণতার সাথে তার এক্সিকিউশন থামাতে এবং ক্লায়েন্টের মাধ্যমে ব্যবহারকারীর কাছ থেকে নির্দিষ্ট, কাঠামোগত ইনপুট অনুরোধ করতে দেয়। এই ক্ষমতাটি টুলটিকে তার ওয়ার্কফ্লোর মধ্যে উপযুক্ত মুহূর্তে সুনির্দিষ্ট প্রশ্ন জিজ্ঞাসা করার ক্ষমতা দেয়, তা একটি সিদ্ধান্ত নিশ্চিত করা হোক, ব্যবহারকারীর পছন্দ সংগ্রহ করা হোক, বা পূর্ববর্তী অপারেশন থেকে প্রাপ্ত একটি মান সংগ্রহ করা হোক। সার্ভার একটি elicitation/create JSON-RPC অনুরোধ পাঠিয়ে এটি শুরু করে, যার মধ্যে একটি মানব-পঠনযোগ্য বার্তা এবং একটি ঐচ্ছিক requestedSchema থাকে যা প্রত্যাশিত প্রতিক্রিয়ার গঠন বর্ণনা করে।
MCP স্পেসিফিকেশন ইলিজিটেশনের জন্য দুটি শক্তিশালী মোড প্রদান করে:
- ফর্ম মোড (Form mode): এটি MCP ক্লায়েন্টের মাধ্যমে সরাসরি কাঠামোগত ডেটা সংগ্রহের জন্য আদর্শ, যেমন কনফিগারেশন প্যারামিটার, ব্যবহারকারীর পছন্দ, বা সহজ নিশ্চিতকরণ যেখানে সংবেদনশীল ডেটা জড়িত নয়।
- ইউআরএল মোড (URL mode): সুরক্ষিত, আউট-অফ-ব্যান্ড মিথস্ক্রিয়ার জন্য যার জন্য একটি বাহ্যিক ইউআরএল-এ ব্যবহারকারীকে নির্দেশ করার প্রয়োজন হয়, যেমন OAuth ফ্লো, পেমেন্ট প্রক্রিয়াকরণ, বা সংবেদনশীল শংসাপত্রের এন্ট্রি। এটি নিশ্চিত করে যে সংবেদনশীল তথ্য MCP ক্লায়েন্টকে সম্পূর্ণরূপে বাইপাস করে, সুরক্ষা এবং সম্মতি বৃদ্ধি করে।
একটি ইলিজিটেশন অনুরোধ পাওয়ার পর, ক্লায়েন্ট একটি উপযুক্ত ইনপুট ইন্টারফেস রেন্ডার করে। ব্যবহারকারীর পরবর্তী ক্রিয়া সার্ভারে একটি তিন-ক্রিয়া প্রতিক্রিয়া মডেলকে ট্রিগার করে: accept (ব্যবহারকারী অনুরোধকৃত ডেটা প্রদান করেছে), decline (ব্যবহারকারী স্পষ্টভাবে অনুরোধটি প্রত্যাখ্যান করেছে), বা cancel (ব্যবহারকারী কোনো পছন্দ না করে প্রম্পটটি বাতিল করেছে)। বুদ্ধিমান সার্ভারগুলি এই প্রতিটি পরিস্থিতিকে সুন্দরভাবে পরিচালনা করার জন্য ডিজাইন করা হয়েছে, একটি শক্তিশালী এবং ব্যবহারকারী-বান্ধব অভিজ্ঞতা নিশ্চিত করে। উদাহরণস্বরূপ, একটি add_expense_interactive টুল, যেমনটি উৎস উপাদানে প্রদর্শিত হয়েছে, ব্যবহারকারীকে অ্যামাজন ডায়নামোডিবি (Amazon DynamoDB) এর মতো একটি ব্যাকএন্ডে ডেটা প্রতিশ্রুতিবদ্ধ করার আগে প্রশ্নগুলির একটি সিরিজের মাধ্যমে—পরিমাণ, বিবরণ, বিভাগ, এবং চূড়ান্ত নিশ্চিতকরণ—গাইড করতে পারে। প্রতিটি ধাপ Pydantic মডেল ব্যবহার করে প্রত্যাশিত ইনপুট সংজ্ঞায়িত করে, যা FastMCP নির্বিঘ্নে elicitation/create অনুরোধের জন্য প্রয়োজনীয় JSON Schema-তে রূপান্তর করে।
স্যাম্পলিং এবং প্রোগ্রেস নোটিফিকেশন: LLM মিথস্ক্রিয়া এবং স্বচ্ছতা বৃদ্ধি
সরাসরি ব্যবহারকারীর মিথস্ক্রিয়া ছাড়িয়ে, স্যাম্পলিং (Sampling) sampling/createMessage এর মাধ্যমে সরাসরি ক্লায়েন্টের কাছ থেকে LLM-উৎপন্ন বিষয়বস্তুর অনুরোধ করার ক্ষমতা দিয়ে MCP সার্ভারকে সজ্জিত করে। এটি একটি গুরুত্বপূর্ণ মেকানিজম কারণ এটি সার্ভারে টুল লজিককে তার নিজস্ব LLM শংসাপত্র বা সরাসরি API ইন্টিগ্রেশন পরিচালনা করার প্রয়োজন ছাড়াই শক্তিশালী ভাষা মডেল ক্ষমতাগুলি ব্যবহার করতে দেয়। সার্ভার কেবল একটি প্রম্পট এবং ঐচ্ছিক মডেল পছন্দগুলি প্রদান করে, এবং ক্লায়েন্ট, একটি মধ্যস্থতাকারী হিসাবে কাজ করে, অনুরোধটি তার সংযুক্ত LLM-এ ফরওয়ার্ড করে এবং উৎপন্ন প্রতিক্রিয়া ফিরিয়ে দেয়। এটি ব্যক্তিগতকৃত সারাংশ তৈরি করা, কাঠামোগত ডেটা থেকে স্বাভাবিক-ভাষার ব্যাখ্যা তৈরি করা, বা চলমান কথোপকথনের উপর ভিত্তি করে প্রসঙ্গ-সচেতন সুপারিশ তৈরি করার মতো অসংখ্য ব্যবহারিক অ্যাপ্লিকেশনের দরজা খুলে দেয়।
যে অপারেশনগুলি দীর্ঘ সময় ধরে চলে, তার জন্য প্রোগ্রেস নোটিফিকেশন (Progress Notifications) অমূল্য হয়ে ওঠে। এই ক্ষমতাটি একটি MCP সার্ভারকে দীর্ঘস্থায়ী কাজগুলির সময় ক্রমবর্ধমান আপডেটগুলি রিপোর্ট করতে দেয়। ctx.report_progress(progress, total) ব্যবহার করে, সার্ভার অবিচ্ছিন্ন আপডেটগুলি নির্গত করতে পারে যা ক্লায়েন্টরা ভিজ্যুয়াল প্রতিক্রিয়াতে অনুবাদ করতে পারে, যেমন একটি প্রোগ্রেস বার বা একটি স্ট্যাটাস ইন্ডিকেটর। বিশাল ডেটা উৎস জুড়ে অনুসন্ধান করা হোক বা জটিল গণনা কাজ সম্পাদন করা হোক, স্বচ্ছ প্রোগ্রেস আপডেটগুলি ব্যবহারকারীদের অবহিত রাখে, হতাশা প্রতিরোধ করে এবং সামগ্রিক ব্যবহারকারীর অভিজ্ঞতা বাড়ায়, পরিবর্তে তাদের একটি খালি স্ক্রিনের দিকে তাকিয়ে সিস্টেমটি এখনও সক্রিয় আছে কিনা তা ভাবতে হয় না।
Bedrock AgentCore Runtime-এর সাথে এআই এজেন্ট বিকাশকে ভবিষ্যত-প্রমাণ করা
Amazon Bedrock AgentCore Runtime-এ স্টেটফুল MCP ক্লায়েন্ট ক্ষমতাগুলির প্রবর্তন এআই এজেন্ট বিকাশে একটি উল্লেখযোগ্য অগ্রগতি উপস্থাপন করে। পূর্বে স্টেটলেস মিথস্ক্রিয়াগুলিকে গতিশীল, দ্বিমুখী কথোপকথনে রূপান্তরিত করার মাধ্যমে, AWS ডেভেলপারদেরকে আরও বুদ্ধিমান, প্রতিক্রিয়াশীল এবং ব্যবহারকারী-বান্ধব এআই অ্যাপ্লিকেশন তৈরি করার ক্ষমতা দেয়। এই ক্ষমতাগুলি – গাইডেড ব্যবহারকারী ইনপুটের জন্য ইলিজিটেশন, অন-ডিমান্ড LLM জেনারেশনের জন্য স্যাম্পলিং, এবং রিয়েল-টাইম স্বচ্ছতার জন্য প্রোগ্রেস নোটিফিকেশন – সম্মিলিতভাবে ইন্টারেক্টিভ এজেন্ট ওয়ার্কফ্লোর একটি নতুন যুগের সূচনা করে। যেহেতু এআই বিকশিত হতে চলেছে, এই মৌলিক ক্ষমতাগুলি জটিল ব্যবসায়িক প্রক্রিয়াগুলিতে নির্বিঘ্নে একীভূত হতে, ব্যবহারকারীর চাহিদাগুলির সাথে খাপ খাইয়ে নিতে এবং ব্যতিক্রমী মূল্য সরবরাহ করতে পারে এমন পরিশীলিত অপারেশনালাইজিং এজেন্টিক এআই (operationalizing agentic AI) তৈরির জন্য অত্যন্ত গুরুত্বপূর্ণ হবে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
What problem do stateful MCP client capabilities solve on Amazon Bedrock AgentCore Runtime?
How does the transition from stateless to stateful mode work on AgentCore Runtime?
What is Elicitation, and how does it enhance AI agent interactions?
How does Sampling capability benefit AI agents without managing LLM credentials?
আপডেট থাকুন
সর্বশেষ AI খবর ইনবক্সে পান।
