এখনকার ভাবনা · ছয় পর্বে
6টির মধ্যে পর্ব 4 AI-কে নিয়ে ডেভেলপমেন্টের গোটা ব্যবস্থা গড়া
একসঙ্গে অনেক এজেন্ট চালাতে গেলে সাদামাটা চুক্তি দরকার
একাধিক এজেন্ট কাজে লাগে তখনই, যখন কার কাজ কতটা, কার দায়িত্ব কোথায়, কে কার ওপর নির্ভর করছে, কী বদলাবে না, কী প্রমাণ লাগবে আর কখন থামবে—এসব স্পষ্ট থাকে।
কার দায়িত্ব কী না বলে কাজ সমান্তরাল করলে বিভ্রান্তিটাই শুধু তাড়াতাড়ি বাড়ে।
বেশি এজেন্ট মানেই পরিকল্পনা নয়
কতগুলো এজেন্ট চলছে, সেটা দিয়ে ব্যবস্থার পরিণতি মাপতে ইচ্ছে হতে পারে। একটা কাজে লাগলে একসঙ্গে পাঁচটা পাঁচ গুণ কাজে লাগবে—এমন মনে হয়। আসল রিপোজিটরি ওই অঙ্ক মানে না। ফিচার একই route, schema, component, design token, test আর অনুমান ভাগ করে। পরিকল্পনায় সম্পর্কগুলো ধরা থাক বা না থাক, একসঙ্গে কাজ সেগুলোর প্রভাব বাড়াবেই।
যখন কাজকে আলাদা করে দেখে মেনে নেওয়া যায় এমন ফলাফলে ভাগ করা যায়, তখন parallel agent ব্যবহার করি। খোঁজখবর, ইমপ্লিমেন্টেশন, পরীক্ষার পরিকল্পনা, লেখার কাজ আর প্রমাণ জোগাড় প্রায়ই পাশাপাশি চলতে পারে। কিন্তু দুটো বদলই যদি একই মূল তথ্য নতুন করে ঠিক করতে যায়, সাধারণত পারে না।
ক্ষমতাটা শুধু আরও কাজ শুরু করে দেওয়া নয়। দায়িত্ব এতটা স্পষ্ট করে বলা, যাতে এক জন এগোতে গিয়ে চুপচাপ অন্যের পায়ের নিচের জমি বদলে না দেন।
একই route-এ দুটো কাজের ধাক্কা
পরিচয় বাদ দেওয়া একটি routing অনুশীলনে এক এজেন্টকে নতুন feature route যোগ করতে বলা হয়েছিল। আর একজন shared navigation আর fallback-এর আচরণ গোছাচ্ছিল। আলাদা করে দুটো বদলই নিজের পরীক্ষা পাস করল। একসঙ্গে করার পর route দুবার register হল, আর নতুন fallback-এর ক্রমে একটা deep link ভুল শাখায় চলে গেল।
কেউ অযৌক্তিক কিছু করেনি। দুজনকেই একই সমন্বয়ের জায়গা বদলানোর অনুমতি দেওয়া হয়েছিল, কিন্তু অন্য কাজটা চলছে তা বলা হয়নি। ভুলটা দুই কাজের চুক্তিতে, আলাদা কোনও ইমপ্লিমেন্টেশনের ভেতরে নয়।
এখানে agent work contract কাজে লাগাই। উদ্দেশ্য, দরকারি ইনপুট, কোন জায়গা বদলানো যাবে আর কোনটা রক্ষিত, নির্ভরতা, অক্ষুণ্ণ শর্ত, গ্রহণের প্রমাণ, কাজ ফেরত দেওয়ার ধরন আর থামার নিয়ম থাকে। কোন shared source পড়া যাবে কিন্তু নতুন করে সংজ্ঞা দেওয়া যাবে না, সেটাও। মালিকানা বাদ দিয়ে ফিচার বোঝানো লম্বা প্রম্পটের চেয়ে ছোট একটা চুক্তি বেশি গোলমাল বাঁচায়।
যা অটোমেট করি
রিপোজিটরিতে যথেষ্ট প্রমাণ থাকলে নির্ভরতা খোঁজা আর কাজ ভাগ করা অটোমেট করি। একাধিক কাজে লাগবে এমন ফাইল, route, schema আর component চেনা যায়। কে কার ওপর নির্ভর করছে তার ছবি তৈরি, shared জায়গার দায়িত্ব রাখা, বিরোধের কাজ ক্রমে সাজানো, আর সত্যিই স্বাধীন কাজ একসঙ্গে পাঠানো যায়।
এজেন্ট গোছানোভাবে জানাতে পারে: কী অনুমান যোগ করল, কোন ফাইল বদলাল, কী পরীক্ষা করল, কোন চাহিদা দেখল, নতুন কী নির্ভরতা পেল। রক্ষিত জায়গায় পৌঁছলে বা না মেটা প্রোডাক্টের সিদ্ধান্তের ওপর কাজ আটকে থাকলে থামবে। নিজের ক্ষমতা বাড়িয়ে না নিয়ে বিরোধটা ফেরত দেবে।
কাজগুলো ফেরার পর অটোমেশন প্রমাণ জুড়তে, একসঙ্গে পরীক্ষা চালাতে, অনুমান মিলিয়ে দেখতে আর একই জায়গায় বদল ধরা দিতে পারে। নিজের পরীক্ষা পাস করা কাজে লাগে। কিন্তু integration-এর সময় গোটা প্রোডাক্ট একসঙ্গে কী করছে, সেটাও দেখতে হবে।
যে সিদ্ধান্ত মানুষেরই থাকবে
প্রোডাক্টের হিসাবে কাজের এই ভাগটা ঠিক হল কি না মানুষ ঠিক করবেন। ফাইলের সীমানা আর দায়িত্বের সীমানা সব সময় এক নয়। আলাদা component ছুঁয়েও দুটো কাজ একই user workflow, permission rule বা state transition বদলাতে পারে।
একাধিক জায়গায় প্রভাব ফেলে এমন বিষয়ের দায়িত্ব কোন কাজ নেবে, আর কখন parallelism কমাতে হবে, সেটাও মানুষের সিদ্ধান্ত। route-এর চুক্তি, shared state model বা component API এখনও তৈরি হচ্ছে হলে আগে সিদ্ধান্তটা শেষ করা দ্রুত হতে পারে। নড়তে থাকা অনুমান ধরে কয়েকটা এজেন্টকে বানাতে দেওয়ার চেয়ে।
শেষ রিভিউতে মিলিত অভিজ্ঞতা দেখতে হবে। ব্যবহারকারীর পথটা গোছানো থাকল? এক বদল অন্য কাজের প্রমাণ নষ্ট করল? প্রতিটা diff আলাদা করে যুক্তিযুক্ত দেখালেও shared abstraction কি আরও ঘোলাটে হল? এগুলো গোটা ব্যবস্থার প্রশ্ন, শুধু merge-এর নয়।
এগোনোর আগে কিছু সমন্বয় মেনে নিই
চুক্তি বানাতে বাড়তি কাজ লাগে। ছোট, স্বাধীন কাজে হালকা scope আর গ্রহণের পরীক্ষা যথেষ্ট হতে পারে। শক্ত করে জড়ানো কাজে বিস্তারিত চুক্তি লিখে দুটোকে স্বাধীন বলা ভুল হতে পারে। তার চেয়ে নির্ভরতা মেনে ক্রমে করা ভালো।
কিছু কাজ পরপর হওয়ায় আমার আপত্তি নেই। লক্ষ্য যত বেশি সম্ভব কাজ একসঙ্গে চালানো নয়। দায়িত্ব বা প্রমাণ না হারিয়ে যতটা স্বাধীনতা নিরাপদে দেওয়া যায়, ততটাই। কখনও একটা সিদ্ধান্ত স্থির হলে তবেই কয়েকটা ইমপ্লিমেন্টেশনের রাস্তা খুলবে।
তাই বড় হতে পারে এমন agent workflow নাটকীয় ছবিটার চেয়ে শান্ত। কাজের নাম, সীমানা, handoff আর থামার শর্ত থাকে। একই তথ্যের মূল উৎসের দায়িত্ব থাকে। বিরোধ আগেই চোখে পড়ে। চুক্তিগুলো এতটা সাদামাটা আর স্পষ্ট থাকে বলেই এজেন্ট দ্রুত চলতে পারে।
পরের লেখায় যান
AI-কে নিয়ে ডেভেলপমেন্টের গোটা ব্যবস্থা গড়া
6টির মধ্যে পর্ব 4