8 जून से 9 जून के बीच, तीन लोगों ने, जो शायद ही कभी एक ही निबंध लिखते हों, एक ही निबंध लिखा। [एडी उस्मानी](https://x.com/addyosmani/status/2064127981161959567), Google क्लाउड में AI के निदेशक, ने "लूप इंजीनियरिंग" प्रकाशित की, जो सिस्टम का एक वर्गीकरण है जो कोडिंग एजेंटों को संकेत देता है ताकि आपको ऐसा करने की आवश्यकता न पड़े। [मैट वैन हॉर्न](https://x.com/mvanhorn/status/2063865685558903149) ने "डब्ल्यूटीएफ इज़ ए लूप?" प्रकाशित किया, जो रेडिट, एक्स, यूट्यूब और हैकर न्यूज़ पर एक शोध स्वीप है, जिसमें 2022 रिएक्ट पेपर से लेकर आज लोगों द्वारा चलाए जाने वाले ऑर्केस्ट्रेशन लूप्स तक के विचार का पता लगाया गया है। और एंथ्रोपिक के तकनीकी स्टाफ के एक सदस्य, [लांस मार्टिन](https://x.com/RLanceMartin/status/2064397389189071163) ने सीधे संकेत देने के बजाय लूप डिजाइन करके फ्रंटियर मॉडल से अधिकतम लाभ प्राप्त करने के लिए दो पैटर्न "फेबल 5 के साथ डिजाइनिंग लूप" प्रकाशित किए।

तीनों एक ही बदलाव पर अभिसरण करते हैं: प्रॉम्प्टिंग उन डिज़ाइनिंग लूपों को रास्ता दे रही है जो आपके लिए एजेंटों को प्रॉम्प्ट करते हैं। और तीनों एक ही घटक का नाम लेते हैं जो सबसे अधिक मायने रखता है। उस्मानी ने पांच निर्माण खंडों को सूचीबद्ध किया, फिर एक छठा जोड़ा और इसे अपने टुकड़े में सबसे मजबूत वाक्य दिया: "राज्य फ़ाइल पूरी चीज़ की रीढ़ है।" वैन हॉर्न का तर्क है कि लूप की वर्तमान पीढ़ी वास्तव में एक संरचनात्मक कारण से नई है: "गिट-समर्थित स्थिति और क्रैश रिकवरी के साथ स्थायित्व स्पष्ट हो गया है।" मार्टिन ने मेमोरी को "एक बाहरी लूप जो पूरे सत्र में फैला हुआ है" के रूप में फ्रेम किया है।

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

## संक्षेप में लूप क्या है

वैन हॉर्न की परिभाषा सबसे साफ है: एक लूप क्रॉन है और शरीर में एक निर्णय निर्माता है। क्रॉन जॉब एक ​​निश्चित स्क्रिप्ट चलाता है। एक लूप एक मॉडल चलाता है जो वर्तमान स्थिति को देखता है, निर्णय लेता है कि क्या करना है, क्या करता है, जाँचता है कि क्या यह काम करता है, और निर्णय लेता है कि इसे जारी रखना है या नहीं। उन्हें ढेर करें, एक लूप को दूसरों को भेजने दें, और आपके पास वह चीज़ है जो बोरिस चेर्नी कहते हैं जब वह कहते हैं कि उनका काम लूप लिखना है।

उस लूप के अंदर का मॉडल डिज़ाइन द्वारा रन के बीच सब कुछ भूल जाता है। प्रसंग खिड़कियाँ समाप्त. सत्र पुनः प्रारंभ. इसलिए सिस्टम में कुछ न कुछ भूलना होगा। यह कुछ ऐसा है जिसे लूप यह तय करने के लिए पढ़ता है कि आगे क्या करना है और जो हुआ उसे रिकॉर्ड करने के लिए लिखता है। यह रीढ़ है, और उस्मानी का इसे ऐसा कहना सही है।

## सब्सट्रेट पंट

यहां तीनों पदों पर स्पाइन उम्मीदवारों की पूरी सूची है: एक मार्कडाउन फ़ाइल, एक लीनियर बोर्ड, गिट के लिए प्रतिबद्ध राज्य फ़ाइलें, और सत्रों में साझा की गई एक माउंटेड फ़ाइल सिस्टम। उस्मानी पहले दो की पेशकश करते हैं। वैन हॉर्न तीसरे का दस्तावेजीकरण करता है, जिसे स्टीव येग्गे का गैस टाउन बीस से तीस क्लाउड उदाहरणों के समन्वय के लिए उपयोग करता है। मार्टिन चौथे, क्लाउड मैनेज्ड एजेंट्स की मेमोरी सुविधा का उपयोग करता है।

ये सभी दृढ़ता का समाधान करते हैं। बाइट्स पुनरारंभ से बचे रहते हैं। उनमें से कोई भी सत्यनिष्ठा का समाधान नहीं करता। इनमें से किसी भी सब्सट्रेट से वह प्रश्न पूछें जिसका एक लूप को वास्तव में उत्तर देने की आवश्यकता है: इन दो विरोधाभासी नोटों में से कौन सा सच है, इसे किसने लिखा, कब लिखा, और क्या इसे कभी सत्यापित किया गया था? एक गद्य फ़ाइल दोनों नोट्स को एक साथ रखती है और जो भी मॉडल फ़ाइल को आगे पढ़ता है, उस पर सामंजस्य छोड़ देता है। Git अस्पष्टता के हर ऐतिहासिक संस्करण को बिना हल किए सुरक्षित रखता है। एक साझा माउंट अंतिम लेखन को शीर्ष पर जीतता है।

दृढ़ता और अखंडता अलग-अलग गुण हैं। प्रवचन ने पहले को पूरी तरह से आत्मसात कर लिया है और दूसरे पर अभी तक ध्यान नहीं दिया है।

## हमने यह प्रयोग पहले भी चलाया था

एप्लिकेशन ने दशकों तक अपनी स्थिति को फ़्लैट फ़ाइलों में संग्रहीत किया। तीन ताकतों ने उस युग को समाप्त कर दिया: समवर्ती लेखकों ने फाइलों को दूषित कर दिया, संचित विरोधाभासों के पास कोई समाधान तंत्र नहीं था, और सवालों का जवाब देने का मतलब था हर चीज का विश्लेषण करना। डेटाबेस जीत गए क्योंकि उन्होंने डेटा को छूने वाले प्रत्येक प्रोग्राम से अपेक्षित अनुशासन के बजाय अखंडता को भंडारण परत की संपत्ति बना दिया।

उनमें से प्रत्येक बल पहले से ही तीन चौकियों के अंदर दिखाई दे रहा है।

कॉनकरेंसी उस क्षण आती है जब लूप्स लूप्स की निगरानी करते हैं, जो बिल्कुल वही चरण है जिसमें वैन हॉर्न कहते हैं कि हम प्रवेश कर रहे हैं। एक राज्य फ़ाइल को लिखने वाले दो लूप वैसी ही विफलता है जैसे दो इंजीनियर बिना बात किए एक ही लाइन पर काम करते हैं। वर्कट्रीज़ इसे कोड के लिए हल करता है। वर्तमान टूलचेन में कुछ भी इसे [साझा स्थिति](/ पोस्ट / जब-एजेंट-शेयर-स्टेट-एवरीथिंग-ब्रेक) के लिए हल नहीं करता है।

मार्टिन के बेंचमार्क परिणामों में विरोधाभास प्रलेखित है। निरंतर सीखने के कार्य में, सॉनेट 4.6 ने एक मेमोरी स्टोर छोड़ा है जिसका वर्णन वह विफलता नोट्स और खुले अनुमानों की एक सूची के रूप में करता है, जिसमें "prc_usd के बजाय शायद prc?" जैसी प्रविष्टियाँ शामिल हैं। अनुमान जमा हो जाते हैं. कुछ भी हल किए जाने का प्रतीक नहीं है। अगले सत्र को ढेर विरासत में मिलता है।

प्रश्न वैन हॉर्न की अपनी पंचलाइन हैं। उनका तर्क है कि एजेंटिक कोडिंग का महंगा हिस्सा अब लूप प्रबंधन है: रुकने की स्थिति, कोई प्रगति का पता नहीं लगाना और बजट सीमा। उनमें से प्रत्येक को वर्तमान रन की तुलना पिछले रन से करने की आवश्यकता है। एक गद्य सब्सट्रेट पर, इसका मतलब है कि प्रत्येक टिक पर एक बढ़ती हुई फ़ाइल को फिर से पढ़ना और फिर से पार्स करना, जो एक टोकन टैक्स है जो लूप की उम्र के साथ बढ़ता है।

## झुंड में दौड़ना मुझे क्या सिखाया

मैं अपनी मशीन पर नामित एजेंटों का एक झुंड चलाता हूं: एक ग्राहक खुफिया जानकारी के लिए, एक सामग्री के लिए, एक आउटरीच के लिए, अन्य संचालन के लिए। आरंभिक सेटअप में, प्रत्येक नोट को अपनी-अपनी फ़ाइलों में रखता था। वे फ़ाइलें बह गईं। एक ही व्यक्ति तीन नामों से सामने आया। एक फ़ाइल में सुधारा गया तथ्य दो अन्य में बिना सुधारे बच गया, और कोई भी रिकॉर्ड यह नहीं दिखाता कि कौन सा संस्करण वर्तमान था या इसमें से कोई कहाँ से आया था।

झुंड अब [एक संरचित स्टोर](/पोस्ट/फ्रॉम-मेमोरी-टू-नर्वस-सिस्टम) साझा करता है, और यह पोस्ट स्वयं एक रसीद है। इसके पीछे का शोध मेरे ग्राहक खुफिया एजेंट द्वारा किया गया था, जिसने सभी तीन एक्स पोस्ट प्राप्त किए, प्रत्येक को सगाई संख्या और उद्गम के साथ एक टाइप किए गए रिकॉर्ड के रूप में संग्रहीत किया, प्रतिस्पर्धी निष्कर्षों को एक संरचित विश्लेषण में लिखा, और साझा स्टोर के माध्यम से दो अन्य एजेंटों को अनुवर्ती कार्य दर्ज किए। जब मैंने एक घंटे बाद एक अनुवर्ती प्रश्न पूछा, तो तुलना को उसी विश्लेषण रिकॉर्ड में अपने स्वयं के उद्गम पथ के साथ जोड़ा गया था, न कि किसी नई फ़ाइल में बिखरा हुआ। किसी भी एजेंट ने वह दोबारा प्राप्त नहीं किया जो दूसरे ने पहले ही स्थापित कर दिया था।

## मेमोरी परिपक्वता एक सब्सट्रेट गुण है

तीनों में से किसी भी पोस्ट में सबसे तीव्र डेटा मार्टिन में है। वह स्मृति उपयोग के पांच चरणों का वर्णन करता है: एक एजेंट विफल रहता है, इसकी जांच करता है कि क्यों, यह सत्यापित करता है कि उसने क्या पाया, उत्तर को एक नियम में बदल देता है, और अगली बार उस नियम पर विचार करता है। एक एजेंट जो सभी पांचों को पूरा करता है वह विफलताओं को सत्यापित, पुन: प्रयोज्य नियमों में बदल देता है। एक एजेंट जो जल्दी रुक जाता है वह अनुमानों का ढेर छोड़ देता है।

उसके परिणाम, सभी एक ही माउंटेड फाइल सिस्टम पर: सॉनेट 4.6 चरण एक पर रुक जाता है, विफलताओं की जांच किए बिना उन्हें रिकॉर्ड करता है। ओपस 4.7 सत्यापन चरण तक पहुंचता है लेकिन मध्यावधि में अपने लगभग 17 प्रतिशत दावों की ही जांच करता है। कल्पित 5 प्रगति को पूरा करता है और 73 प्रतिशत तक सत्यापित करता है।

समान फ़ाइल सिस्टम, मौलिक रूप से भिन्न मेमोरी गुणवत्ता। अंतर पूरी तरह से मॉडल के अनुशासन में रहता है, क्योंकि फ़ाइल सिस्टम कुछ भी गारंटी नहीं देता है: प्रत्येक चरण एक व्यवहार है जिसे मॉडल को निष्पादित करने के लिए चुनना होगा। एक संरचित स्टोर उन व्यवहारों को डेटा संचालन में बदल देता है। विफलता एक संग्रहीत अवलोकन है। जांच में संबंधित अभिलेख निकाले जा रहे हैं। सत्यापन एक सुधार है जिसमें उत्पत्ति संलग्न है। आसवन एक टाइप किया हुआ नियम लिख रहा है। परामर्श एक सीमित प्रश्न है। जब सब्सट्रेट प्रगति करता है, तो कोई भी मॉडल इसे पूरा कर लेता है।

## लूप स्टेट लेयर से क्या मांग करें

अज्ञेयवादी रूप से कहा गया उपकरण, एक लूप की रीढ़ को छह चीजें प्रदान करनी चाहिए: गद्य बूँदों के बजाय टाइप किए गए रिकॉर्ड, हर क्षेत्र पर उत्पत्ति, सुधार जो संस्करणों को जमा करने के बजाय वर्तमान सत्य की गणना करते हैं, समवर्ती लेखन जो संघर्ष नहीं कर सकते हैं, पुनर्प्राप्ति जो केवल वही लौटाती है जो वर्तमान टिक को चाहिए, और एक विक्रेता के ढेर के बजाय किसी भी हार्नेस से पहुंच।

टेक्स्ट फ़ाइल के प्रति निष्पक्ष रहें: एक रेपो पर एक लूप के लिए, [मार्कडाउन वास्तव में ठीक है](/पोस्ट/द-मार्कडाउन-मेमोरी-सीलिंग)। यह पठनीय, प्रसार योग्य और मुफ़्त है। फोर्सिंग फ़ंक्शन लूप नंबर दो है, पहली बार दो प्रक्रियाएं एक ही तथ्य की परवाह करती हैं और कोई भी उस पर भरोसा नहीं कर सकता जो दूसरे ने लिखा है।

## फ़ाइलें याद रहती हैं, रिकॉर्ड के सिस्टम जानते हैं

वैन हॉर्न ने यह तर्क देते हुए अपना लेख समाप्त किया कि लूप प्लंबिंग है और टिकाऊ संपत्ति वह कौशल पुस्तकालय है जिसे वह कहता है। मुझे लगता है आधा सही है. कौशल प्रक्रियात्मक स्मृति हैं, बार-बार काम करने का तरीका। उनके नीचे तथ्यात्मक स्मृति बैठी है, जो अभी सत्य है जिस पर प्रत्येक कौशल का आह्वान निर्भर करता है। दोनों मिश्रित हैं, लेकिन केवल तभी जब हजारों अप्राप्य लेखन के बाद तथ्यात्मक परत पर भरोसा किया जा सकता है।

मैंने [नियोटोमा](https://github.com/markmhendrickson/neotoma) बनाया क्योंकि मुझे अपने झुंड के लिए उस परत की आवश्यकता थी: टाइप किए गए अवलोकन, प्रति क्षेत्र उत्पत्ति, सुधार जो वर्तमान सत्य का समाधान करते हैं, और मेरे द्वारा चलाए जाने वाले प्रत्येक एजेंट के लिए साझा पहुंच। लूप डिस्कोर्स ने केवल एक सप्ताह बिताया है जिसमें यह बताया गया है कि यह किस स्लॉट को भरता है, बिना किसी चीज का नाम बताए जो इसे भरता है।

उस्मानी ने इंजीनियर बने रहने का इरादा रखने वाले व्यक्ति की तरह लूप बनाने की सलाह के साथ अपना निबंध समाप्त किया। राज्य परत वह जगह है जहां वह इरादा परीक्षण योग्य हो जाता है। फ़ाइलें याद हैं. रिकार्ड की एक प्रणाली जानती है.