Snapshot
AI एजेंट वेबपेज को संरचित Snapshot की तरह कैसे पढ़ता है और @N refs कैसे काम करते हैं।
Snapshot वह तरीका है जिससे AI एजेंट वेबपेज पढ़ता है। यह मौजूदा पेज को संक्षिप्त, संरचित टेक्स्ट में बदलता है और बटन, इनपुट और लिंक जैसे इंटरैक्टिव एलिमेंट को अस्थायी नंबर (@1, @2, ...) देता है। एजेंट पूरा raw HTML पढ़ने या स्क्रीन निर्देशांकों का अनुमान लगाने के बजाय इस Snapshot से अगला कदम तय करता है।
यह क्या हल करता है
किसी व्यक्ति के लिए वेबपेज एक दृश्य इंटरफ़ेस है। एजेंट के लिए यह दसियों हज़ार टोकन का HTML, स्क्रिप्ट, स्टाइल और बदलती स्थिति है। इसे सीधे LLM में डालने पर दो समस्याएँ आती हैं:
- टोकन की लागत बहुत बढ़ जाती है। एक सामान्य एडमिन पेज 30 हजार टोकन का हो सकता है और हर कार्रवाई से पहले उसे फिर पढ़ना पड़ता है।
- मुख्य जानकारी दब जाती है। DOM का बड़ा हिस्सा—स्टाइल, स्क्रिप्ट और छिपे हुए नोड—निर्णय से संबंधित नहीं होता और केवल शोर बढ़ाता है।
Snapshot ब्राउज़र के accessibility tree—यानी स्क्रीन रीडर के लिए रखे जाने वाले सिमेंटिक दृश्य—पर आधारित है और पेज को कुछ सौ टोकन तक संक्षिप्त कर देता है:
- पेज का शीर्षक और मौजूदा URL।
- दिखाई देने वाला टेक्स्ट और मुख्य संरचना।
- क्लिक, इनपुट या चयन किए जा सकने वाले एलिमेंट, उनकी भूमिका और नाम सहित।
- हर इंटरैक्टिव एलिमेंट के लिए अस्थायी
@N।
इतना काफ़ी है कि एजेंट तय कर सके कि कौन-सा बटन दबाना है और किस फ़ील्ड में क्या भरना है—raw HTML और स्क्रीन निर्देशांकों के बिना।
@N refs कैसे काम करते हैं
Snapshot में हर इंटरैक्टिव एलिमेंट को एक अस्थायी नंबर मिलता है:
@1 [input] "खोजें"
@2 [button] "जमा करें"
@3 [link] "अगला पन्ना"
एजेंट इन्हीं नंबरों के सहारे कार्रवाई करता है, जैसे await click('@2')।
@N केवल मौजूदा Snapshot के लिए मान्य होता है। पेज बदलने पर—नेविगेशन, रीफ़्रेश, डायलॉग, फ़ॉर्म सबमिशन, टैब बदलने या डायनेमिक re-render के बाद—पुराने नंबर शायद मान्य न रहें। सुरक्षित तरीका है कि हर बदलाव के बाद नया Snapshot लें और पुराने @N पर निर्भर न रहें।
अगर किसी एलिमेंट को कई चरणों में स्थिर रूप से संदर्भित करना हो, तो Snapshot आउटपुट में मिले loc=... को स्थिर selector की तरह इस्तेमाल करें या सीधे CSS selector लिखें। देखें ego-browser।
Snapshot कब दिखाई देता है
अधिकांश समय आपको Snapshot से सीधे काम नहीं करना पड़ता—एजेंट उसे खुद पढ़ता है। दो स्थितियों में यह दिखाई दे सकता है:
- एजेंट "नया Snapshot" या "पेज Snapshot" कहे—इसका मतलब है कि पेज बदल गया है और एजेंट मौजूदा स्थिति फिर पढ़ रहा है।
- कार्य के नतीजे में प्रमाण के तौर पर Snapshot का कोई हिस्सा शामिल हो।
एजेंट को कार्य कैसे बताएँ
Snapshot एजेंट को पेज स्पष्ट रूप से दिखाता है, लेकिन कार्य की सीमाएँ आपको तय करनी होती हैं। एक अच्छे निर्देश में ये बातें होती हैं:
- लक्ष्य पेज या साइट।
- क्या पढ़ना, भरना, क्लिक करना या डाउनलोड करना है।
- क्या नहीं करना है—जैसे मिटाना, प्रकाशित करना, भुगतान करना या ईमेल भेजना।
- CAPTCHA, भुगतान या अनुमति माँगे जाने पर रुकना है या नहीं।
- अपेक्षित परिणाम का स्वरूप—तालिका, सार, स्क्रीनशॉट या स्थानीय फ़ाइल पथ।
उदाहरण:
मेरी GitHub Notifications खोलो, मेरी समीक्षा का इंतज़ार कर रहे PR छाँटो और repository का नाम, शीर्षक व लिंक सूचीबद्ध करो।
किसी सूचना को archive या read mark मत करना।
ऑर्डर बैकएंड खोलो, कल के ऑर्डर फ़िल्टर करो और CSV डाउनलोड करो।
लॉगिन सत्यापन या एक्सपोर्ट की पुष्टि माँगी जाए तो रुक जाना, मुझे बताना और फ़ाइल कहाँ सहेजी गई है यह भी बताना।
एजेंट के नतीजे की पुष्टि
कार्य पूरा होने पर इन संकेतों से जाँच सकते हैं कि एजेंट ने सही काम किया या नहीं:
- क्या उसने देखे गए पेजों और मुख्य कार्रवाइयों का ज़िक्र किया?
- क्या नतीजे में सत्यापन योग्य जानकारी—शीर्षक, ID, लिंक, राशि और समय—मौजूद है?
- डाउनलोड वाले कार्य में क्या स्थानीय फ़ाइल पथ दिया गया?
- बदलाव या सबमिशन वाले कार्य में क्या वह अंतिम पुष्टि से पहले रुका?
- क्या संबंधित पेज Space में अब भी खुला है ताकि आप उसे जाँच सकें?
अगर नतीजा सही न लगे तो एजेंट को पिछले उत्तर के आधार पर अनुमान लगाने के बजाय मौजूदा पेज का नया Snapshot लेने को कहें।
आम सवाल
एजेंट किसी ref को अमान्य क्यों बताता है?
पिछले Snapshot के बाद पेज बदल चुका है। एजेंट को नया Snapshot लेने को कहें।
क्या Snapshot सब कुछ पढ़ सकता है?
ज़रूरी नहीं। स्क्रीन से बाहर की सामग्री, चित्रों में लिखा टेक्स्ट, जटिल canvas या प्रतिबंधित cross-origin iframes Snapshot में पूरी तरह दिखाई नहीं दे सकते। ऐसे मामलों में एजेंट Screenshot, टेक्स्ट extraction या मानवीय पुष्टि का सहारा ले सकता है।
क्या Snapshot डेटा बदलता है?
नहीं। Snapshot केवल पेज की संरचना पढ़ता है। पेज की स्थिति बदलने वाली कार्रवाइयाँ बाद में होती हैं—जैसे क्लिक, फ़ील्ड भरना, सबमिट, अपलोड या delete करना।
क्या मुझे @1, @2 याद रखने हैं?
नहीं। इन्हें "मौजूदा पेज के अस्थायी एलिमेंट नंबर" समझें। एजेंट इनका उपयोग करता है; आपको केवल उद्देश्य और सीमाएँ स्पष्ट करनी हैं।