Node.js ഉപയോഗിച്ച് സുരക്ഷിതമായ ഒരു ലോക്കൽ AI കോഡിംഗ് ഏജന്റ് നിർമ്മിക്കുന്നു
AI ഏജന്റുകൾ കേൾക്കുമ്പോൾ സങ്കീർണ്ണമായി തോന്നാം. എന്നാൽ അവ അങ്ങനെയല്ല.
ഒരു ലൂപ്പ് (loop), ടൂളുകൾ (tools), സുരക്ഷാ നിയമങ്ങൾ (safety rules) എന്നിവയുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള ഒരു LLM മാത്രമാണ് ഒരു ഏജന്റ്.
Node.js-ഉം Ollama വഴിയുള്ള Mistral-ഉം ഉപയോഗിച്ച് ഞാൻ ഒരു ലോക്കൽ കോഡിംഗ് ഏജന്റ് നിർമ്മിച്ചു. ഇതിനായി പണമടച്ചുള്ള API കീകൾ ആവശ്യമില്ല. എല്ലാം നിങ്ങളുടെ മെഷീനിൽ തന്നെ പ്രവർത്തിക്കും.
നിങ്ങളുടെ JavaScript പ്രോജക്റ്റുകൾ മനസ്സിലാക്കാൻ ഈ ഏജന്റ് സഹായിക്കുന്നു. ഇതിന് ഇവ ചെയ്യാൻ കഴിയും: • പ്രോജക്റ്റ് ഫയലുകൾ ലിസ്റ്റ് ചെയ്യുക • പ്രോജക്റ്റ് ഫയലുകൾ വായിക്കുക • ടെക്സ്റ്റ് തിരയുക • കോഡ് വിശദീകരിക്കുക • ബഗുകൾ കണ്ടെത്തുക • കോഡ് മാറ്റങ്ങൾ നിർദ്ദേശിക്കുക
സുരക്ഷയാണ് ഇതിന്റെ പ്രധാന തത്വം. ഏജന്റിന് ഫയലുകൾ പരിശോധിക്കാൻ കഴിയും, എന്നാൽ അവ എഡിറ്റ് ചെയ്യാൻ കഴിയില്ല. നിങ്ങൾ പരിശോധിക്കുന്നതിനായി ഒരു പാച്ച് പ്രൊപ്പോസൽ (patch proposal) മാത്രമേ അത് നൽകുകയുള്ളൂ. ഇത് മനുഷ്യന്റെ നിയന്ത്രണം നിലനിർത്തുന്നു (keeps a human in the loop).
ഏജന്റ് എങ്ങനെ പ്രവർത്തിക്കുന്നു: ഒരു സാധാരണ ചാറ്റ്ബോട്ട് ലളിതമായ ഒരു പാത പിന്തുടരുന്നു: ഉപയോക്താവ് ചോദ്യം ചോദിക്കുന്നു -> മോഡൽ മറുപടി നൽകുന്നു
ഒരു ഏജന്റ് ഒരു ലൂപ്പ് പിന്തുടരുന്നു: ഉപയോക്താവ് ചോദ്യം ചോദിക്കുന്നു -> മോഡൽ ഒരു ടൂൾ തിരഞ്ഞെടുക്കുന്നു -> JavaScript ആ ടൂൾ പ്രവർത്തിപ്പിക്കുന്നു -> മോഡൽ ഫലം കാണുന്നു -> മോഡൽ മറുപടി നൽകുന്നു
ഈ പ്രോജക്റ്റിൽ ഉപയോഗിച്ചിരിക്കുന്ന പ്രധാന പാറ്റേണുകൾ: • ഏജന്റ് ലൂപ്പ്: മോഡൽ ഒരു അന്തിമ ഉത്തരം നൽകുന്നത് വരെ പ്രക്രിയ ആവർത്തിക്കുന്നു. • ടൂൾ കോളിംഗ്: മോഡൽ പ്രത്യേക JavaScript ഫംഗ്ഷനുകൾ ആവശ്യപ്പെടുന്നു. • ടൂൾ അലൗലിസ്റ്റ് (allowlist): അംഗീകരിച്ച ടൂളുകൾ മാത്രമേ പ്രവർത്തിപ്പിക്കുകയുള്ളൂ. • സിസ്റ്റം പ്രോംപ്റ്റ്: എങ്ങനെ പെരുമാറണമെന്ന് നിയമങ്ങൾ മോഡലിനോട് പറയുന്നു. • JSON ആക്ഷൻ പ്രോട്ടോക്കോൾ: മോഡൽ സ്ട്രക്ചർ ചെയ്ത ഡാറ്റയിലൂടെ മറുപടി നൽകുന്നു. • സുരക്ഷാ അതിർവരമ്പ് (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