← ब्लॉग

फ़ील्ड नोट

बाहर जाइए। एजेंट अब भी काम कर रहा है।

आपके एजेंट को ज़िंदा फ़ोन ने कभी नहीं रखा था। सर्वर रखता है। यह मान लेने पर बाहर बिताई एक दोपहर आपसे कुछ नहीं छीनती — आप निकलते हैं, काम चलता रहता है, और आपको सिर्फ़ वही सवाल टोकता है जिसका जवाब सचमुच चाहिए।

आपकी अपनी मशीन पर चार सेशन। इनमें से तीन को इससे कोई फ़र्क नहीं पड़ता कि आप कहाँ हैं। चौथा ही जेब से फ़ोन निकालने की अकेली वजह है।

काम खत्म हो जाता है, चाहे बिल्ड हुआ हो या नहीं। Pau hana — कामकाजी दिन का अंत — अपने ही समय पर आता है, और आम जवाब यही होता है कि उसे अनदेखा कर दिया जाए: लैपटॉप मेज़ पर खुला रहने दो, आधे मन से प्रोग्रेस बार देखो, और पूरी शाम एक ऐसी प्रक्रिया को दे दो जिसे इसमें कहीं भी आपकी ज़रूरत नहीं।

यह सौदा तभी समझ आता है जब काम उसी मशीन पर हो रहा हो जिसे आप साथ लिए घूम रहे हैं। आमतौर पर ऐसा नहीं है। एजेंट सर्वर पर चलती एक प्रक्रिया है, उसी सर्वर की डिस्क पर फ़ाइलें बदलती है, उसी सर्वर के टेस्ट चलाती है। आपका फ़ोन उस पर खुली एक खिड़की भर है। खिड़की बंद कीजिए, कमरा फिर भी वहीं है।

टिकाऊ परत सर्वर है

Claude Code या Codex को tmux, herdr या Zellij के अंदर शुरू कीजिए और सेशन सर्वर का हो जाता है, आपके कनेक्शन का नहीं। सिग्नल एक डंडी पर आ जाए, आप किसी लावा ट्यूब में घुस जाएँ, दो घंटे फ़ोन रख दें — एजेंट पढ़ता, संपादन करता और टेस्ट चलाता रहता है, क्योंकि उसका कुछ भी कभी आपसे बँधा ही नहीं था।

यही पूरा खेल है, और इस पर सटीक होना ज़रूरी है, क्योंकि श्रेय ग़लत हिस्से को दे देना आसान है। ऐप उस प्रक्रिया को थामे हुए नहीं है। दूसरे छोर का मल्टिप्लेक्सर थामे हुए है। Mobile SSH का काम इतना है कि साफ़-सुथरे ढंग से निकले और साफ़-सुथरे ढंग से लौट आए।

आप बिजली की आपूर्ति नहीं हैं। वैसा बर्ताव करना बंद कीजिए।

जाँचते रहिए, पहरा मत दीजिए

घंटे भर चलने वाले एजेंट को किसी व्यक्ति की ज़रूरत मुश्किल से नब्बे सेकंड पड़ती है। दिक्कत इंतज़ार कभी नहीं थी; दिक्कत यह न जानना है कि वे नब्बे सेकंड कब आएँगे, और यही लोगों को ऐसी स्क्रीन के सामने बैठाए रखता है जिसके पास कहने को कुछ नहीं।

Agent Alerts इसी का जवाब हैं। पहचान जानबूझकर भोली रखी गई है और इसीलिए भरोसेमंद है: टर्मिनल की घंटी, OSC 9 या OSC 777 सूचना, और वह एजेंट hook जो आप सर्वर पर एक बार लगा देते हैं। यह आपके आउटपुट को पढ़कर मंशा का अंदाज़ा नहीं लगाता, और संवेदनशीलता का कोई डायल भी नहीं है — यह वही बताता है जो दूसरे छोर के प्रोग्राम ने सचमुच घोषित किया।

तो जब तक कोई असली सवाल न हो, फ़ोन जेब में ही रहता है। फिर वह कंपता है, आप प्रॉम्प्ट पढ़ते हैं, जवाब पर टैप करते हैं, और उसे वापस रख देते हैं। पूरा लेन-देन इतना ही है, और यह समुद्र तट से, पगडंडी के मुहाने से, या shave ice की कतार से — कहीं से भी चलता है।

बाहर निकलने से पहले

  1. उसे मल्टिप्लेक्सर के अंदर शुरू करें

    एजेंट को tmux, herdr या Zellij के अंदर चलाएँ ताकि सेशन आपके कनेक्शन पर निर्भर रहने के बजाय उसके बिना भी टिका रहे।

  2. एजेंट hook लगाएँ

    प्रति सर्वर एक बार, ऐप के भीतर से। यह एक छोटी shell स्क्रिप्ट है जिसे कोई भी एजेंट बुला सकता है — न किसी विक्रेता का इंटीग्रेशन, न किसी एक CLI से बँधी।

  3. एक अलर्ट आते हुए देख लें

    उस पर भरोसा करने से पहले एक प्रॉम्प्ट चलाकर पक्का करें कि फ़ोन कंपता है। जिस अलर्ट को आपने कभी काम करते नहीं देखा, वह योजना नहीं है।

  4. उसे एक पड़ाव दें

    ऐसा काम जो कहीं ठीक जगह जाकर रुके, खुले-अंत वाले काम से बेहतर है, क्योंकि आप उसे न देखने का फ़ैसला कर रहे हैं।

ऐसा काम जिसे अकेला छोड़ा जा सके AGENTS.md पढ़ो, फिर फेल हो रहे handler टेस्ट ठीक करो। संपादन से पहले diff देखो, केंद्रित टेस्ट चलाओ, और पास होते ही रुक जाओ — commit मत करो।

जो द्वीप भी ठीक नहीं कर सकता

दो ईमानदार सीमाएँ, क्योंकि सिर्फ़ खूबियाँ गिनाने वाला लेख विज्ञापन होता है।

आपके चले जाने पर क्या बचता है
जब फ़ोन जेब में चला जाता हैचलता रहता है?
सर्वर पर चल रही एजेंट प्रक्रियाtmux, herdr या Zellij के अधीन ✓ हाँ
फ़ाइलें, diff और टेस्ट आउटपुटसर्वर की डिस्क पर ✓ हाँ
सेशन में आपकी जगहलौटने पर दोबारा attach ✓ हाँ
Android पर कनेक्शनforeground service थामे रखती है ✓ हाँ
iOS पर कनेक्शनपृष्ठभूमि में थोड़ा समय — फिर दोबारा कनेक्शन — नहीं
ऐसा अलर्ट जिसे पहुँचाने के लिए सिग्नल ही न होसक्रिय कनेक्शन चाहिए; पहुँचने की गारंटी नहीं है — नहीं
हर पंक्ति में एजेंट चलता रहता है। बदलता सिर्फ़ यह है कि आपका फ़ोन वह खिड़की खुली रखे हुए था या नहीं।

प्लेटफ़ॉर्म का यह अंतर असली है और इसकी योजना बनाकर चलना ठीक रहता है। Android पर ऐप के पृष्ठभूमि में चले जाने पर एक foreground service कनेक्शन थामे रखती है — वह चलती हुई सूचना ही सेशन है। iOS ऐप को पृष्ठभूमि में केवल थोड़ा समय देता है; निलंबित होने के बाद आपके लौटने पर यह दोबारा जुड़ता है और आपके मल्टिप्लेक्सर से फिर जुड़ जाता है। अलर्ट के लिए कनेक्शन का सक्रिय होना ज़रूरी है। दोनों ही हाल में सर्वर पर चल रहा एजेंट कभी रुका नहीं, और बात यही है। बंद सिर्फ़ खिड़की हुई थी।

Aloha लापरवाही का बहाना नहीं है

ढंग से निकलना एक छोटा अनुशासन है। जिसे आप दो घंटे बिना निगरानी नहीं चलने देना चाहेंगे, उसे दरवाज़े से बाहर निकलते हुए शुरू मत कीजिए — किसी migration के बीच खड़ा एजेंट दूरी से बेहतर नहीं हो जाता। उसे ऐसा काम दीजिए जिसका पड़ाव स्वाभाविक हो, संपादन से पहले निरीक्षण करने को कहिए, और लौटने पर diff को ही वह चीज़ बनने दीजिए जिसकी आप समीक्षा करते हैं।

और सूचना के साथ भी उतनी ही सावधानी बरतिए जितनी pager के साथ बरतते। अगर हर चीज़ अलर्ट भेजे, तो कोई अलर्ट नहीं भेजता। Hook उन्हीं स्थितियों पर चलता है जिनके लिए किसी व्यक्ति को टोकना बनता है; उसे वैसा ही रहने दीजिए और कंपन का मतलब बना रहेगा।

बिल्ड को दर्शक नहीं चाहिए। जाइए और कहीं होकर आइए।