Node.js ਨਾਲ ਇੱਕ ਸੁਰੱਖਿਅਤ ਲੋਕਲ AI ਕੋਡਿੰਗ ਏਜੰਟ ਬਣਾਉਣਾ

AI ਏਜੰਟ ਸੁਣਨ ਵਿੱਚ ਗੁੰਝਲਦਾਰ ਲੱਗਦੇ ਹਨ। ਪਰ ਉਹ ਅਜਿਹੇ ਨਹੀਂ ਹਨ।

ਇੱਕ ਏਜੰਟ ਸਿਰਫ਼ ਇੱਕ LLM ਹੈ ਜੋ ਇੱਕ ਲੂਪ (loop), ਟੂਲਜ਼ (tools) ਅਤੇ ਸੁਰੱਖਿਆ ਨਿਯਮਾਂ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ।

ਮੈਂ Ollama ਰਾਹੀਂ Node.js ਅਤੇ Mistral ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਲੋਕਲ ਕੋਡਿੰਗ ਏਜੰਟ ਬਣਾਇਆ ਹੈ। ਤੁਹਾਨੂੰ ਕਿਸੇ ਭੁਗਤਾਨ ਵਾਲੀ API key ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਸਭ ਕੁਝ ਤੁਹਾਡੀ ਆਪਣੀ ਮਸ਼ੀਨ 'ਤੇ ਚੱਲਦਾ ਹੈ।

ਇਹ ਏਜੰਟ ਤੁਹਾਡੇ JavaScript ਪ੍ਰੋਜੈਕਟਾਂ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦਾ ਹੈ। ਇਹ ਕਰ ਸਕਦਾ ਹੈ: • ਪ੍ਰੋਜੈਕਟ ਫਾਈਲਾਂ ਦੀ ਸੂਚੀ ਬਣਾਉਣਾ • ਪ੍ਰੋਜੈਕਟ ਫਾਈਲਾਂ ਪੜ੍ਹਨਾ • ਟੈਕਸਟ ਸਰਚ ਕਰਨਾ • ਕੋਡ ਦੀ ਵਿਆਖਿਆ ਕਰਨਾ • ਬੱਗ (bugs) ਲੱਭਣਾ • ਕੋਡ ਵਿੱਚ ਬਦਲਾਅ ਕਰਨ ਲਈ ਸੁਝਾਅ ਦੇਣਾ

ਇਸਦਾ ਮੁੱਖ ਸਿਧਾਂਤ ਸੁਰੱਖਿਆ ਹੈ। ਏਜੰਟ ਫਾਈਲਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ, ਪਰ ਉਹ ਉਹਨਾਂ ਨੂੰ ਐਡਿਟ (edit) ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇਹ ਸਿਰਫ਼ ਤੁਹਾਡੇ ਰਿਵਿਊ ਲਈ ਇੱਕ ਪੈਚ ਪ੍ਰਪੋਜ਼ਲ (patch proposal) ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਮਨੁੱਖੀ ਨਿਗਰਾਨੀ ਨੂੰ ਬਣਾਈ ਰੱਖਦਾ ਹੈ।

ਏਜੰਟ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ: ਇੱਕ ਆਮ ਚੈਟਬੋਟ ਇੱਕ ਸਧਾਰਨ ਰਸਤੇ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ: ਯੂਜ਼ਰ ਸਵਾਲ ਪੁੱਛਦਾ ਹੈ -> ਮਾਡਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ

ਇੱਕ ਏਜੰਟ ਇੱਕ ਲੂਪ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ: ਯੂਜ਼ਰ ਸਵਾਲ ਪੁੱਛਦਾ ਹੈ -> ਮਾਡਲ ਟੂਲ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ -> JavaScript ਟੂਲ ਚਲਾਉਂਦਾ ਹੈ -> ਮਾਡਲ ਨਤੀਜਾ ਦੇਖਦਾ ਹੈ -> ਮਾਡਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ

ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਵਰਤੇ ਗਏ ਮੁੱਖ ਪੈਟਰਨ: • ਏਜੰਟ ਲੂਪ (Agent loop): ਇਹ ਪ੍ਰਕਿਰਿਆ ਉਦੋਂ ਤੱਕ ਦੁਹਰਾਈ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਮਾਡਲ ਅੰਤਿਮ ਜਵਾਬ ਨਹੀਂ ਦੇ ਦਿੰਦਾ। • ਟੂਲ ਕਾਲਿੰਗ (Tool calling): ਮਾਡਲ ਖਾਸ JavaScript ਫੰਕਸ਼ਨਾਂ ਦੀ ਮੰਗ ਕਰਦਾ ਹੈ। • ਟੂਲ ਐਲੋਲਿਸਟ (Tool allowlist): ਸਿਰਫ਼ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਟੂਲ ਹੀ ਚੱਲਦੇ ਹਨ। • ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ (System prompt): ਨਿਯਮ ਮਾਡਲ ਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਉਸਨੂੰ ਕਿਵੇਂ ਵਿਵਹਾਰ ਕਰਨਾ ਹੈ। • JSON ਐਕਸ਼ਨ ਪ੍ਰੋਟੋਕੋਲ (JSON action protocol): ਮਾਡਲ ਸੰਰਚਿਤ ਡੇਟਾ (structured data) ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। • ਸੁਰੱਖਿਆ ਸੀਮਾ (Safety boundary): ਫਾਈਲ ਐਕਸੈਸ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਰੂਟ ਦੇ ਅੰਦਰ ਹੀ ਰਹਿੰਦਾ ਹੈ।

ਸੁਰੱਖਿਆ ਪਹਿਲ ਹੈ। ਮੈਂ ਪਾਥ ਟ੍ਰੈਵਰਸਲ (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