কোডিং এজেন্টরা Swift ভালো লিখতে পারে, কিন্তু তারা এটি শেষ করতে পারে না

আমি বাস্তব Swift এবং Xcode টাস্কের ওপর AI কোডিং এজেন্টদের পরীক্ষা করতে কয়েক মাস ব্যয় করেছি। আমি কোনো সাধারণ ডেমো ব্যবহার করিনি। আমি তাদের বিল্ড টার্গেট এবং টেস্টসহ বাস্তব কাজ দিয়েছিলাম।

প্রথম ড্রাফটটি সাধারণত ঠিকঠাক থাকে। একটি সক্ষম মডেল এমন কোড লেখে যা দেখতে সঠিক মনে হয়। টাইপগুলো মিলে যায়। ভিউগুলো অর্থবহ হয়। যদি শুধু Swift লেখাটাই একমাত্র সমস্যা হতো, তবে এই টুলগুলো সম্পূর্ণ হয়ে যেত।

আসল সমস্যাটি প্রথম ড্রাফটের পরে ঘটে। এটি হলো এমন কোড যা দেখতে সম্পন্ন মনে হয় এবং এমন কোড যা আসলে সঠিক—এই দুটির মধ্যকার ব্যবধান।

Claude Code বা Codex-এর মতো আধুনিক টুলগুলো কম্পাইল এরর (compile errors) ভালোভাবে সামলাতে পারে। তারা আপনাকে এমন কোড দেয় না যা বিল্ড হতে ব্যর্থ হয়। আসল ব্যর্থতাগুলো হলো সেগুলো যা কম্পাইলার দেখতে পায় না।

এই ব্যর্থতাগুলো আমার সময় নষ্ট করে:

• ইনটেন্ট মিসম্যাচ (Intent mismatch): কোডটি কম্পাইল হয় এবং টেস্টগুলো পাস করে। তবে, আচরণটি ভুল হয়। এজেন্ট আপনার প্রকৃত লক্ষ্যের পরিবর্তে একটি পাস হওয়া টেস্টের সবুজ সংকেত অনুসরণ করে। ইনটেন্ট বা উদ্দেশ্য যাচাই করার কোনো উপায় তার নেই।

• কনকারেন্সি রেস (Concurrency races): কোডটি ক্লিনভাবে বিল্ড হয় কিন্তু এতে ডেটা রেস (data races) থাকে। এগুলো শুধুমাত্র রানটাইমে দেখা দেয়। এজেন্ট একটি গ্রিন বিল্ড দেখে পরবর্তী ধাপে চলে যায়। এগুলো ঠিক করতে সাধারণত রিডিজাইন প্রয়োজন হয়, যা করতে এজেন্ট ব্যর্থ হয়।

• রিগ্রেশন লুপ (Regression loops): এজেন্ট একটি বাগ ঠিক করে কিন্তু অন্য একটি ভেঙে ফেলে। দ্বিতীয় বাগটি ঠিক করার সময়, এটি প্রথম সমাধানটি বাতিল করে দেয়। এটি এমন একটি লুপে প্রবেশ করে যেখানে এটি দুটি ত্রুটিপূর্ণ অবস্থার মধ্যে দোদুল্যমান থাকে। আগে কী ব্যর্থ হয়েছিল সে সম্পর্কে এর কোনো স্মৃতি নেই।

• দুর্বল আর্কিটেকচার (Poor architecture): এজেন্ট এমন কোড লেখে যা ফ্রেমওয়ার্কের সাথে সংঘর্ষ তৈরি করে। এটি আপনার অ্যাপের গঠনকে উপেক্ষা করে। এটি একটি অস্থায়ী স্ক্রিপ্টের জন্য কাজ করলেও একটি বাস্তব কোডবেসে ব্যর্থ হয়।

এগুলো ভাষার সমস্যা নয়। মডেলটি Swift জানে। এটি সেই বিষয়গুলো মিস করে যা কম্পাইলার দেখতে পায় না। ফলাফল আপনার উদ্দেশ্যের সাথে মিলেছে কি না বা গঠনটি পেশাদার কি না, তা এটি জানে না।

এটি খরচকে টোকেন থেকে মনোযোগে (attention) সরিয়ে দেয়। যে এজেন্টের প্রতিটি কয়েক ধাপ পর পর আপনাকে নজর রাখতে হয়, তা আপনার কাজ কমিয়ে দেয়নি। বরং এটি কোড লেখাকে তদারকি করার কাজে রূপান্তরিত করেছে।

আমি মডেলের চারপাশের লুপ পরিবর্তন করে আমার ফলাফল উন্নত করছি। আমি এজেন্ট কী পরীক্ষা করে এবং কী মনে রাখে তার ওপর গুরুত্ব দিচ্ছি।

এটি কি আপনার অভিজ্ঞতার সাথে মিলে যায়? আপনি যখন Apple প্ল্যাটফর্মে এজেন্ট চালান, তখন এটি কোথায় ভেঙে পড়ে? এটি কি ইনটেন্ট মিসম্যাচ, রানটাইম রেস, নাকি অন্য কিছু?

Source: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3

Optional learning community: https://t.me/GyaanSetuAi