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

सुधारों की सबसे बड़ी श्रेणी सीएलआई विश्वसनीयता है, क्योंकि सीएलआई पहली चीज है जिसे एक नया उपयोगकर्ता छूता है और पहली चीज जो ऑनबोर्डिंग के दौरान विफल हो सकती है।

दूसरा एमसीपी स्थिरता है, क्योंकि एमसीपी सर्वर वह है जिसे एजेंट दिन में सैकड़ों बार कॉल करते हैं और वहां मौन विफलताएं बिना किसी चेतावनी के वर्कफ़्लो को भ्रष्ट करती हैं।

तीसरा वास्तविक परिस्थितियों में डेटा अखंडता है। यह पोस्ट एनपीएम पैकेज में क्या बदलाव हुआ है, उसे कवर करती है, साइट या डॉक्स को नहीं।

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

## सीएलआई ने यह मानना बंद कर दिया कि यह मैं ही हूं

डेवलपर रिलीज़ सीएलआई ने मेरी मशीन पर एक स्रोत चेकआउट से काम किया। यही एकमात्र संदर्भ था जिसका मैंने परीक्षण किया था। प्रतिक्रिया की पहली लहर ने स्पष्ट कर दिया कि यह पर्याप्त नहीं था।

पहला समाधान पथ समाधान था। जब आप एनपीएम के माध्यम से नियोटोमा को विश्व स्तर पर स्थापित करते हैं और इसे एक मनमाना निर्देशिका से चलाते हैं, तो सीएलआई को स्रोत चेकआउट के बिना अपने स्वयं के संसाधनों को खोजने की आवश्यकता होती है। v0.3.3 ने स्थापित पैकेज स्थान से फ़ॉलबैक रिज़ॉल्यूशन जोड़ा। v0.3.8 ने `openapi.yaml` को npm टारबॉल के अंदर भेज दिया ताकि स्पेक फ़ाइल हमेशा उपलब्ध रहे, न कि केवल तब जब आपने रेपो क्लोन किया था।

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

कई रिलीज़ों में init प्रवाह में सुधार हुआ। v0.3.6 से v0.3.9 तक पहले-रन अनुभव को उत्तरोत्तर मजबूत किया गया: बेहतर पर्यावरण लक्ष्यीकरण, स्पष्ट स्टार्टअप UX, मजबूत कॉन्फ़िगरेशन पथ हैंडलिंग। V0.3.10 तक, सीएलआई अपने स्वयं के इंस्टॉल संदर्भ का पता लगा सकता है और उपयोगकर्ता को कुछ भी बताए बिना व्यवहार को समायोजित कर सकता है।

v0.3.11 सबसे बड़ी एकल सीएलआई रिलीज़ थी। इसमें लचीली खोज (स्थितिगत पहचानकर्ताओं, '--पहचानकर्ता', और '--query' उपनामों के साथ), स्टोर के लिए एक पसंदीदा संरचित इनपुट पथ (मौजूदा '--json=' के साथ-साथ '--entities' और '--file'), और संघर्ष समाधान मोड के साथ SQLite डेटाबेस के संयोजन के लिए 'स्टोरेज मर्ज-डीबी' जोड़ा गया। v0.4.0 ने नोड, बन और डेनो रैपर्स में तर्क प्रबंधन को अधिक विश्वसनीय बना दिया।

शुद्ध प्रभाव: सीएलआई "मेरी मशीन पर काम करता है" से "किसी और की मशीन पर एक मनमानी निर्देशिका में एक ताजा एनपीएम इंस्टॉल पर काम करता है" पर चला गया। वह अंतर मेरी अपेक्षा से अधिक बड़ा था।

## एमसीपी दैनिक एजेंट उपयोग के लिए सुरक्षित हो गया

एमसीपी सर्वर वह तरीका है जिससे एजेंट नियोटोमा के साथ बातचीत करते हैं। इसे सीएलआई से भिन्न तरीकों से विश्वसनीय होना आवश्यक है। एजेंट त्रुटि संदेश नहीं पढ़ते. वे पुनः प्रयास करते हैं, गलत व्याख्या करते हैं, या चुपचाप संदर्भ छोड़ देते हैं।

पहला एमसीपी सुधार मामूली लेकिन महत्वपूर्ण था। v0.3.8 ने स्कीमा रजिस्ट्री सूचनात्मक लॉग को stdout से हटा दिया। एमसीपी एजेंट और सर्वर के बीच संरचित संचार के लिए stdio का उपयोग करता है। उसी स्ट्रीम में लॉग इन करने से प्रोटोकॉल दूषित हो गया। एजेंटों को विकृत प्रतिक्रियाएँ मिलेंगी या लटका दिया जाएगा। लॉग को stderr में ले जाने से मूक विफलताओं का एक वर्ग ठीक हो गया जिसका निदान करना कठिन था।

v0.3.11 में HTTP एक्शन लेयर और एंटिटी क्वेरी हैंडलिंग के साथ-साथ व्यापक MCP रनटाइम अपडेट शामिल हैं। सूची बनाम पहचानकर्ता-शैली प्रश्नों के लिए पुनर्प्राप्ति पथ अधिक विश्वसनीय हो गए। लेक्सिकल खोज एकीकरण को प्रतिगमन कवरेज मिला। एमसीपी सर्वर और HTTP एपीआई अब अधिक व्यवहार साझा करते हैं, इसलिए एजेंट और प्रत्यक्ष एपीआई उपभोक्ता लगातार परिणाम देखते हैं।

v0.4.0 ने टाइमलाइन जेनरेशन, अवलोकन प्रक्षेपण, स्नैपशॉट गणना और स्कीमा रजिस्ट्री व्यवहार में सुधार के साथ इस कार्य को जारी रखा। ये आंतरिक तंत्र हैं जो यह निर्धारित करते हैं कि एजेंट इकाई स्थिति के बारे में पूछताछ करते समय क्या देखते हैं। उन्हें सही करने का मतलब है कि एजेंटों को पूरे सत्र में लगातार, सही उत्तर मिलते हैं।

## पेजिनेशन और इकाई फ़िल्टरिंग ईमानदार हो गई

v0.3.4 ने एक विशिष्ट बग को ठीक किया जिसने एक व्यापक समस्या को उजागर किया। जब आपने इकाइयों से प्रकार के आधार पर पूछताछ की (मान लीजिए, सभी कार्य), तो हटाई गई इकाइयों को परिणाम गणना में शामिल किया गया था लेकिन दृश्यमान परिणामों से फ़िल्टर किया गया था। पेजिनेशन ऑफ़सेट्स ने अनफ़िल्टर्ड गिनती का उपयोग किया। परिणाम: अपेक्षा से कम आइटम वाले पृष्ठ, असंगत योग, और ऐसे एजेंट जिन्होंने सोचा कि उन्होंने सब कुछ पुनः प्राप्त कर लिया है जबकि उन्होंने ऐसा नहीं किया था।

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

## डेटाबेस मर्ज एक वास्तविक उपकरण बन गया

मैंने मार्च में 6000 यादें खोने और वापस पाने के बारे में लिखा था। उस अनुभव ने v0.3.11 में उचित सीएलआई कमांड के रूप में `स्टोरेज मर्ज-डीबी` शिपिंग को प्रेरित किया।

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

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

## मल्टी-टूल समर्थन का विस्तार हुआ

डेवलपर रिलीज़ ने MCP के माध्यम से कर्सर, क्लाउड और चैटजीपीटी का समर्थन किया। v0.3.11 ने स्पष्ट ChatGPT एकीकरण दस्तावेज़ जोड़ा और `openapi_actions.yaml` भेजा, जो कस्टम GPT और HTTP क्रियाएँ वर्कफ़्लो के लिए एक OpenAPI-आकार की सतह है। इसका मतलब यह है कि चैटजीपीटी नियोटोमा का उपभोग न केवल एमसीपी के माध्यम से कर सकता है, बल्कि कस्टम जीपीटी द्वारा उपयोग किए जाने वाले मूल क्रिया इंटरफ़ेस के माध्यम से भी कर सकता है।

एक्शन लेयर में बदलावों को प्रतिबिंबित करने के लिए ओपनएपीआई अनुबंध को v0.3.11 और v0.4.0 में अपडेट किया गया था। यदि आप एपीआई के माध्यम से नियोटोमा का प्रोग्रामेटिक रूप से उपभोग करते हैं, तो इन रिलीज़ों के लिए किसी भी जेनरेट किए गए क्लाइंट को दोबारा जांचने की आवश्यकता होती है।

## पुराना निष्कर्षण पथ हटा दिया गया

v0.4.0 ने `llm_extraction` कोड पथ हटा दिया। यह एक विरासती दृष्टिकोण था जो भंडारण पाइपलाइन में भाषा मॉडल का उपयोग करता था। नियोटोमा का डिज़ाइन सिद्धांत यह है कि कोई भी एलएलएम भंडारण या पुनर्प्राप्ति के लिए महत्वपूर्ण पथ में नहीं बैठता है। निष्कर्षण एजेंट परत पर होता है, नियोटोमा के अंदर नहीं। पुराने पथ को हटाने से कोडबेस उस सिद्धांत के साथ संरेखित हो जाता है और आंतरिक भाग सरल हो जाता है।

यह उस प्रकार का परिवर्तन है जो उपयोगकर्ताओं के लिए अदृश्य है लेकिन परियोजना की दिशा के लिए मायने रखता है। नियोटोमा एक सत्य परत है, अनुमान परत नहीं। निष्कर्षण पथ ने उस रेखा को धुंधला कर दिया। अब ऐसा नहीं है.

## गति ने मुझे क्या सिखाया

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

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

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

अगला चरण अलग है. पहले पांच हफ्तों में उत्तर दिया गया "क्या यह किसी ऐसे व्यक्ति के लिए काम करता है जो मैं नहीं हूं।" अगला खंड उत्तर देता है "कोई व्यक्ति जो पहले से ही बना चुका है उसे क्यों बदलेगा।"

मेरे [मूल्यांकनकर्ता समूह](/पोस्ट/ग्राहक-शोध-थ्रू-एजेंट) में कम से कम दस लोग अपनी स्वयं की एजेंट मेमोरी का निर्माण कर रहे हैं। मार्कडाउन फ़ाइलें, SQLite, JSON दिल की धड़कन, फ़्लैट-फ़ाइल CRM। एक ही समस्या, अलग-अलग कार्यान्वयन। उनमें से कई ने सटीक ट्रिगर्स का नाम दिया जब उनका समाधान टूट जाएगा: कई एजेंटों से समवर्ती लेखन, उत्पत्ति के प्रश्न जिनका वे उत्तर नहीं दे सकते, कुछ दर्जन सक्रिय संस्थाओं से आगे बढ़ना। वे ट्रिगर्स मेरा रोडमैप हैं।

अगले ठोस लक्ष्य मूल्यांकनकर्ताओं द्वारा मांगी गई बातों से आते हैं, फीचर इच्छा सूची से नहीं।

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

गहरा वास्तुशिल्प कार्य मेरे अपने दैनिक उपयोग से आता है, मूल्यांकनकर्ता के अनुरोध से नहीं। कई महीनों तक नियोटोमा को मेरी प्राथमिक मेमोरी परत के रूप में चलाने से संरचनात्मक समस्याएं सामने आईं, जिन पर अभी तक किसी ने ध्यान नहीं दिया होगा।

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

नियोटोमा [GitHub पर खुला स्रोत](https://github.com/markmhendrickson/neotoma) है। यदि आपने डेवलपर रिलीज़ का प्रयास किया और कठिन किनारों पर पहुंच गए, तो उनमें से कई को इन रिलीज़ों में संबोधित किया गया है। यदि आपने अभी तक इसे आज़माया नहीं है, तो सबसे अच्छा शुरुआती बिंदु यह है कि [अपने एजेंट से यह मूल्यांकन करने के लिए कहें कि क्या नियोटोमा आपके वर्कफ़्लो में फिट बैठता है](https://neotoma.io/evaluate)। एजेंट पृष्ठ पढ़ता है, आपके सेटअप का निरीक्षण करता है, और कुछ भी इंस्टॉल करने से पहले आपको ईमानदारी से बताता है कि यह उपयुक्त है या नहीं।