वेब फॉर्मवरील प्रत्येक टेक्स्ट फील्ड भरू शकणारा एक Claude AI agent, तीन इमेज अटॅच करण्याचा प्रयत्न करताना शेवटच्या टप्प्यावर अचानक थांबला, ज्यामुळे Desktop App च्या फाईल-अपलोड हँडलिंगमधील एका न नोंदवलेल्या (undocumented) मर्यादेचा उलगडा झाला. ही त्रुटी महत्त्वाची आहे कारण यामुळे पूर्णपणे वाटणारे 'end-to-end automation' मॅन्युअल कामात रूपांतरित होते, ज्यामुळे डेव्हलपर्सना त्यांचे AI-driven workflows कसे तयार करायचे यावर पुन्हा विचार करण्यास भाग पाडले जाते.
ही समस्या आता का समोर येत आहे
Claude agents तीन वातावरणात (environments) चालतात: a command-line interface (CLI), a Visual Studio Code extension, किंवा standalone Desktop App. CLI मध्ये, agent सेशनमध्ये जोडलेल्या डिरेक्टरीमधून फाईल वाचतो आणि कोणतीही अडचण न येता ती अपलोड करतो. Desktop App मध्ये असे घडत नाही. अगदी agent स्वतःच्या तात्पुरत्या (temporary) फोल्डरमध्ये फाईल लिहून ठेवत असली तरी, ॲप ती अपलोड करण्यास नकार देते. यासाठी ॲप "shared" फाईल्सच्या एका अंतर्गत व्याख्येचा आधार घेते, ज्याचा उल्लेख सार्वजनिक डॉक्युमेंटेशनमध्ये कुठेही आढळत नाही.
ही तफावत तेव्हा समोर आली जेव्हा एका वापरकर्त्याने असे automation तयार केले जे फॉर्म भरते, “save draft” वर क्लिक करते आणि त्यानंतर तीन इमेज अटॅच करण्याचा प्रयत्न करते. टेक्स्ट फील्ड्स अगदी अचूकपणे भरले गेले, परंतु अपलोड स्टेपमध्ये प्रत्येक वेळी एरर (error) येत होता.
डेव्हलपर्सनी काय प्रयत्न केले आहेत
- ॲपद्वारे तयार केलेल्या सेशन फोल्डरमध्ये फाईल्स जोडल्या.
- directory-connect टूलचा वापर केला ज्यामुळे agent ला host फोल्डर दिसू शकेल.
- चॅट विंडोमध्ये थेट इमेज अटॅच केल्या.
- एक मॅन्युअल अपलोड फोल्डर तयार केले आणि फॉर्मला त्याकडे निर्देशित केले.
या सर्व पद्धतींमध्ये तोच रिजेक्शन एरर (rejection error) येत होता. फाईल-पिकर डायलॉग दाखवणारी ब्राउझर विंडो डेस्कटॉप ऑटोमेशनसाठी 'read-only' मोडमध्ये चालते. Agent ला तो डायलॉग दिसतो, परंतु तो त्यामध्ये क्लिक करू शकत नाही किंवा पाथ (path) टाईप करू शकत नाही, त्यामुळे UI-automation युक्त्या अपयशी ठरतात.
एक नाजूक “backdoor”
यशस्वी झालेली एकमेव पद्धत Windows clipboard चा वापर करणारी होती:
- एक PowerShell script लक्ष्य फाईल (target file) clipboard वर कॉपी करते.
- Agent Ctrl + V की (keystroke) पाठवतो.
- ब्राउझर 'paste event' स्वीकारतो आणि फाईल अपलोड करतो.
ही 'hack' पद्धत काम करते, परंतु यामुळे वापरकर्त्याचा clipboard पुसला जातो, ती फक्त Windows पर्यंत मर्यादित आहे आणि Desktop App च्या कोणत्याही अपडेटमुळे ती बिघडू शकते. प्रोडक्शन पाईपलाईन्ससाठी (production pipelines) हा एक शाश्वत उपाय नाही.
या मर्यादेचा खरा अर्थ काय आहे
मुख्य समस्या सॉफ्टवेअरमधील बग (bug) नाही; तर ती एक न नोंदवलेली (undocumented) बाब आहे, जिथे फाईल परमिशन्सना (file permissions) साध्या फाईल-सिस्टम फ्लॅगऐवजी होस्ट ॲप्लिकेशनचा गुणधर्म मानले जाते. CLI मध्ये, agent ला प्रोसेसचा 'read access' वारसा म्हणून मिळतो, त्यामुळे सेशनला दिसणारी कोणतीही फाईल अपलोड केली जाऊ शकते. Desktop App मध्ये, रनटाइम agent च्या फाईल-सिस्टम व्ह्यूला (view) आयसोलेट (isolate) करते, ज्यामुळे केवळ लपलेल्या “shared” निकषांची पूर्तता करणाऱ्या फाईल्सनाच परवानगी मिळते.
ही मर्यादा Desktop App च्या आर्किटेक्चरमध्येच समाविष्ट असल्याने, UI मॅनिप्युलेशन किंवा तात्पुरत्या फोल्डर्सवर अवलंबून असलेल्या पर्यायी उपायांना (workarounds) यश आले नाही.
पुढे जाण्यासाठी विश्वसनीय मार्ग
जर वर्कफ्लोमध्ये फाईल अपलोडची आवश्यकता असेल, तर डेव्हलपर्सकडे तीन विश्वसनीय पर्याय आहेत:
- Agent ला CLI मधून चालवा. हे वातावरण सेशनच्या फाईल-सिस्टम परमिशन्सचा आदर करते आणि अतिरिक्त पायऱ्यांशिवाय फाईल्स अपलोड करते.
- VS Code extension वापरा. हे extension CLI च्या परमिशन्स मॉडेलचे अनुकरण करते, ज्यामुळे editor ला दिसणाऱ्या फाईल्स agent वाचू आणि अपलोड करू शकतात.
- अपलोडची पायरी मानवाकडे सोपवा. एखादा नाजूक उपाय शोधण्यासाठी तासनतास खर्च करण्यापेक्षा दोन मिनिटांचे मॅन्युअल काम करणे अधिक चांगले आहे.
पहिल्या दोन पर्यायांची निवड केल्यास ऑटोमेशन Desktop App च्या बाहेर चालते.
थोडक्यात सांगायचे तर
Claude AI agents मधील फाईल-अपलोड क्षमता सर्व रनटाइम्समध्ये (runtimes) सारखी नसते; ती agent कशा प्रकारे लाँच केला जातो यावर अवलंबून असते. विश्वसनीय ऑटोमेशनसाठी, CLI आणि VS Code extension हेच एकमेव वातावरण मानले पाहिजे जे फाईल-सिस्टम परमिशन्सचा खात्रीशीरपणे आदर करतात. Desktop App वापरताना, मॅन्युअल हँड-ऑफसाठी नियोजन करा किंवा नाजूक 'clipboard hack' स्वीकारा. या फरकाकडे दुर्लक्ष केल्यास एक सुरळीत 'end-to-end script' खर्चिक 'debugging' प्रक्रियेत बदलू शकते.
