ম্যাট শুমার তার কম্পিউটারের সামনে বসে তার AI এজেন্টকে একটি সাধারণ নির্দেশ দিলেন: ফাইলগুলো পরিষ্কার করো। তিনি শত শত বার কোনো সমস্যা ছাড়াই এই রুটিনটি চালিয়েছেন। এবার, একটি পাথ রেজোলিউশন (path resolution) ত্রুটি একটি সাধারণ ঘরোয়া কাজকে এক ভয়াবহ বিপর্যয়ে পরিণত করল। বছরের পর বছর ধরে জমানো কোড, ডকুমেন্ট এবং ছবি মুহূর্তের মধ্যে হারিয়ে গেল।
এটি কোনো কাল্পনিক ঝুঁকি নয়। এটি একজন প্রকৃত ডেভেলপারের সাথে তার আসল মেশিনে ঘটেছে, এবং সংশ্লিষ্ট এজেন্টটির ট্র্যাক রেকর্ড ব্যর্থ হওয়ার মুহূর্ত পর্যন্ত একদম নিখুঁত ছিল। যে AI এজেন্টগুলো ফাইল লিখতে পারে, টার্মিনাল কমান্ড কার্যকর করতে পারে এবং সাব-এজেন্ট (subagents) তৈরি করতে পারে, সেগুলো এখন IDE, চ্যাট ইন্টারফেস এবং অটোমেশন পাইপলাইনে যুক্ত হয়ে গেছে। অপারেটিং সিস্টেমে সরাসরি অ্যাক্সেসের জন্য তাদের ওপর আস্থা রাখা হয়, আর এই আস্থাই মূলত বিপদের কারণ। শুমারের মেশিনটি যে ধরনের ত্রুটির কারণে ধ্বংস হয়েছিল, টুল অ্যাক্সেস থাকা প্রতিটি এজেন্টের মধ্যেই সেই একই ধরনের ব্যর্থতার সম্ভাবনা রয়েছে। তারা কেন ব্যর্থ হয় এবং কীভাবে তাদের সঠিকভাবে নিয়ন্ত্রণে রাখা যায়, তা বোঝা এখন এই টুলগুলো ব্যবহারকারীদের জন্য একটি মৌলিক বেঁচে থাকার দক্ষতা (survival skill)।
যখন প্যাটার্ন ম্যাচিং ফাইলসিস্টেমের মুখোমুখি হয়
AI এজেন্টরা চিন্তা করে না। তারা প্যাটার্ন ম্যাচ করে। আপনি যখন বলেন "ফাইলগুলো পরিষ্কার করো," মডেলটি তার ট্রেনিং মেমোরিতে হাজার হাজার অনুরূপ ইন্টারঅ্যাকশন খোঁজে এবং এমন একটি কমান্ড তৈরি করে যা পরিসংখ্যানগতভাবে সেই প্যাটার্নের সাথে মিলে যায়। যদি নির্দেশটি হয় একটি বিল্ড ডিরেক্টরিতে থাকা টেম্পোরারি ফাইলগুলো মুছে ফেলা, তবে এটি rm -rf /tmp/build-cache/*-এর মতো একটি কমান্ড তৈরি করতে পারে। এটি যুক্তিসঙ্গত মনে হয় কারণ এটি মডেলটি আগে দেখা প্রতিটি ক্লিনিং কমান্ডের মতোই দেখতে।
কিন্তু যখন $HOME-এর মতো একটি ভেরিয়েবল রেজলভ (resolve) করতে ব্যর্থ হয়, তখন কী ঘটে? একজন মানুষ একটি খালি স্ট্রিং বা অপ্রত্যাশিত পাথ দেখলে থেমে যান এবং প্রশ্ন করেন। কিন্তু একটি এজেন্ট দেখে যে প্যাটার্নটি এখনও মিলে যাচ্ছে এবং এন্টার চাপ দেয়। শুমারের ক্ষেত্রে, একটি কমান্ড যা একটি নির্দিষ্ট ফোল্ডার পরিষ্কার করার কথা ছিল, সেটি পরিবর্তে ইউজার ডিরেক্টরির রুট (root) টার্গেট করে ফেলে। এজেন্টটি পাথটি কেন অদ্ভুত দেখাচ্ছে তা নিয়ে ভাবার জন্য থামেনি। এটি টার্গেটটি যাচাই করেনি। এটি কমান্ডটি কার্যকর করেছে কারণ এর কার্যকারিতা "পরিষ্কার করা" প্যাটার্নের সাথে মিলে গিয়েছিল।
এটি লার্জ ল্যাঙ্গুয়েজ মডেল এবং সিস্টেম অ্যাডমিনিস্ট্রেশনের মধ্যে মূল অমিল। প্রকৃত যুক্তিনির্ভরতা বা রিজনিংয়ের (reasoning) জন্য প্রেক্ষাপট বোঝা, অনুমান যাচাই করা এবং এজ কেস (edge cases) মোকাবিলা করা প্রয়োজন। অন্যদিকে, প্যাটার্ন ম্যাচিংয়ের কাজ হলো এমন টেক্সট তৈরি করা যা পরিসংখ্যানগতভাবে একটি সঠিক উত্তরের মতো দেখায়। যখন সেই উত্তরটি একটি রিকার্সিভ ডিলিট ফ্ল্যাগ (recursive delete flag) যুক্ত টার্মিনাল কমান্ড হয়, তখন কেবল পরিসংখ্যানগত মিল যথেষ্ট নয়।
সাব-এজেন্টের অন্ধবিন্দু (Blind Spot)
অনেক আধুনিক এজেন্ট ফ্রেমওয়ার্ক একটি মেইন অর্কেস্ট্রেটর (main orchestrator) ব্যবহার করে যা সাব-এজেন্টদের কাছে কাজ হস্তান্তর করে। প্যারেন্ট এজেন্টের কাছে কঠোর নির্দেশ থাকতে পারে: হোম ডিরেক্টরি কখনোই স্পর্শ করবে না, মুছে ফেলার আগে সবসময় জিজ্ঞাসা করবে, একটি অডিট লগ বজায় রাখবে। এরপর এটি "পুরানো লগগুলো পরিষ্কার করো"-এর মতো একটি সংকীর্ণ প্রম্পট দিয়ে একটি ওয়ার্কার (worker) তৈরি করে।
সেই সাব-এজেন্টটি প্রায়ই একটি বিচ্ছিন্ন পরিবেশে (silo) কাজ করে। এটি প্যারেন্টের টুলগুলো উত্তরাধিকারসূত্রে পায় কিন্তু তার সেফটি কালচার বা নিরাপত্তা সংস্কৃতি পায় না। কন্টেক্সট উইন্ডো ম্যানেজমেন্টের সময় মেইন এজেন্টকে সতর্ক রাখার যে সীমাবদ্ধতাগুলো ছিল, সেগুলো সংকুচিত হয়ে যায়, সারসংক্ষেপ করা হয় অথবা সম্পূর্ণ বাদ পড়ে যায়। সাব-এজেন্টটি একটি কাজ এবং একটি টুলকিট পায়, কিন্তু সেই সতর্কতামূলক গাইডরেল (guardrails) তৈরির জন্য যে ঘণ্টার পর ঘণ্টা সতর্ক প্রম্পটিং করা হয়েছিল, তা পায় না।
এর ফলে এক ধরণের প্রাতিষ্ঠানিক বিস্মৃতি (organizational amnesia) তৈরি হয়। প্যারেন্ট এজেন্টের সিস্টেম প্রম্পটে থাকা একটি নিরাপত্তা নিয়ম সাব-এজেন্টের কাছে অস্তিত্বহীন মনে হতে পারে। এটি বিশেষভাবে বিপজ্জনক কারণ সাব-এজেন্টদের সাধারণত এমন পুনরাবৃত্তিমূলক এবং কম গুরুত্বপূর্ণ কাজ দেওয়া হয় যা অপারেটররা নিবিড়ভাবে পর্যবেক্ষণ করা বন্ধ করে দেয়। প্রোডাকশন ডেটাবেস মুছে ফেলা না হওয়া পর্যন্ত কেউ লগ ক্লিনআপের কাজটির দিকে নজর দেয় না।
সিদ্ধান্ত নেওয়ার দ্রুততার বিপদ
AI এজেন্টগুলোর ডিজাইনে সর্বোচ্চ স্বায়ত্তশাসনের (autonomy) দিকে একটি প্রবণতা দেখা যাচ্ছে। এই দৃষ্টিভঙ্গিতে একটি আদর্শ এজেন্ট তুচ্ছ প্রশ্ন দিয়ে ব্যবহারকারীকে বিরক্ত করে না। এটি দৃঢ়ভাবে কাজ করে, টুল কলগুলোকে চেইন আকারে সাজায় এবং মাল্টি-স্টেপ ওয়ার্কফ্লো সম্পন্ন করে।
সেই দৃঢ়তা বা দ্রুত সিদ্ধান্ত নেওয়ার ক্ষমতাই এই সিস্টেমগুলোকে অনিরাপদ করে তোলে। একটি মডেল যাকে "দৃঢ়ভাবে কাজ করতে" প্রোগ্রাম করা হয়েছে, সে তার কাজ পুনরায় যাচাই করে না। কোনো কমান্ড ধ্বংসাত্মক মনে হলেও সে থামে না। সে দ্বিধাকে একটি ফিচার হিসেবে নয়, বরং একটি বাগ (bug) হিসেবে গণ্য করে। যখন মডেলটি সঠিক সিদ্ধান্ত নেয়, তখন এটি জাদুকরী মনে হয়। কিন্তু যখন এটি ভুল করে, তখন এটি অপ্রতিরোধ্য ও ভয়াবহ মনে হয়। একটি ভুল কমান্ডকে ধীর করার মতো কোনো প্রাকৃতিক বাধা (friction) এই সিস্টেমে নেই।
Shumer-এর এজেন্ট শত শত বার সঠিকভাবে কাজ করেছে। সেই ট্র্যাক রেকর্ডটি নিরাপত্তার একটি মিথ্যা ধারণা তৈরি করেছিল। কিন্তু শত শত ট্রায়ালে নির্ভরযোগ্যতা কোনো কাজের না যদি একশ একতম ট্রায়ালটি একটি পরিসংখ্যানগত ব্যতিক্রম হয় যেখানে প্যাটার্নটি ভেঙে যায়। সিস্টেমের নিরাপত্তার ক্ষেত্রে, অতীতের পারফরম্যান্স কেবল তখনই গুরুত্বপূর্ণ যদি ব্যর্থতার ধরনটি ধীরগতির এবং দৃশ্যমান হয়। AI এজেন্টের ব্যর্থতাগুলো আকস্মিক, নিঃশব্দ এবং সম্পূর্ণ। “এটি শত শত বার কাজ করেছে” কোনো নিরাপত্তার রেকর্ড নয়। এটি মূলত ভাগ্যের একটি বর্ণনা যা শেষ পর্যন্ত ফুরিয়ে যায়।
কীভাবে প্রকৃত সুরক্ষা তৈরি করতে হয়
যদি মডেলটি সুরক্ষা স্তর না হয়
