कंप्यूटर-यूज़ एजेंट बनाना
कुछ एजेंट स्क्रीन के ज़रिए काम करते हैं: वे स्क्रीनशॉट देखते हैं, फिर क्लिक और टाइप करते हैं। इस लूप को समझें, यह क्यों sandbox में ही चलना चाहिए, और किन जगहों पर यूज़र से मंज़ूरी लेनी चाहिए।
60 सेकंड में
कंप्यूटर-यूज़ एजेंट बनाना
कुछ एजेंट स्क्रीन के ज़रिए काम करते हैं: वे स्क्रीनशॉट देखते हैं, फिर क्लिक और टाइप करते हैं। इस लूप को समझें, यह क्यों sandbox में ही चलना चाहिए, और किन जगहों पर यूज़र से मंज़ूरी…
स्क्रीनशॉट-ऐक्शन लूप
- 1
स्क्रीनशॉट लें
स्क्रीन (या ब्राउज़र पेज) का स्क्रीनशॉट लें और इसे लक्ष्य (goal) के साथ मॉडल को भेजें। - 2
फैसला करें
मॉडल एक ऐक्शन वापस भेजता है: (x, y) पर क्लिक करें, टेक्स्ट टाइप करें, कोई की (key) दबाएं, स्क्रॉल करें, या काम पूरा हुआ। - 3
जांचें
आपका कोड नियमों के आधार पर ऐक्शन की जांच करता है: क्या साइट की अनुमति है? क्या मंज़ूरी चाहिए? क्या यह तय सीमाओं के अंदर है? - 4
कार्रवाई करें
आपका कोड sandboxed ब्राउज़र या वर्चुअल मशीन में वह ऐक्शन लेता है। - 5
दोहराएं
एक नया स्क्रीनशॉट लें और लूप दोहराएं, स्टेप लिमिट और टाइम लिमिट के साथ।
RISKY_WORDS = ("pay", "submit", "delete", "send", "confirm", "transfer")
ALLOWED_SITES = ("https://example-test-portal.local",)
def take_screenshot() -> bytes: return b"" # placeholder: sandbox screen
def current_url() -> str: return ALLOWED_SITES[0] # placeholder
def call_model(goal: str, image: bytes) -> dict: # placeholder: your provider
return {"action": "done", "summary": "demo"}
def perform(action: dict) -> None: pass # placeholder: sandbox input
def ask_human(question: str) -> bool:
return input(question + " [y/N] ").strip().lower() == "y"
def run(goal: str, max_steps: int = 30) -> str:
for step in range(max_steps):
if not current_url().startswith(ALLOWED_SITES):
return "Stopped: left the allowed sites"
action = call_model(goal, take_screenshot())
if action["action"] == "done":
return action.get("summary", "done")
label = str(action.get("target_label", "")).lower()
if any(word in label for word in RISKY_WORDS):
if not ask_human("Agent wants to: " + str(action) + ". Allow?"):
return "Stopped: person declined a risky action"
perform(action)
return "Stopped: step limit reached"
print(run("Download last month's electricity bill as PDF"))इसे sandbox में चलाएं
- एक अलग वर्चुअल मशीन या कंटेनर का इस्तेमाल बिल्कुल नए ब्राउज़र के साथ करें, अपने खुद के लैपटॉप सेशन का नहीं।
- उस ब्राउज़र में कोई सेव किए गए पासवर्ड, पर्सनल ईमेल, या लॉग-इन किया हुआ बैंकिंग अकाउंट नहीं होना चाहिए।
- नेटवर्क एक्सेस को सिर्फ़ उन्हीं साइट्स तक सीमित रखें जिनकी काम के लिए ज़रूरत है।
- जहां मुमकिन हो, टेस्ट या सीमित अकाउंट से लॉग इन करें। अगर असली लॉगिन की ज़रूरत है, तो वह हिस्सा इंसान को खुद करने दें।
- हर काम के बाद मशीन को रीसेट करें ताकि पिछली कोई भी चीज़ बाकी न रहे।
मंज़ूरी कब मांगनी चाहिए
| ऐक्शन | मंज़ूरी चाहिए? | क्यों |
|---|---|---|
| स्क्रॉल करना, पढ़ना, मेन्यू पर क्लिक करना | आमतौर पर नहीं | बदलना आसान है और जोखिम कम है। |
| सर्च बॉक्स भरना | आमतौर पर नहीं | जोखिम कम है, जब तक कि यह पर्सनल डेटा न भेज रहा हो। |
| फॉर्म में पर्सनल डेटा डालना | हाँ | पर्सनल डेटा यूज़र के कंट्रोल से बाहर जाता है। |
| सबमिट करना, पेमेंट करना, भेजना, डिलीट करना, शर्तें स्वीकार करना | हमेशा | इन्हें वापस पहले जैसा करना मुश्किल या नामुमकिन होता है। |
| पासवर्ड या कार्ड नंबर डालना | एजेंट को यह कभी न करने दें | यह हिस्सा इंसान को खुद करना चाहिए। |
इसे बेहतर कैसे बनाएं
- स्क्रीनशॉट और स्क्रीन कोऑर्डिनेट्स का मेल खाना ज़रूरी है। अगर आप भेजने से पहले इमेज का साइज़ बदलते हैं, तो मॉडल के कोऑर्डिनेट्स को भी वापस उसी हिसाब से स्केल करें।
- अगला स्क्रीनशॉट लेने से पहले पेज लोड होने का इंतज़ार करें; कई गलतियां बस टाइमिंग की वजह से होती हैं।
- जहां कोई वेबसाइट API या accessibility tree देती है, वहां पिक्सल की तुलना में टेक्स्ट-बेस्ड पेज रीडिंग अक्सर ज़्यादा भरोसेमंद और सस्ती होती है।
- धीमी गति की उम्मीद रखें: हर स्टेप के लिए एक स्क्रीनशॉट और एक मॉडल कॉल की ज़रूरत होती है। कंप्यूटर-यूज़ का इस्तेमाल उन्हीं कामों के लिए है जिनका कोई बेहतर इंटरफ़ेस नहीं है।
और देखें और पढ़ें
लैब
कंप्यूटर-यूज़ एजेंट के लिए एक सुरक्षा डिज़ाइन: sandbox सेटअप, allow-list, कन्फर्मेशन टेबल और स्टॉप रूल्स।
समस्या
कागज़ पर एक ऐसा कंप्यूटर-यूज़ एजेंट डिज़ाइन करें जो बिजली विभाग की वेबसाइट से परिवार का महीने का बिल डाउनलोड करता है और उसे एक फ़ोल्डर में सेव करता है।
- sandbox के बारे में बताएं: यह कहां चलता है, ब्राउज़र में क्या-क्या है, यह किन साइट्स तक पहुंच सकता है।
- वे स्टेप्स लिखें जो कोई इंसान लेता है। हर एक को मार्क करें: एजेंट अकेले, मंज़ूरी के साथ एजेंट या सिर्फ़ इंसान।
- तीन स्टॉप रूल्स लिखें (उदाहरण के लिए: अनुमति वाली साइट से बाहर जाना, स्टेप लिमिट, डेटा मांगने वाला कोई अनपेक्षित पॉप-अप)।
- समझाएं कि एजेंट के पासवर्ड देखे बिना लॉगिन कैसे होता है।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1बिजली विभाग की साइट एक पॉप-अप दिखाती है: "अपना बिल डाउनलोड करने के लिए बकाया राशि का भुगतान अभी करें"। आपके एजेंट को क्या करना चाहिए, और क्यों?दिखाएं
रुक जाना चाहिए और काम इंसान को सौंप देना चाहिए। काम बिल डाउनलोड करने का था, पेमेंट करने का नहीं। पॉप-अप असली हो सकता है या कोई धोखा, लेकिन दोनों ही मामलों में यह तय लक्ष्य से बाहर का ऐसा ऐक्शन मांगता है जिसमें पैसे जुड़े हैं। एजेंट को बताना चाहिए कि उसने क्या देखा और फैसला इंसान पर छोड़ देना चाहिए।
Q2रिस्की ऐक्शन को पकड़ने के लिए बटन के लेबल पर "pay" या "submit" जैसी कीवर्ड जांच ही काफ़ी क्यों नहीं है?दिखाएं
लेबल अलग-अलग हो सकते हैं ("Proceed", "Continue", बिना टेक्स्ट वाले आइकॉन, अन्य भाषाएं), और कोई पेज जानबूझकर किसी रिस्की बटन को हानिरहित नाम दे सकता है। कई कंट्रोल्स को मिलाकर इस्तेमाल करें: साइट की allow-list, किसी भी फॉर्म सबमिशन या डेटा डालने के लिए मंज़ूरी, sandbox में नेटवर्क सीमाएं, कम लिमिट वाले टेस्ट अकाउंट्स, और अनिश्चित स्टेप्स को मॉडल द्वारा खुद फ़्लैग करना। यह मानकर चलें कि कोई भी अकेला चेक कुछ न कुछ मिस ज़रूर करेगा।
अक्सर पूछे जाने वाले सवाल
इसकी जगह सिर्फ़ एक ब्राउज़र ऑटोमेशन स्क्रिप्ट का इस्तेमाल क्यों न करें?
अगर स्टेप्स तय हैं और पेज शायद ही कभी बदलता है, तो एक साधारण स्क्रिप्ट (जैसे कि किसी ब्राउज़र ऑटोमेशन लाइब्रेरी के साथ) सस्ती, तेज़ और ज़्यादा भरोसेमंद होती है। कंप्यूटर-यूज़ एजेंट तब काम आते हैं जब पेज बदलते हैं, लेआउट अलग होते हैं, या काम में समझ-बूझ की ज़रूरत होती है। कई टीमें तय हिस्सों के लिए स्क्रिप्ट का और सिर्फ़ ज़रूरत की जगह पर एजेंट का इस्तेमाल करती हैं।
क्या एजेंट CAPTCHA हल कर सकता है?
उसे कोशिश नहीं करनी चाहिए। CAPTCHA ऑटोमेटेड इस्तेमाल को रोकने के लिए होते हैं, और उन्हें बायपास करना किसी साइट की शर्तों का उल्लंघन हो सकता है। एजेंट को रुक जाना चाहिए और काम इंसान को सौंप देना चाहिए।
क्या अपने खुद के लैपटॉप पर कंप्यूटर-यूज़ एजेंट चलाना सुरक्षित है?
यह जोखिम भरा है। आपके लैपटॉप में आपके लॉगिन, फ़ाइलें और मैसेज होते हैं, और एजेंट को चकमा देकर उनका इस्तेमाल कराया जा सकता है। एक अलग वर्चुअल मशीन या कंटेनर का इस्तेमाल करें जिसमें साफ़-सुथरा ब्राउज़र और सीमित नेटवर्क हो।
मैं कंप्यूटर-यूज़ एजेंट को डिबग कैसे करूं?
हर स्क्रीनशॉट को मॉडल द्वारा चुने गए ऐक्शन और उसके दिए गए कारण के साथ सेव करें। इन फ्रेम्स को दोबारा देखने से आमतौर पर समस्या तुरंत समझ आ जाती है: पेज अभी भी लोड हो रहा था, कोई पॉप-अप आ गया, या क्लिक कुछ पिक्सल इधर-उधर हो गया।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।