একটি Claude AI এজেন্ট যা একটি ওয়েব ফর্মের প্রতিটি টেক্সট ফিল্ড পূরণ করতে পারত, সেটি শেষ ধাপে তিনটি ছবি সংযুক্ত করার চেষ্টা করার সময় হঠাৎ থেমে যায়, যা Desktop App-এর ফাইল-আপলোড হ্যান্ডলিংয়ে একটি নথিবদ্ধহীন (undocumented) সীমাবদ্ধতা প্রকাশ করে। এই ব্যর্থতাটি গুরুত্বপূর্ণ কারণ এটি একটি আপাতদৃষ্টিতে সম্পূর্ণ এন্ড-টু-এন্ড অটোমেশনকে একটি ম্যানুয়াল হ্যান্ড-অফ-এ পরিণত করে, যা ডেভেলপারদের তাদের AI-চালিত ওয়ার্কফ্লো তৈরির পদ্ধতি নিয়ে নতুন করে ভাবতে বাধ্য করে।
কেন এই সমস্যাটি এখন দেখা দিচ্ছে
Claude এজেন্ট তিনটি পরিবেশে চলে: একটি কমান্ড-লাইন ইন্টারফেস (CLI), একটি Visual Studio Code এক্সটেনশন, অথবা স্ট্যান্ডঅ্যালোন Desktop App। CLI-তে, এজেন্ট সেশনে যুক্ত একটি ডিরেক্টরি থেকে ফাইল পড়ে এবং কোনো সমস্যা ছাড়াই তা আপলোড করে। Desktop App-এ সেই আচরণটি কাজ করে না। এমনকি এজেন্ট যখন তার নিজস্ব টেম্পোরারি ফোল্ডারে একটি ফাইল লেখে, তখনও অ্যাপটি আপলোড প্রত্যাখ্যান করে; এর কারণ হিসেবে তারা "shared" ফাইলের একটি অভ্যন্তরীণ সংজ্ঞার কথা উল্লেখ করে যা পাবলিক ডকস-এ কখনও দেখা যায় না।
এই অসঙ্গতিটি তখন সামনে আসে যখন একজন ব্যবহারকারী এমন একটি অটোমেশন তৈরি করেন যা একটি ফর্ম পূরণ করে, “save draft” ক্লিক করে এবং তারপর তিনটি ছবি সংযুক্ত করার চেষ্টা করে। টেক্সট ফিল্ডগুলো নিখুঁতভাবে পূরণ হয়েছিল, কিন্তু আপলোড ধাপে প্রতিবার একটি এরর (error) দেখাচ্ছিল।
ডেভেলপাররা যা যা চেষ্টা করেছেন
- অ্যাপটি যে সেশন ফোল্ডার তৈরি করে সেখানে ফাইলগুলো যোগ করেছেন।
- ডিরেক্টরি-কানেক্ট টুল ব্যবহার করেছেন যা এজেন্টকে একটি হোস্ট ফোল্ডার দেখতে সাহায্য করে।
- চ্যাট উইন্ডোতে সরাসরি ছবিগুলো সংযুক্ত করেছেন।
- একটি ম্যানুয়াল আপলোড ফোল্ডার তৈরি করেছেন এবং ফর্মটিকে সেদিকে নির্দেশ করেছেন।
এই সমস্ত পদ্ধতিতেই একই রিজেকশন এরর (rejection error) দেখা দিয়েছে। ডেস্কটপ অটোমেশনের জন্য ফাইল-পিকার ডায়ালগ প্রদর্শনকারী ব্রাউজার উইন্ডোটি 'read-only' মোডে চলে। এজেন্ট ডায়ালগটি দেখতে পেলেও তার ভেতরে ক্লিক করতে বা কোনো পাথ (path) টাইপ করতে পারে না, তাই UI-অটোমেশন ট্রিকগুলো ব্যর্থ হয়।
একটি ভঙ্গুর “backdoor”
একমাত্র পদ্ধতিটি যা সফল হয়েছে তা হলো Windows ক্লিপবোর্ড ব্যবহার করা:
- একটি PowerShell স্ক্রিপ্ট টার্গেট ফাইলটি ক্লিপবোর্ডে কপি করে।
- এজেন্ট একটি Ctrl + V কি-স্ট্রোক পাঠায়।
- ব্রাউজার পেস্ট ইভেন্টটি গ্রহণ করে এবং ফাইলটি আপলোড করে।
এই হ্যাকটি কাজ করলেও এটি ব্যবহারকারীর ক্লিপবোর্ড মুছে ফেলে, শুধুমাত্র Windows-এর মধ্যে সীমাবদ্ধ এবং Desktop App-এর যেকোনো আপডেটের সাথে এটি ভেঙে যেতে পারে। প্রোডাকশন পাইপলাইনের জন্য এটি কোনো টেকসই সমাধান নয়।
এই সীমাবদ্ধতার প্রকৃত অর্থ কী
মূল সমস্যাটি কোনো সফটওয়্যার বাগ নয়; এটি একটি নথিবদ্ধহীন দিক যেখানে ফাইল পারমিশনকে একটি সাধারণ ফাইল-সিস্টেম ফ্ল্যাগ হিসেবে না দেখে হোস্ট অ্যাপ্লিকেশনের একটি বৈশিষ্ট্য হিসেবে বিবেচনা করা হয়। CLI-তে, এজেন্ট প্রসেসের রিড অ্যাক্সেস (read access) উত্তরাধিকারসূত্রে পায়, তাই সেশন যে ফাইলগুলো দেখতে পারে সেগুলো আপলোড করা সম্ভব। Desktop App-এ, রানটাইম এজেন্টের ফাইল-সিস্টেম ভিউকে আইসোলেট (isolate) করে রাখে, ফলে শুধুমাত্র সেই ফাইলগুলোই অনুমোদিত হয় যা লুকানো “shared” মানদণ্ড পূরণ করে।
যেহেতু এই বিধিনিষেধটি Desktop App-এর আর্কিটেকচারের মধ্যেই গেঁথে দেওয়া হয়েছে, তাই UI ম্যানিপুলেশন বা টেম্পোরারি ফোল্ডারের ওপর নির্ভরশীল বিকল্প পদ্ধতিগুলো সফল হয়নি।
নির্ভরযোগ্য ভবিষ্যৎ পথ
যদি কোনো ওয়ার্কফ্লোতে ফাইল আপলোডের প্রয়োজন হয়, তবে ডেভেলপারদের কাছে তিনটি নির্ভরযোগ্য বিকল্প রয়েছে:
- CLI থেকে এজেন্ট চালান। এই পরিবেশটি সেশনের ফাইল-সিস্টেম পারমিশনকে সম্মান করে এবং অতিরিক্ত পদক্ষেপ ছাড়াই আপলোড করে।
- VS Code এক্সটেনশন ব্যবহার করুন। এই এক্সটেনশনটি CLI-এর পারমিশন মডেলকে অনুসরণ করে, যা এজেন্টকে এডিটর দেখতে পারে এমন ফাইল পড়তে এবং আপলোড করতে দেয়।
- আপলোড ধাপটি মানুষের জন্য রেখে দিন। একটি ভঙ্গুর বিকল্প পদ্ধতি তৈরির পেছনে ঘণ্টার পর ঘণ্টা ব্যয় করার চেয়ে দুই মিনিটের একটি দ্রুত ম্যানুয়াল কাজ অনেক বেশি কার্যকর।
প্রথম দুটি বিকল্প বেছে নিলে অটোমেশনটি Desktop App-এর বাইরে চলে।
সারকথা
Claude AI এজেন্টগুলোর ফাইল-আপলোড ক্ষমতা সব রানটাইমে একরকম নয়; এটি নির্ভর করে এজেন্টটি কীভাবে চালু করা হচ্ছে তার ওপর। নির্ভরযোগ্য অটোমেশনের জন্য, CLI এবং VS Code এক্সটেনশনকে একমাত্র পরিবেশ হিসেবে বিবেচনা করুন যা ফাইল-সিস্টেম পারমিশনকে নির্ভরযোগ্যভাবে মেনে চলে। Desktop App ব্যবহার করার সময়, ম্যানুয়াল হ্যান্ড-অফ-এর পরিকল্পনা করুন অথবা একটি ভঙ্গুর ক্লিপবোর্ড হ্যাক মেনে নিন। এই পার্থক্যটি উপেক্ষা করলে একটি মসৃণ এন্ড-টু-এন্ড স্ক্রিপ্ট একটি ব্যয়বহুল ডিবাগিং অনুশীলনে পরিণত হতে পারে।
