Node.js తో సురక్షితమైన లోకల్ AI కోడింగ్ ఏజెంట్ను నిర్మించడం
AI ఏజెంట్లు సంక్లిష్టంగా అనిపించవచ్చు. కానీ అవి అంతలా లేవు.
ఒక ఏజెంట్ అంటే కేవలం ఒక లూప్ (loop), టూల్స్ (tools) మరియు సేఫ్టీ రూల్స్కు (safety rules) అనుసంధానించబడిన ఒక LLM మాత్రమే.
నేను Node.js మరియు Ollama ద్వారా Mistral ఉపయోగించి ఒక లోకల్ కోడింగ్ ఏజెంట్ను నిర్మించాను. దీని కోసం మీకు పెయిడ్ API కీలు అవసరం లేదు. అంతా మీ మెషీన్లోనే రన్ అవుతుంది.
ఈ ఏజెంట్ మీ JavaScript ప్రాజెక్ట్లను అర్థం చేసుకోవడంలో మీకు సహాయపడుతుంది. ఇది చేయగల పనులు: • ప్రాజెక్ట్ ఫైల్లను జాబితా చేయడం • ప్రాజెక్ట్ ఫైల్లను చదవడం • టెక్స్ట్ను వెతకడం • కోడ్ను వివరించడం • బగ్స్ను కనుగొనడం • కోడ్ మార్పులను ప్రతిపాదించడం
దీని ప్రధాన సూత్రం భద్రత (safety). ఏజెంట్ ఫైల్లను పరిశీలించగలదు, కానీ వాటిని ఎడిట్ చేయలేదు. ఇది మీరు రివ్యూ చేసుకోవడానికి కేవలం ఒక ప్యాచ్ ప్రతిపాదనను (patch proposal) మాత్రమే అందిస్తుంది. దీనివల్ల మనిషి నియంత్రణలో (human in the loop) ఉంటుంది.
ఏజెంట్ ఎలా పనిచేస్తుంది: సాధారణ చాట్బాట్ ఒక సరళమైన మార్గాన్ని అనుసరిస్తుంది: యూజర్ ప్రశ్న అడుగుతారు -> మోడల్ సమాధానం ఇస్తుంది
ఒక ఏజెంట్ ఒక లూప్ను అనుసరిస్తుంది: యూజర్ ప్రశ్న అడుగుతారు -> మోడల్ ఒక టూల్ను ఎంచుకుంటుంది -> JavaScript ఆ టూల్ను రన్ చేస్తుంది -> మోడల్ ఫలితాన్ని చూస్తుంది -> మోడల్ సమాధానం ఇస్తుంది
ఈ ప్రాజెక్ట్లో ఉపయోగించిన కీలకమైన ప్యాటర్న్స్ (Key patterns): • ఏజెంట్ లూప్ (Agent loop): మోడల్ తుది సమాధానాన్ని ఇచ్చే వరకు ఈ ప్రక్రియ పునరావృతమవుతుంది. • టూల్ కాలింగ్ (Tool calling): మోడల్ నిర్దిష్ట JavaScript ఫంక్షన్లను కోరుతుంది. • టూల్ అలౌలిస్ట్ (Tool allowlist): ఆమోదించబడిన టూల్స్ మాత్రమే రన్ అవుతాయి. • సిస్టమ్ ప్రాంప్ట్ (System prompt): మోడల్ ఎలా ప్రవర్తించాలో నియమాలు చెబుతాయి. • JSON యాక్షన్ ప్రోటోకాల్ (JSON action protocol): మోడల్ స్ట్రక్చర్డ్ డేటాతో స్పందిస్తుంది. • సేఫ్టీ బౌండరీ (Safety boundary): ఫైల్ యాక్సెస్ మీ ప్రాజెక్ట్ రూట్ (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 వంటి కోడింగ్-స్పెసిఫిక్ మోడల్లను ప్రయత్నించండి.
ఉపయోగకరమైన టూల్స్ను నిర్మించండి. వాటి పరిధిని తక్కువగా ఉంచండి. మీ కోడ్ ద్వారానే సేఫ్టీ బౌండరీలను అమలు చేయండి.
మూలం: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol