यह एक ऐसी दुनिया है जहाँ स्थानीय LLM एजेंट खुद कोड लिखते हैं और उन्हें तैनात (deploy) भी करते हैं। लेकिन अगर इसे चलाने वाला बुनियादी ढांचा (infrastructure) ही खराब है, तो इसका कोई फायदा नहीं है। Archon फ्रेमवर्क का उपयोग करते समय, हम अक्सर ऐसी स्थितियों का सामना करते हैं जहाँ YAML फ़ाइलों की नोड निर्भरता उलझ जाती है और सिस्टम अनंत लूप (infinite loop) में फंस जाता है, या loader.ts चलने से मना कर देता है। मॉडल की तर्क क्षमता से अधिक महत्वपूर्ण उस बर्तन की स्थिरता है जो इस अनिश्चित इंजन को संभालता है, यानी हार्नेस इंजीनियरिंग (harness engineering) की स्थिरता।
YAML एंकर के साथ दोहराव को हटाना और लॉजिकल आइसोलेशन को रोकना
Archon का वर्कफ़्लो एक निर्देशित एसाइक्लिक ग्राफ़ (DAG) होना चाहिए जिसमें स्पष्ट इनपुट और आउटपुट परिभाषित हों। बिना सोचे-समझे नोड्स को जोड़ने से डिज़ाइन चरण में ही तार्किक खामियां पैदा हो जाती हैं। विशेष रूप से, प्रत्येक नोड में समान सेटिंग्स को कॉपी और पेस्ट करने की आदत मानवीय त्रुटि का मुख्य कारण है।
- सामान्य सेटिंग्स को व्यवस्थित करना: YAML के शीर्ष पर एक
&common_configएंकर घोषित करें और मॉडल प्रदाता या बुनियादी निर्देशों को परिभाषित करें। प्रत्येक नोड में इसे इनहेरिट करने के लिए<<: *common_configका उपयोग करने से कॉन्फ़िगरेशन फ़ाइल की लंबाई 30% से अधिक कम हो सकती है। - लूप लॉजिक को अलग करना: एकल DAG के भीतर बैक-एज (Back-edge) न बनाएं। यदि दोहराव की आवश्यकता है, तो Archon के
loop_untilप्रिमिटिव का उपयोग करके इसे एक अलग निष्पादन इकाई में अलग करें ताकि सिस्टम रुके नहीं। - आउटपुट डेटा का मानकीकरण:
promptटाइप नोड्स में Zod स्कीमा जोड़ें औरoutput_format: { type: 'object' }को अनिवार्य करें। यदि AI के उत्तर मानकीकृत हैं, तो यह$nodeId.outputसंदर्भ त्रुटियों को रोकता है और वर्कफ़्लो सफलता दर को 25% से अधिक बढ़ा देता है।
M4 चिप वातावरण में डिस्क बाधाओं को हल करने के लिए ऑटो-क्लीनअप पाइपलाइन
एजेंटों को स्वतंत्र रूप से काम करने देने के लिए Git वर्कट्री (worktree) बनाने का तरीका साफ-सुथरा है, लेकिन इसकी एक कीमत है। हर बार जब node_modules जैसे भारी फ़ोल्डर कॉपी किए जाते हैं, तो गीगाबाइट की स्टोरेज गायब हो जाती है। एकीकृत मेमोरी (unified memory) का उपयोग करने वाले M4 मैकबुक में, डिस्क स्वैप होते ही पूरा सिस्टम काफी धीमा हो जाता है।
- वर्कट्री को तुरंत हटाना: वर्कफ़्लो के अंतिम चरण में एक शेल स्क्रिप्ट नोड रखें जो
git worktree removeकरता हो। केवल आवश्यक लॉग और डिफ फ़ाइलों को$ARTIFACTS_DIRमें ले जाएं और बाकी सब कुछ बिना किसी हिचकिचाहट के हटा दें। - संसाधन थ्रॉटलिंग (Resource Throttling): Docker Compose में एक साथ चलने वाले वर्कट्री की संख्या को CPU कोर की संख्या के 50% तक सीमित करें। केवल अधिक संख्या में चलाने का मतलब बेहतर प्रदर्शन नहीं है।
- फ़ाइल सिस्टम अनुकूलन: Docker Desktop सेटिंग्स में VirtioFS को सक्षम करें। यह होस्ट और कंटेनर के बीच I/O गति को 2 गुना से अधिक बढ़ा देता है, जिससे एजेंट द्वारा
npm installकरते समय होने वाली देरी काफी कम हो जाती है।
कंटेनर ऑक्यूपेंसी मेट्रिक्स का उपयोग करके नोड-स्तर की समस्या निवारण
यदि एजेंट अचानक अजीब बातें करने लगे या टूल कॉलिंग में गलती करे, तो आपको संदर्भ विंडो ऑक्यूपेंसी () पर संदेह करना चाहिए। जब प्रॉम्प्ट और इतिहास अधिकतम टोकन के 40% से अधिक हो जाते हैं, जिसे "डम्ब ज़ोन" (Dumb Zone) कहा जाता है, तो मॉडल की बुद्धिमत्ता तेजी से कम होने लगती है।
U = rac{T_{prompt} + T_{history} + T_{tools}}{T_{max}}यदि यह मेट्रिक सीमा से अधिक हो जाता है, तो पूरे सिस्टम को बदलने के बजाय केवल समस्याग्रस्त नोड को चुनकर उसे ठीक करना चाहिए।
- यूनिट टेस्ट ऑटोमेशन: DAG के प्रत्येक नोड में
verificationविशेषता जोड़ें और निष्पादन के तुरंत बाद यूनिट टेस्ट चलाएं। यदि टेस्ट विफल हो जाता है, तो आपको एक सेल्फ-करेक्शन लूप बनाना चाहिए जो उस नोड के निर्देश को पिछले संस्करण पर रोलबैक कर दे या प्रॉम्प्ट को तुरंत बदल दे। - संपीड़न (Compression) पाइपलाइन सक्रिय करना: की स्थिति बनाए रखने के लिए Snip या Microcompact जैसे 5-चरण लॉजिक लागू करें। अनावश्यक संदर्भ को हटाकर ही आप निरीक्षण समय को 40% तक कम कर सकते हैं और कोड की गुणवत्ता को सुसंगत बनाए रख सकते हैं।
हार्नेस इंजीनियरिंग केवल AI का अच्छी तरह से उपयोग करने की तकनीक नहीं है, बल्कि अनियंत्रित LLM को सॉफ्टवेयर इंजीनियरिंग के दायरे में लाने का कार्य है। जब बुनियादी ढांचा मजबूत होगा, तभी एजेंट अपना सर्वश्रेष्ठ प्रदर्शन कर पाएंगे।
