Node.js மூலம் பாதுகாப்பான ஒரு உள்ளூர் AI கோடிங் ஏஜென்ட்டை (Coding Agent) உருவாக்குதல்

AI ஏஜென்ட்கள் சிக்கலானவை என்று தோன்றலாம். ஆனால் அவை அவ்வாறு இல்லை.

ஒரு ஏஜென்ட் என்பது ஒரு லூப் (loop), கருவிகள் (tools) மற்றும் பாதுகாப்பு விதிகளுடன் (safety rules) இணைக்கப்பட்ட ஒரு LLM மட்டுமே.

நான் Node.js மற்றும் Ollama மூலம் Mistral பயன்படுத்தி ஒரு உள்ளூர் கோடிங் ஏஜென்ட்டை உருவாக்கினேன். இதற்கு நீங்கள் கட்டண API சாவிகள் (API keys) தேவையில்லை. அனைத்தும் உங்கள் கணினியிலேயே இயங்கும்.

இந்த ஏஜென்ட் உங்கள் JavaScript திட்டங்களை (projects) புரிந்துகொள்ள உங்களுக்கு உதவுகிறது. இது பின்வருவனவற்றைச் செய்ய முடியும்: • திட்டக் கோப்புகளைப் பட்டியலிடுதல் (List project files) • திட்டக் கோப்புகளைப் படித்தல் (Read project files) • உரையைத் தேடுதல் (Search text) • குறியீட்டை விளக்குதல் (Explain code) • பிழைகளைக் கண்டறிதல் (Find bugs) • குறியீடு மாற்றங்களை முன்மொழிதல் (Propose code changes)

இதன் முக்கியக் கொள்கை பாதுகாப்பு ஆகும். ஏஜென்ட் கோப்புகளைப் பரிசோதிக்க முடியும், ஆனால் அவற்றை மாற்ற முடியாது. நீங்கள் சரிபார்க்க ஏதுவாக இது ஒரு 'patch proposal'-ஐ மட்டுமே வழங்கும். இது மனிதத் தலையீட்டை (human in the loop) உறுதி செய்கிறது.

ஏஜென்ட் எவ்வாறு செயல்படுகிறது: ஒரு சாதாரண சாட்பாட் (chatbot) ஒரு எளிய பாதையைப் பின்பற்றுகிறது: பயனர் கேள்வி கேட்கிறார் -> மாடல் பதிலளிக்கிறது

ஒரு ஏஜென்ட் ஒரு லூப்பை (loop) பின்பற்றுகிறது: பயனர் கேள்வி கேட்கிறார் -> மாடல் ஒரு கருவியைத் தேர்ந்தெடுக்கிறது -> JavaScript அந்த கருவியை இயக்குகிறது -> மாடல் முடிவைப் பார்க்கிறது -> மாடல் பதிலளிக்கிறது

இந்தத் திட்டத்தில் பயன்படுத்தப்பட்டுள்ள முக்கிய முறைகள் (Key patterns): • ஏஜென்ட் லூப் (Agent loop): மாடல் இறுதிப் பதிலைத் தரும் வரை இந்தச் செயல்முறை மீண்டும் மீண்டும் நடக்கும். • டூல் கால் செய்தல் (Tool calling): மாடல் குறிப்பிட்ட JavaScript செயல்பாடுகளைக் கோருகிறது. • டூல் அனுமதிப்பட்ட பட்டியல் (Tool allowlist): அங்கீகரிக்கப்பட்ட கருவிகள் மட்டுமே இயங்கும். • சிஸ்டம் பிராம்ட் (System prompt): விதிகள் மாடல் எவ்வாறு செயல்பட வேண்டும் என்று கூறுகிறது. • JSON செயல்முறை நெறிமுறை (JSON action protocol): மாடல் கட்டமைக்கப்பட்ட தரவுகளுடன் (structured data) பதிலளிக்கிறது. • பாதுகாப்பு எல்லை (Safety boundary): கோப்பு அணுகல் உங்கள் திட்டத்தின் ரூட் (project root) பகுதிக்குள் மட்டுமே இருக்கும்.

பாதுகாப்பே முன்னுரிமை. 'path traversal'-ஐத் தடுக்க நான் safeResolve என்ற செயல்பாட்டைப் பயன்படுத்தினேன். இது ஏஜென்ட் உங்கள் திட்டக் கோப்புறைக்கு வெளியே உள்ள கோப்புகளை அணுக முடியாது என்பதை உறுதி செய்கிறது. மேலும், மாடல் சூழலைப் (model context) பாதுகாக்க கோப்பு அளவுகளுக்கு (file sizes) நான் வரம்புகளை நிர்ணயித்துள்ளேன்.

திட்ட அமைப்பு (Project structure): • src/cli.js: டெர்மினல் நுழைவுப் புள்ளி (terminal entry point). • src/agent.js: முக்கிய லூப் மற்றும் டூல் டிஸ்பாட்ச் (tool dispatch). • src/ollama.js: உள்ளூர் API கிளையன்ட் (local API client). • src/tools.js: பாதுகாப்பான ஃபைல் சிஸ்டம் கருவிகள் (Safe filesystem tools). • test/tools.test.js: பாதுகாப்பு மற்றும் செயல்பாட்டுத் தேர்வுகள் (Safety and behavior tests).

நீங்கள் இந்தத் திட்டத்தை Node.js மற்றும் Ollama மூலம் இயக்கலாம். சிறந்த முடிவுகளுக்கு Mistral-ஐப் பயன்படுத்தவும் அல்லது Qwen2.5-Coder அல்லது DeepSeek-Coder போன்ற கோடிங்கிற்கென பிரத்யேகமான மாடல்களை முயற்சிக்கவும்.

பயனுள்ள கருவிகளை உருவாக்குங்கள். அவற்றை ஒரு குறிப்பிட்ட எல்லைக்குள் வைத்திருங்கள். உங்கள் குறியீடு பாதுகாப்பு எல்லைகளைக் கட்டாயமாக்கட்டும்.

ஆதாரம்: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol