Node.js کے ساتھ ایک محفوظ لوکل AI کوڈنگ ایجنٹ بنانا

AI ایجنٹس پیچیدہ لگتے ہیں۔ لیکن ایسا نہیں ہے۔

ایک ایجنٹ محض ایک LLM ہے جو ایک لوپ (loop)، ٹولز (tools) اور حفاظتی اصولوں (safety rules) سے منسلک ہوتا ہے۔

میں نے Node.js اور Ollama کے ذریعے Mistral کا استعمال کرتے ہوئے ایک لوکل کوڈنگ ایجنٹ بنایا ہے۔ آپ کو پیڈ (paid) API keys کی ضرورت نہیں ہے۔ سب کچھ آپ کی اپنی مشین پر چلتا ہے۔

یہ ایجنٹ آپ کو اپنے JavaScript پروجیکٹس سمجھنے میں مدد دیتا ہے۔ یہ کر سکتا ہے: • پروجیکٹ فائلوں کی فہرست بنانا • پروجیکٹ فائلیں پڑھنا • ٹیکسٹ تلاش کرنا • کوڈ کی وضاحت کرنا • بگ (bugs) تلاش کرنا • کوڈ میں تبدیلیوں کی تجویز دینا

اس کا بنیادی اصول حفاظت ہے۔ ایجنٹ فائلوں کا معائنہ تو کر سکتا ہے، لیکن انہیں ایڈٹ (edit) نہیں کر سکتا۔ یہ صرف آپ کے جائزے کے لیے ایک پیچ (patch) کی تجویز واپس کرتا ہے۔ اس طرح انسان کا عمل میں شامل رہنا یقینی ہوتا ہے۔

ایجنٹ کیسے کام کرتا ہے: ایک عام چیٹ بوٹ ایک سادہ راستہ اختیار کرتا ہے: صارف سوال پوچھتا ہے -> ماڈل جواب دیتا ہے

ایک ایجنٹ ایک لوپ (loop) پر عمل کرتا ہے: صارف سوال پوچھتا ہے -> ماڈل ٹول کا فیصلہ کرتا ہے -> JavaScript ٹول کو چلاتا ہے -> ماڈل نتیجہ دیکھتا ہے -> ماڈل جواب دیتا ہے

اس پروجیکٹ میں استعمال ہونے والے اہم پیٹرنز (patterns): • ایجنٹ لوپ: یہ عمل اس وقت تک دہرایا جاتا ہے جب تک ماڈل حتمی جواب نہ دے دے۔ • ٹول کالنگ: ماڈل مخصوص JavaScript فنکشنز کی درخواست کرتا ہے۔ • ٹول الاؤ لسٹ (allowlist): صرف منظور شدہ ٹولز ہی چلتے ہیں۔ • سسٹم پرامپٹ (system prompt): اصول ماڈل کو بتاتے ہیں کہ اسے کیسا برتاؤ کرنا ہے۔ • JSON ایکشن پروٹوکول: ماڈل اسٹرکچرڈ ڈیٹا (structured data) کے ساتھ جواب دیتا ہے۔ • سیفٹی باؤنڈری: فائل تک رسائی آپ کے پروجیکٹ روٹ (project root) کے اندر رہتی ہے۔

حفاظت کو ترجیح دی گئی ہے۔ میں نے path traversal کو روکنے کے لیے safeResolve نامی فنکشن کا استعمال کیا ہے۔ یہ اس بات کو یقینی بناتا ہے کہ ایجنٹ آپ کے پروجیکٹ فولڈر سے باہر کی فائلوں تک رسائی حاصل نہ کر سکے۔ میں نے ماڈل کانٹیکسٹ (model context) کے تحفظ کے لیے فائل کے سائز پر بھی حدود مقرر کی ہیں۔

پروجیکٹ کا ڈھانچہ: • 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 آزمائیں۔

مفید ٹولز بنائیں۔ انہیں محدود رکھیں۔ اپنے کوڈ کو حفاظتی حدود (safety boundaries) نافذ کرنے دیں۔

ماخذ: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol