Node.js দিয়ে একটি নিরাপদ লোকাল AI কোডিং এজেন্ট তৈরি করা

AI এজেন্ট শুনতে জটিল মনে হতে পারে। কিন্তু আসলে তা নয়।

একটি এজেন্ট হলো মূলত একটি লুপ (loop), টুলস (tools) এবং নিরাপত্তা নিয়মের (safety rules) সাথে সংযুক্ত একটি LLM।

আমি Node.js এবং Ollama-এর মাধ্যমে Mistral ব্যবহার করে একটি লোকাল কোডিং এজেন্ট তৈরি করেছি। এর জন্য আপনার কোনো পেইড API কী-এর প্রয়োজন নেই। সবকিছু আপনার নিজের মেশিনে চলবে।

এই এজেন্ট আপনাকে আপনার JavaScript প্রজেক্ট বুঝতে সাহায্য করবে। এটি যা যা করতে পারে: • প্রজেক্ট ফাইলগুলোর তালিকা করা • প্রজেক্ট ফাইল পড়া • টেক্সট সার্চ করা • কোড ব্যাখ্যা করা • বাগ (bug) খুঁজে বের করা • কোড পরিবর্তনের প্রস্তাব দেওয়া

এর মূল নীতি হলো নিরাপত্তা। এজেন্ট ফাইলগুলো পরীক্ষা করতে পারে, কিন্তু সেগুলো এডিট করতে পারে না। এটি শুধুমাত্র আপনার পর্যালোচনার জন্য একটি প্যাচ প্রপোজাল (patch proposal) প্রদান করে। এটি নিশ্চিত করে যে একজন মানুষ সবসময় প্রক্রিয়ার সাথে যুক্ত আছে (human in the loop)।

এজেন্টটি যেভাবে কাজ করে: একটি সাধারণ চ্যাটবট একটি সহজ পথ অনুসরণ করে: ইউজার প্রশ্ন করে -> মডেল উত্তর দেয়

একটি এজেন্ট একটি লুপ অনুসরণ করে: ইউজার প্রশ্ন করে -> মডেল একটি টুল নির্বাচন করে -> JavaScript সেই টুলটি চালায় -> মডেল ফলাফল দেখে -> মডেল উত্তর দেয়

এই প্রজেক্টে ব্যবহৃত মূল প্যাটার্নগুলো: • Agent loop: মডেলটি চূড়ান্ত উত্তর না দেওয়া পর্যন্ত প্রক্রিয়াটি চলতে থাকে। • Tool calling: মডেলটি নির্দিষ্ট JavaScript ফাংশন অনুরোধ করে। • Tool allowlist: শুধুমাত্র অনুমোদিত টুলগুলোই চলে। • System prompt: নিয়মাবলী মডেলটিকে বলে দেয় কীভাবে আচরণ করতে হবে। • JSON action protocol: মডেলটি স্ট্রাকচার্ড ডেটা দিয়ে সাড়া দেয়। • Safety boundary: ফাইল অ্যাক্সেস শুধুমাত্র আপনার প্রজেক্ট রুট (project root) এর মধ্যেই সীমাবদ্ধ থাকে।

নিরাপত্তাই এখানে অগ্রাধিকার। আমি path traversal রোধ করতে safeResolve নামক একটি ফাংশন ব্যবহার করেছি। এটি নিশ্চিত করে যে এজেন্ট আপনার প্রজেক্ট ফোল্ডারের বাইরের কোনো ফাইল অ্যাক্সেস করতে পারবে না। মডেলের কনটেক্সট (context) সুরক্ষিত রাখতে আমি ফাইলের সাইজের ওপরও সীমাবদ্ধতা দিয়েছি।

প্রজেক্টের গঠন (structure): • 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