किसी सेवा के लिए साइनअप कर रहा एजेंट शायद चालीस सेकंड का उपयोगी काम कर पाता है, फिर एक स्क्रीन आती है जिस पर लिखा होता है हमने आपके ईमेल पर एक कोड भेजा है। उसके बाद सब कुछ उस मशीनरी पर निर्भर करता है जो आमतौर पर एजेंट के पास नहीं होती: एक पता जो मेल स्वीकार करे, यह जानने का तरीका कि मेल आ गया है, और इंसानी आँखों के लिए लिखे गए HTML के घालमेल में से छह अंक निकालने का तरीका।
उस वाक्य में तीन काम छिपे हैं, और उन्हें अलग-अलग देखना ज़रूरी है, क्योंकि ज़्यादातर परेशानी उन्हें गलत क्रम में हल करने से आती है।
1. एक पता जो ज़रूरत पड़ने से पहले मौजूद हो
भोला तरीका है एजेंट को किसी असली मेलबॉक्स से जोड़ देना — ऐप पासवर्ड वाला Gmail अकाउंट, या किसी साझा टीम इनबॉक्स से IMAP कनेक्शन। यह तब तक ठीक चलता है जब तक आपके पास दो एजेंट नहीं हो जाते। फिर वे एक-दूसरे के कोड पढ़ने लगते हैं, और यह विफलता अनिश्चित होती है और डिबग करने में बेहद तकलीफ़देह।
आपको असल में चाहिए हर एजेंट के हर टास्क के लिए एक डिस्पोज़ेबल पता, जो ज़रूरत के पल में बने और बाद में फेंक दिया जाए। इसका मतलब है कि प्रोविज़निंग इतनी सस्ती होनी चाहिए कि उसे इनलाइन किया जा सके — कोई डैशबोर्ड नहीं, कोई API key नहीं, बीच में कोई इंसान नहीं:
INBOX=$(curl -sS -X POST https://api.apumail.com/api/v1/inboxes)
ADDR=$(echo "$INBOX" | jq -r .address)
TOK=$(echo "$INBOX" | jq -r .token)
echo "$ADDR" # vivid-llama-4a2c@apumail.com
उस कॉल पर कोई ऑथेंटिकेशन नहीं। जो टोकन लौटता है वह उसी इनबॉक्स का क्रेडेंशियल है और कुछ नहीं, और यही गुण उसे एजेंट को सौंपना सुरक्षित बनाता है: लीक हुए टोकन का असर-क्षेत्र बस एक डिस्पोज़ेबल इनबॉक्स है।
2. बिना पोलिंग लूप के जानना कि मेल आ गया
यहीं ज़्यादातर घरेलू इम्प्लीमेंटेशन गलती करते हैं। सहज प्रवृत्ति पोल करने की होती है: इनबॉक्स जाँचो, दो सेकंड सोओ, फिर जाँचो। यह आपके लैपटॉप पर चलता है और प्रोडक्शन में बोझ बन जाता है — हर बार जागने पर आप टोकन जला रहे हैं, और एक ऐसे कोड से होड़ कर रहे हैं जो आमतौर पर दस मिनट में एक्सपायर हो जाता है।
लॉन्ग-पोलिंग इसे उलट देती है। एजेंट एक रिक्वेस्ट करता है जो तब तक रुकी रहती है जब तक मेल न आ जाए या टाइमआउट न हो जाए:
curl -sS -H "Authorization: Bearer $TOK" \
"https://api.apumail.com/api/v1/inbox/$ADDR/wait?timeout=120"
एक रिक्वेस्ट। एक बार जागना। कनेक्शन खुला रहता है और जिस पल SMTP लिसनर मैसेज स्वीकार करता है, उसी पल लौट आता है। एजेंट के लिए यह किसी सामान्य सेवा से ज़्यादा मायने रखता है: हर अतिरिक्त पोल एक मॉडल राउंड-ट्रिप है, और मॉडल राउंड-ट्रिप में असली पैसा और असली लेटेंसी लगती है।
3. अंकों को बाहर निकालना
यह वह हिस्सा है जो चुपचाप सबसे ज़्यादा इंजीनियरिंग समय खा जाता है। वेरिफ़िकेशन मेल एक मार्केटिंग उत्पाद होता है — नेस्टेड टेबल, ट्रैकिंग पिक्सेल, तीन span और एक font टैग में लिपटा कोड। इसे LLM को "कोड ढूँढो" कहकर सौंपना लगभग 95% बार काम करता है, जो आपके क्रिटिकल पाथ में एक भयानक आँकड़ा है।
व्यावहारिक तरीका है सर्वर-साइड, सेव के समय, एजेंट के मैसेज देखने से पहले ही निकाल लेना।
apumail मेल स्वीकार होते ही एक्सट्रैक्शन चलाता है और नतीजा मैसेज के otp फ़ील्ड में रख देता है:
{
"messages": [{
"from": "noreply@stripe.com",
"subject": "Your Stripe verification code",
"otp": "482910"
}]
}
एजेंट .messages[0].otp पढ़ता है। कोई पार्सिंग नहीं, कोई प्रॉम्प्ट नहीं, कोई
95% नहीं। पूरा फ़्लो — प्रोविज़न, इंतज़ार, एक्सट्रैक्ट — तीन कॉल है और इसमें मॉडल की कोई भूमिका नहीं,
जिसका मतलब है कि यह कोई कोड हैलुसिनेट नहीं कर सकता।
पूरा फ़्लो
# 1. provision
INBOX=$(curl -sS -X POST https://api.apumail.com/api/v1/inboxes)
ADDR=$(echo "$INBOX" | jq -r .address)
TOK=$(echo "$INBOX" | jq -r .token)
# 2. use $ADDR in the signup form, then block until the mail lands
CODE=$(curl -sS -H "Authorization: Bearer $TOK" \
"https://api.apumail.com/api/v1/inbox/$ADDR/wait?timeout=120" \
| jq -r '.messages[0].otp')
# 3. submit $CODE
echo "$CODE" # 482910
अगर आपका एजेंट MCP बोलता है, तो यही तीन कदम तीन टूल कॉल हैं और आप HTTP को पूरी तरह छोड़ सकते हैं — देखें MCP सर्वर के रूप में टेम्प ईमेल। और अगर आपके एजेंट के सामने ईमेल की जगह SMS कोड की दीवार आई, तो वही wait/extract लेयर फ़ोन नंबरों को भी कवर करती है।