১. ভূমিকা

এই কোডল্যাবে, আপনি অ্যান্টিগ্র্যাভিটিতে প্যারালাল মাল্টি-এজেন্ট অর্কেস্ট্রেশন ব্যবহার করে একটি বহুভাষিক কোড কোয়ালিটি অডিটিং এবং স্বয়ংক্রিয় প্রতিকার ব্যবস্থা তৈরি করবেন। একাধিক পৃথক সার্ভিস ডিরেক্টরির প্রচলিত, ম্যানুয়াল এবং রৈখিক পর্যালোচনার পরিবর্তে, আপনি বিভিন্ন ল্যাঙ্গুয়েজ স্ট্যাককে সমান্তরালভাবে পরীক্ষা করার জন্য বিশেষায়িত এআই সাব-এজেন্ট মোতায়েন করবেন।
আপনি প্রজেক্টের বিন্যাস জানার জন্য একজন কোঅর্ডিনেটর এজেন্ট তৈরি করবেন, ইউনিট টেস্টিং চালানোর জন্য সাব-এজেন্টদের পরিচালনা করবেন, একটি অডিট প্ল্যান তৈরি করবেন, নিয়মকানুন মেনে চলা হচ্ছে কিনা তা খতিয়ে দেখবেন, একটি অডিট রিপোর্ট তৈরি করবেন এবং কোডবেসের উচ্চ-অগ্রাধিকার সম্পন্ন কোডিং সমস্যাগুলো স্বয়ংক্রিয়ভাবে রিফ্যাক্টর করবেন।
আপনি যা শিখবেন
- প্রজেক্ট ডিসকভারি: একটি জটিল মাইক্রোসার্ভিসেস আর্কিটেকচার জুড়ে ডিরেক্টরি ম্যাপ করতে এবং প্রোগ্রামিং ল্যাঙ্গুয়েজ শনাক্ত করতে কীভাবে একটি কোঅর্ডিনেটর এজেন্ট ডেপ্লয় করবেন।
- সমন্বিত সমান্তরালতা: কীভাবে স্বাধীন, ভাষা-ভিত্তিক এআই সাবএজেন্টদের মধ্যে একই সাথে কোড অডিট এবং ইউনিট টেস্টিং বন্টন করা যায়।
- সম্পৃক্ত তত্ত্বাবধান: একজন সমন্বয়কারী এজেন্টকে কীভাবে একটি নিরীক্ষা পরিকল্পনা তৈরি করতে এবং তা কার্যকর করার আগে আপনার পর্যালোচনা ও অনুমোদনের জন্য নিরাপদে বিরতি দিতে নির্দেশনা দেবেন।
- স্বয়ংক্রিয় প্রতিকার: উচ্চ-অগ্রাধিকার সম্পন্ন কোডিং এবং কমপ্লায়েন্স সমস্যাগুলো স্বয়ংক্রিয়ভাবে রিফ্যাক্টর ও সমাধান করার জন্য কীভাবে বিশেষায়িত ডেভেলপার সাব-এজেন্টদের মোতায়েন করা যায়।
- ভেরিফিকেশন লুপ: স্বয়ংক্রিয়ভাবে টেস্ট স্যুট পুনরায় চালানোর মাধ্যমে এআই-জেনারেটেড কোড পরিবর্তন যাচাই করার পদ্ধতি, যাতে কোনো রিগ্রেশন যুক্ত না হয় তা নিশ্চিত করা যায়।
আপনার যা যা লাগবে
এই কোডল্যাবটির জন্য আপনার লোকাল মেশিনে নিম্নলিখিত টুলগুলো ইনস্টল করা প্রয়োজন হবে:
- গুগল অ্যান্টিগ্র্যাভিটি
- গিট
- আপনার পরিবেশে নিম্নলিখিত ভাষাগুলির মধ্যে এক বা একাধিক সেট আপ করা আছে: Go, Python, C# / .NET, NodeJS, Java
চলুন শুরু করা যাক!
২. পরিবেশ সেটআপ
প্রথমে, নিশ্চিত করুন যে আপনার Antigravity ইনস্টল করা আছে।
দ্বিতীয়ত, অনলাইন বুটিক (Online Boutique) নামক ক্লাউড মাইক্রোসার্ভিসেস ডেমো অ্যাপ্লিকেশনটি ক্লোন করুন:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
কোডটি দিয়ে Antigravity-তে একটি নতুন প্রজেক্ট তৈরি করুন। Antigravity-তে, বাম দিকে Projects অধীনে Create New Project নির্বাচন করুন:

রিপোজিটরি ফোল্ডারটি নির্বাচন করুন:

আপনি Agent Security Settings জন্য Default মোড বেছে নিতে পারেন এবং প্রজেক্টটির জন্য microservices-demo নামটি ব্যবহার করতে পারেন।
৩. আবিষ্কার
মাইক্রোসার্ভিসেস আর্কিটেকচারে, একটি কোডবেসে সাধারণত একাধিক ফোল্ডার বা রিপোজিটরি এবং প্রোগ্রামিং স্ট্যাক জুড়ে একাধিক সার্ভিস থাকে। অনলাইন বুটিক ডেমো অ্যাপ্লিকেশনটির ক্ষেত্রেও এটি সত্য।
এজেন্টগুলো চালু করার আগে, চলুন প্রজেক্টের বিন্যাসটি জেনে নিই। এই প্রথম ধাপে, আপনি Antigravity ব্যবহার করে একটি কোঅর্ডিনেটর এজেন্ট ডেপ্লয় করবেন, যা src/ অধীনে থাকা বিভিন্ন ভাষার মাইক্রোসার্ভিসগুলো খুঁজে বের করবে এবং পরবর্তী ধাপগুলোতে প্রতিটি মাইক্রোসার্ভিসে কাজ করার জন্য ভাষা-ভিত্তিক সাব-এজেন্টগুলোকে সমন্বয় করবে।
প্রথমে কোঅর্ডিনেটর এজেন্টকে কোডবেসটি অন্বেষণ করতে এবং কোন ডিরেক্টরিতে কোন সার্ভিসগুলো রয়েছে ও সেগুলো কোন ভাষা ব্যবহার করে, তার একটি মানচিত্র তৈরি করতে বলা যাক।
অ্যান্টিগ্র্যাভিটিতে, আপনার আগে তৈরি করা microservices-demo প্রজেক্টে একটি নতুন আলোচনা শুরু করুন। মডেল হিসেবে, আপনি মাঝারি চিন্তন স্তরের সর্বশেষ জেমিনি মডেলটি বেছে নিতে পারেন:

এই প্রম্পটটি চেষ্টা করুন:
Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.
শেষ পর্যন্ত, অ্যান্টিগ্র্যাভিটির একটি চমৎকার পরিসেবা তালিকা এবং তাদের প্রধান ভাষা নিয়ে ফিরে আসা উচিত, যা অনেকটা এইরকম হবে:

৪. ভাষা বাছাই করুন
এখন যেহেতু আপনি কোডবেসের রূপরেখা তৈরি করে ফেলেছেন, আপনাকে সেই ভাষাগুলো বেছে নিতে হবে যেগুলো নিয়ে আপনি কাজ করতে চান। আপনাকে নিশ্চিত করতে হবে যে আপনার নির্বাচিত ভাষাগুলোর জন্য প্রয়োজনীয় কম্পাইলার/টুলগুলো আপনার কাছে আছে (যেমন C#-এর জন্য dotnet টুল, Java-এর জন্য javac , ইত্যাদি)।
একবার আপনি যে ভাষাগুলো নিয়ে কাজ করতে চান তা বেছে নিলে, সেই ভাষার জন্য সংশ্লিষ্ট ইউনিট টেস্টগুলো চালিয়ে বর্তমান কোডবেসের অবস্থা যাচাই করা অত্যন্ত গুরুত্বপূর্ণ।
আপনি প্রতিটি ভাষায় টেস্ট স্যুট চালানোর জন্য বিশেষায়িত, সমান্তরাল সাবএজেন্ট ব্যবহার করতে পারেন। এটি একটি মাল্টি-এজেন্ট ওয়ার্কফ্লোর মূল শক্তিকে তুলে ধরে: পৃথক ভাষা-নির্দিষ্ট ওয়ার্কস্পেসে বিচ্ছিন্ন টেস্টগুলোকে একযোগে চালানো।
আপনার পরিবেশ অনুযায়ী নিম্নলিখিত প্রম্পটটি পরিবর্তন করে চালান:
I have [C#, Python, Go, Java, Node.js] setup locally.
Run the unit tests for services in these languages
in parallel subagents and report back in a clean markdown
on their pass/fail status.
আপনি প্রতিটি ভাষায় একাধিক এজেন্টকে পরীক্ষা চালাতে দেখবেন। প্রতিটি সাবএজেন্ট পর্যালোচনা করতে ভুলবেন না, কারণ তারা নীচে দেখানো অনুযায়ী টুল চালানোর জন্য অনুমতি চাইবে:

একবার সমস্ত সাবএজেন্টের কাজ শেষ হয়ে গেলে, আপনি ইউনিট টেস্টগুলোর উপর নিম্নলিখিতটির মতো একটি সুন্দর রিপোর্ট ফেরত পাবেন:

৫. নিরীক্ষার পরিকল্পনা করুন
পরিকল্পনা
জটিল ওয়ার্কফ্লোতে, পরিকল্পনা ছাড়া কোড পরিবর্তন শুরু করলে দ্বন্দ্ব সৃষ্টি হতে পারে। আমরা কী নিরীক্ষা করতে চাই, তার একটি সুসংগঠিত ও স্বচ্ছ রূপরেখা তৈরি করতে চাই। আপনি কোঅর্ডিনেটর এজেন্টকে কোডের মান যাচাই, এক্সেপশন হ্যান্ডলিং, কোয়েরি হাইজিন চেক ইত্যাদি অন্তর্ভুক্ত করে একটি নিরীক্ষা পরিকল্পনা তৈরি করতে বলবেন।
মানবিক তত্ত্বাবধান (প্রক্রিয়ায় মানুষের অংশগ্রহণ) নিশ্চিত করতে, সমন্বয়কারী পরিকল্পনাটি একটি আর্টিফ্যাক্টে লিখবেন এবং আপনার পর্যালোচনার জন্য অবিলম্বে তা থামিয়ে দেবেন।
একটি নিরীক্ষা পরিকল্পনা তৈরি করতে এই নির্দেশটি ব্যবহার করে দেখুন:
We want to audit these microservices for code quality,
exception handling and database query formatting standards
for the languages I have set up locally. Design an audit plan
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.
আপনি চ্যাটে একটি অডিট প্ল্যান আর্টিফ্যাক্ট দেখতে পাবেন:

পর্যালোচনা
এখন আপনি তৈরি করা অডিট প্ল্যানটি পরীক্ষা করে দেখবেন যে এটি সঠিক ফাইল এবং মানদণ্ডকে লক্ষ্য করছে কিনা। ঐচ্ছিকভাবে, এগিয়ে যাওয়ার অনুমোদন দেওয়ার আগে আপনি নিজস্ব সীমাবদ্ধতা (যেমন ইনলাইন কমেন্ট বা স্টাইলিং গাইড পরীক্ষা করা) যোগ করতে পারেন।
তৈরি হওয়া অডিট প্ল্যানটিতে ক্লিক করুন এবং আপনি বিস্তারিত প্ল্যানটি দেখতে পাবেন:

ঐচ্ছিক : আপনি যদি কোনো পরিবর্তন চান, তাহলে পরিকল্পনাটিতে মন্তব্য যোগ করতে পারেন (যেমন "নিশ্চিত করুন যেন সমস্ত পাবলিক মেথড ভালোভাবে ডকুমেন্ট করা থাকে") এবং পরিকল্পনাটি নিয়ে সন্তুষ্ট না হওয়া পর্যন্ত এটি পরিমার্জন করতে পারেন।
৬. নিরীক্ষা সম্পাদন করুন
কার্যকর করুন
অডিট প্ল্যান অনুমোদিত হলে, চলুন অডিটটি সম্পাদন করা যাক। কোঅর্ডিনেটর এজেন্ট প্রতিটি ল্যাঙ্গুয়েজ স্ট্যাকের জন্য স্বাধীন ও সমান্তরাল সাব-এজেন্ট তৈরি করবে। প্রতিটি এজেন্ট তার নিজস্ব সার্ভিস ফোল্ডারে একযোগে কাজ করে, যা ফাইল কনফ্লিক্ট প্রতিরোধ করে এবং স্ক্যানিং প্রক্রিয়াকে ত্বরান্বিত করে। কোঅর্ডিনেটর এজেন্ট প্রাপ্ত ফলাফলগুলোকে একটি সমন্বিত কোয়ালিটি ড্যাশবোর্ডে একত্রিত করবে।
এরপরে চেষ্টা করার জন্য প্রম্পটটি হলো:
Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit
report artifact, sorted by language and then priority. Include the
file paths, line ranges, snippets, and explanation of why it is a
finding. Stop after writing the report.
আপনার আবার একাধিক এজেন্টের সাথে দেখা করা উচিত:

প্রতিটি সাবএজেন্টকে পর্যবেক্ষণ করুন এবং তাদের অডিট চালানোর জন্য প্রয়োজনীয় অনুমতি দিন। সবশেষে, আপনি একটি অডিট রিপোর্ট আর্টিফ্যাক্ট দেখতে পাবেন:

পর্যালোচনা
অডিট রিপোর্টটি খুললে, আপনি প্রতিটি ভাষার জন্য বিস্তারিত ফলাফলও দেখতে পাবেন। উদাহরণস্বরূপ, এখানে C#-এ cartservice থেকে একটি উচ্চ-অগ্রাধিকারের সমস্যা দেওয়া হলো:

নিরীক্ষার ফলাফলগুলো দেখতে নিরীক্ষা প্রতিবেদনের বাকি অংশটি দেখুন।
৭. প্রতিকার
কোডের গুণগত সমস্যা নির্ণয় করাটা কাজের অর্ধেক মাত্র। এখন, আমরা সমস্যাগুলো সমাধান করতে এজেন্ট ব্যবহার করব। নিজে হাতে কোড লেখার পরিবর্তে, আমরা রিফ্যাক্টরিংয়ের কাজটি ল্যাঙ্গুয়েজ-স্কোপড ডেভেলপার সাব-এজেন্টদের ওপর অর্পণ করতে পারি, যারা সেরা অনুশীলনগুলো মেনে চলার জন্য কোডটি নতুন করে লিখতে পারে।
এটি করার বিভিন্ন উপায় আছে:
- আপনি প্রতিটি ভাষার জন্য একটি করে এজেন্ট তৈরি করতে পারেন এবং সব এজেন্টকে দিয়ে একবারে সমস্ত সমস্যা সমাধান করাতে পারেন। এটি হয়তো কাজ করতে পারে, কিন্তু একই সাথে এর উপর নজর রাখা এবং পর্যালোচনা করাটা বেশ কঠিন হয়ে যেতে পারে।
- আপনি একবারে একটি ভাষার জন্য একটি এজেন্ট তৈরি করতে পারেন এবং সেটিকে সেই ভাষার সমস্যাগুলো সামলাতে দিতে পারেন। এটি আরও সহজবোধ্য হবে, কিন্তু একাধিক ফাইলে একাধিক পরিবর্তন করার জন্য আপনাকে এজেন্টের উপর আস্থা রাখতে হবে।
- আপনি একজন এজেন্টকে দিয়ে একবারে একটি সমস্যা সমাধান করাতে পারেন এবং পরবর্তী সমস্যায় যাওয়ার আগে ফলাফল যাচাই করে নিতে পারেন। এটি একটি অপেক্ষাকৃত রক্ষণশীল পদ্ধতি, তবে এর মাধ্যমে আপনি প্রতিটি পরিবর্তন সম্পর্কে অবগত থাকতে পারবেন।
আমরা নিম্নলিখিত নির্দেশনার সাথে আরও রক্ষণশীল পদ্ধতি #৩ অনুসরণ করব:
Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.
কয়েক সেকেন্ড পর, আপনি দেখবেন এজেন্টটি আপনার নির্বাচিত ভাষায় সর্বোচ্চ অগ্রাধিকারের কাজটি করছে এবং সমাধান করে দিচ্ছে।
সবশেষে, আপনি একটি ওয়াকথ্রু আর্টিফ্যাক্টও পেতে পারেন, যা আপনাকে দেখাবে এজেন্ট কী পরিবর্তন করেছে:

ঐচ্ছিক: এই পর্যায়ে, আপনি এজেন্টকে বাস্তবায়নটি পরিবর্তন করতে বলতে পারেন, অথবা যদি আপনি পরিবর্তনগুলিতে সন্তুষ্ট হন, তবে পরিবর্তনগুলি অন্তর্ভুক্ত করার জন্য একটি নতুন ইউনিট টেস্ট যোগ করতে এজেন্টকে বলতে পারেন।
৮. যাচাইকরণ
সফটওয়্যার ডেভেলপমেন্টে, কোনো সমাধান যাচাই না করা পর্যন্ত তা সম্পূর্ণ হয় না। এই চূড়ান্ত ধাপে, কোডের পরিবর্তনগুলো কোনো রিগ্রেশন তৈরি করেনি তা নিশ্চিত করতে আমরা এজেন্টকে টেস্ট স্যুটটি চালাতে বলতে পারি এবং সমস্যাটি সম্পূর্ণরূপে সমাধান হয়েছে কিনা তা যাচাই করার জন্য অডিট স্ক্যানারটি পুনরায় চালাতে পারি।
এই ধাপে পরিকল্পনা, স্ক্যানিং, সংশোধন এবং যাচাইয়ের সম্পূর্ণ স্বয়ংক্রিয় ফিডব্যাক চক্রটি দেখানো হয়েছে।
নিম্নলিখিত প্রম্পটটি চালান:
Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it
is resolved, mark the issue as resolved in the audit report.
আপনি দেখবেন একটি টেস্ট রানার সাবএজেন্ট চালু হয়ে টেস্টগুলো চালাচ্ছে এবং তারপর একটি অডিটর সাবএজেন্ট অডিট রিপোর্টটি আপডেট করছে। সবশেষে, আপনি দেখবেন অডিট রিপোর্টটি সর্বশেষ স্ট্যাটাস দিয়ে আপডেট হয়েছে:

একটা সমস্যার সমাধান হলো! এখন আপনি বাকি সমস্যাগুলো খতিয়ে দেখতে পারেন, তবে এবার হয়তো একটু কম রক্ষণশীল পদ্ধতি অবলম্বন করতে পারেন, যেখানে আপনি পর্যালোচনার আগে এজেন্টদের আরও বেশি কাজ করতে দেবেন।
৯. অভিনন্দন
অভিনন্দন! আপনি এইমাত্র অ্যান্টিগ্র্যাভিটি ব্যবহার করে একটি জটিল বহুভাষিক কোড পর্যালোচনা এবং স্বয়ংক্রিয় প্রতিকার কর্মপ্রবাহ সম্পন্ন করেছেন।
অ্যান্টিগ্র্যাভিটির মাল্টি-এজেন্ট আর্কিটেকচারকে কাজে লাগিয়ে, আপনি শুধু স্ট্যাটিক চেকগুলোকেই স্বয়ংক্রিয় করেননি, বরং একটি স্বয়ংক্রিয় কোয়ালিটি-অ্যাসুরেন্স টিমও পরিচালনা করেছেন। যখন বিশেষায়িত ল্যাঙ্গুয়েজ এজেন্টগুলো একই সাথে ভাষা-নির্দিষ্ট সমস্যাগুলো নিয়ে কাজ করছিল, তখন আপনার কোঅর্ডিনেটর এজেন্ট একটি কেন্দ্রীভূত পরিকল্পনা ও প্রতিবেদন সংকলন করে এবং পরবর্তীতে একটি নির্দিষ্ট কোড রিফ্যাক্টর পরিচালনা করে।
মূল বিষয়বস্তু
- সমন্বিত সমান্তরালতা : আপনি শিখেছেন কীভাবে রৈখিক পর্যালোচনার প্রতিবন্ধকতা এড়িয়ে, সমান্তরালভাবে চলমান স্বাধীন ও ভাষা-নির্দিষ্ট সাবএজেন্টগুলোর মধ্যে অডিট এবং পরীক্ষাগুলো বন্টন করতে হয়।
- তত্ত্বাবধান : কার্যকর করার পূর্বে প্রণীত নিরীক্ষা পরিকল্পনা পর্যালোচনা ও টীকা সংযোজনের মাধ্যমে আপনি স্বায়ত্তশাসিত কার্যক্রমের ওপর তত্ত্বাবধান বজায় রেখেছিলেন।
- স্বয়ংক্রিয় প্রতিকার ও যাচাইকরণ : আপনারা দেখেছেন কিভাবে এআই এজেন্টরা শুধু কোডের মানের অসঙ্গতি নির্ণয়ই করতে পারে না, বরং কোড রিফ্যাক্টর করতে এবং স্থানীয় টেস্ট স্যুটের সাথে নিজেদের করা পরিবর্তনগুলো যাচাইও করতে পারে।