Node.js के साथ एक सुरक्षित लोकल AI कोडिंग एजेंट बनाना

AI एजेंट जटिल लगते हैं। लेकिन वे नहीं हैं।

एक एजेंट बस एक LLM है जो एक लूप, टूल्स और सुरक्षा नियमों (safety rules) से जुड़ा होता है।

मैंने Ollama के माध्यम से Node.js और Mistral का उपयोग करके एक लोकल कोडिंग एजेंट बनाया है। आपको पेड API कीज़ की आवश्यकता नहीं है। सब कुछ आपकी मशीन पर चलता है।

यह एजेंट आपके JavaScript प्रोजेक्ट्स को समझने में आपकी मदद करता है। यह कर सकता है: • प्रोजेक्ट फाइलों की सूची बनाना • प्रोजेक्ट फाइलें पढ़ना • टेक्स्ट खोजना • कोड समझाना • बग्स (bugs) ढूँढना • कोड में बदलाव का सुझाव देना

इसका मुख्य सिद्धांत सुरक्षा है। एजेंट फाइलों का निरीक्षण कर सकता है, लेकिन उन्हें एडिट नहीं कर सकता। यह केवल आपके रिव्यू के लिए एक पैच प्रस्ताव (patch proposal) देता है। इससे 'human in the loop' बना रहता है।

एजेंट कैसे काम करता है: एक सामान्य चैटबॉट एक सरल पथ का अनुसरण करता है: यूजर सवाल पूछता है -> मॉडल जवाब देता है

एक एजेंट एक लूप का अनुसरण करता है: यूजर सवाल पूछता है -> मॉडल टूल का निर्णय लेता है -> JavaScript टूल चलाता है -> मॉडल परिणाम देखता है -> मॉडल जवाब देता है

इस प्रोजेक्ट में उपयोग किए गए मुख्य पैटर्न: • Agent loop: यह प्रक्रिया तब तक दोहराई जाती है जब तक मॉडल अंतिम उत्तर नहीं दे देता। • Tool calling: मॉडल विशिष्ट JavaScript फंक्शन्स का अनुरोध करता है। • Tool allowlist: केवल स्वीकृत टूल्स ही चलते हैं। • System prompt: नियम मॉडल को बताते हैं कि उसे कैसा व्यवहार करना है। • JSON action protocol: मॉडल स्ट्रक्चर्ड डेटा के साथ जवाब देता है। • Safety boundary: फाइल एक्सेस आपके प्रोजेक्ट रूट के अंदर ही रहता है।

सुरक्षा प्राथमिकता है। मैंने path traversal को रोकने के लिए safeResolve नामक फंक्शन का उपयोग किया है। यह सुनिश्चित करता है कि एजेंट आपके प्रोजेक्ट फोल्डर के बाहर की फाइलों तक नहीं पहुँच सकता। मैंने मॉडल कॉन्टेक्स्ट को सुरक्षित रखने के लिए फाइल साइज पर भी सीमाएं तय की हैं।

प्रोजेक्ट स्ट्रक्चर: • src/cli.js: टर्मिनल एंट्री पॉइंट। • src/agent.js: कोर लूप और टूल डिस्पैच। • src/ollama.js: लोकल API क्लाइंट। • src/tools.js: सुरक्षित फाइलसिस्टम टूल्स। • test/tools.test.js: सुरक्षा और व्यवहार परीक्षण।

आप इस प्रोजेक्ट को Node.js और Ollama के साथ चला सकते हैं। बेहतर परिणामों के लिए Mistral का उपयोग करें या Qwen2.5-Coder या DeepSeek-Coder जैसे कोडिंग-विशिष्ट मॉडल्स को आज़माएँ।

उपयोगी टूल्स बनाएं। उन्हें सीमित रखें। अपने कोड को सुरक्षा सीमाओं को लागू करने दें।

स्रोत: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol