একটি স্বায়ত্তশাসিত AI এজেন্ট মাত্র বিশ মিনিটের মধ্যে একটি সম্পূর্ণ Retrieval-Augmented Generation (RAG) স্ট্যাক তৈরি করেছে এবং মানুষের লেখা একটি লাইন কোড ছাড়াই একটি ড্রাফট পুল রিকোয়েস্ট (pull request) ওপেন করেছে।
কেন এই “লুপ” (loop) গুরুত্বপূর্ণ
একটি RAG স্ট্যাক তৈরি করার অর্থ হলো সাধারণত একটি সার্চ ইঞ্জিন, একটি এমবেডিং মডেল, একটি ল্যাঙ্গুয়েজ মডেল এবং গ্লু কোড (glue code) একত্রে জুড়ে দেওয়া। ডেভেলপাররা Helm charts টিউন করা, অথেনটিকেশন (auth) সংক্রান্ত ত্রুটি ঠিক করা এবং মডেলের নামের অমিল খুঁজে বের করতে ঘণ্টার পর ঘণ্টা সময় নষ্ট করেন। এই পরীক্ষায়, স্বায়ত্তশাসিত এজেন্টটি একটি পাঁচ-ধাপের লুপ অনুসরণ করেছে যা কোনো কোড লেখার আগেই মানুষ এবং এজেন্টের মধ্যে একটি সমঝোতা নিশ্চিত করে।
| ধাপ | কী ঘটে |
|---|---|
| প্রস্তাবনা | এজেন্ট প্রম্পটটি পড়ে একটি সুনির্দিষ্ট পরিকল্পনা তৈরি করে, তবে এখনও কোড তৈরি করে না। |
| সমঝোতা | ব্যবহারকারী পরিকল্পনাটি পর্যালোচনা করেন, এটি অনুমোদন করেন অথবা পরিবর্তনের অনুরোধ জানান। |
| বাস্তবায়ন | এজেন্ট একটি নতুন ব্রাঞ্চে ফিচারটি তৈরি করে। |
| ড্রাফট গেট | এজেন্ট নিজেই লিন্টিং (linting) এবং টেস্ট স্যুট চালায় এবং আবিষ্কৃত ত্রুটিগুলো ঠিক করে। |
| ড্রাফট PR | কোডটি পুশ করা হয় এবং চূড়ান্ত মানুষের পর্যালোচনার জন্য একটি পুল রিকোয়েস্ট ওপেন করা হয়। |
বেশিরভাগ AI-সহায়তা সম্পন্ন কোডিং টুল সরাসরি বাস্তবায়নে চলে যায়, যার ফলে প্রায়শই লক্ষ্যভ্রষ্ট কোড তৈরি হয়। একটি সুনির্দিষ্ট সমঝোতার ধাপ যুক্ত করার মাধ্যমে, এই লুপটি অন্ধভাবে কোড চালানো বন্ধ করে এবং কোনো কমিট (commit) করার আগেই ব্যবহারকারীকে প্রজেক্টটি পরিচালনা করার সুযোগ দেয়।
যে স্ট্যাকটি তৈরি হলো
বিশ মিনিটের মধ্যে এজেন্টটি একটি প্রোডাকশন-রেডি (production-ready) RAG পাইপলাইন তৈরি করেছে:
- OpenSearch 3.7 হাইব্রিড সার্চের (vector + keyword) জন্য কনফিগার করা হয়েছে।
- Local Ollama LLM যা রিট্রিভাল-অগমেন্টেড রেসপন্সের জন্য জেনারেটিভ ইঞ্জিন হিসেবে কাজ করছে।
- FastMCP server যা ল্যাঙ্গুয়েজ মডেলের জন্য চারটি কাস্টম টুল উন্মুক্ত করেছে।
- Skaffold and Helm স্ক্রিপ্ট যা কন্টেইনার বিল্ড, Kubernetes ম্যানিফেস্ট এবং সার্ভিস ডিপ্লয়মেন্টকে অটোমেট করে।
পাইপলাইনটিতে ৩০টি নিবন্ধ (articles) যুক্ত করা হয়েছিল, যা এন্ড-টু-এন্ড রিট্রিভাল এবং জেনারেশনের তাৎক্ষণিক পরীক্ষা করার সুযোগ দেয়। একজন ডেভেলপারের প্রতিটি কম্পোনেন্ট কনফিগার করতে সাধারণত পুরো একটি দিন লেগে যেত; এই গতি সত্যিই বিস্ময়কর।
যে বাগগুলো প্রায় সবকিছু নষ্ট করে দিচ্ছিল
এজেন্টের আত্মবিশ্বাস পাঁচটি ভিন্ন ভিন্ন ব্যর্থতার মাধ্যমে পরীক্ষিত হয়েছে, যা সাধারণত মানুষের দ্বারা পরিচালিত ডিপ্লয়মেন্টকে থামিয়ে দিত:
- OpenSearch credential errors – এজেন্ট ভুল সিক্রেট কি (secret key) প্রদান করেছিল, যার ফলে ক্লাস্টার কানেকশন প্রত্যাখ্যান করেছিল।
- Regex typo in a URL – একটি ভুল ক্যারেক্টারের কারণে একটি বৈধ এন্ডপয়েন্ট ডেড লিঙ্কে পরিণত হয়েছিল, যা ডেটা লোডারকে অকেজো করে দিয়েছিল।
- Model name mismatch – কানেক্টরটি একটি ভিন্ন Ollama মডেল আইডেন্টিফায়ার আশা করছিল, যার ফলে “model not found” ত্রুটি দেখা দিয়েছিল।
- JVM memory limits – বাল্ক ইনডেক্সিংয়ের ফলে Java heap শেষ হয়ে গিয়েছিল, যা আউট-অফ-মেমরি (out-of-memory) ক্র্যাশ ঘটিয়েছিল।
- Accidental deletion of model chunks – একটি ক্লিনআপ স্ক্রিপ্ট প্রয়োজনীয় ফাইলগুলোকে ডুপ্লিকেট হিসেবে ভুলবশত শনাক্ত করে মুছে ফেলেছিল, যা পুরো পাইপলাইনটিকে ঝুঁকির মুখে ফেলেছিল।
যখন এজেন্ট আটকে গিয়েছিল, তখন “loop-police” এগিয়ে আসে
loop-police নামক একটি সহযোগী ওয়াচডগ (watchdog) লুপের স্বাস্থ্য পর্যবেক্ষণ করে। যখন ডিলিট করার বাগ চলাকালীন এজেন্ট একটি অন্তহীন চক্রে (non-terminating cycle) প্রবেশ করেছিল, তখন loop-police সেই স্থবিরতা শনাক্ত করে, বর্তমান ব্রাঞ্চটি বাতিল করে এবং জোরপূর্বক পুনরায় Agreement পর্যায়ে ফিরে যেতে বাধ্য করে। এরপর এজেন্ট তার ভুলটি স্বীকার করে, ত্রুটিপূর্ণ অবস্থাটি পরিষ্কার করে এবং একদম শুরু থেকে পাইপলাইনটি পুনরায় তৈরি করে। প্রাথমিক পরিকল্পনা অনুমোদনের বাইরে মানুষের কোনো হস্তক্ষেপ ছাড়াই এই সেলফ-হিলিং (self-healing) চক্রটি সম্পন্ন হয়।
ডেভেলপারদের জন্য এর অর্থ কী
- নিয়ন্ত্রণ না হারিয়েই গতি। এই লুপ ইঞ্জিনিয়ারদের তাদের উদ্দেশ্য নির্দিষ্ট করার সুযোগ দেয় এবং তারপর সেই কাজ একটি স্বায়ত্তশাসিত সিস্টেমের হাতে ছেড়ে দেয়, যা মানুষের অনুমোদিত ব্লুপ্রিন্ট অনুসরণ করে।
- বিল্ট-ইন সেফটি নেট। অটোমেটেড লিন্টিং, টেস্টিং এবং একটি ওয়াচডগ যা অনিয়ন্ত্রিত লুপ বন্ধ করতে পারে, তা নিঃশব্দে ব্যর্থ হওয়ার ঝুঁকি কমিয়ে দেয়।
- সহজ প্রবেশাধিকার। যেসব টিমের Helm, Kubernetes বা ভেক্টর-সার্চ সম্পর্কে গভীর জ্ঞান নেই, তারা সাধারণ ভাষায় তাদের প্রয়োজনীয়তা বর্ণনা করে একটি কার্যকরী স্ট্যাক তৈরি করতে পারে।
এই পদ্ধতিটি কোনো জাদুকরী সমাধান (silver bullet) নয়। অবাস্তব প্রত্যাশা বা নিরাপত্তা সংক্রান্ত উদ্বেগ শনাক্ত করার জন্য Agreement পর্যায়ে একজন অভিজ্ঞ পর্যালোচক প্রয়োজন। এই লুপ ডোমেইন বিশেষজ্ঞের (domain expertise) বিকল্প নয়; এটি কেবল পুনরাবৃত্তিমূলক কাজের (repetitive plumbing work) একটি পুনরায় ব্যবহারযোগ্য প্যাটার্নে রূপান্তর করে।
