Construyendo un agente de codificación de IA local y seguro con Node.js
Los agentes de IA suenan complejos. No lo son.
Un agente es simplemente un LLM conectado a un bucle, herramientas y reglas de seguridad.
Construí un agente de codificación local usando Node.js y Mistral a través de Ollama. No necesitas claves de API de pago. Todo se ejecuta en tu máquina.
El agente te ayuda a entender tus proyectos de JavaScript. Puede: • Listar archivos del proyecto • Leer archivos del proyecto • Buscar texto • Explicar código • Encontrar errores • Proponer cambios de código
El principio fundamental es la seguridad. El agente puede inspeccionar archivos, pero no puede editarlos. Solo devuelve una propuesta de parche para que tú la revises. Esto mantiene a un humano en el proceso.
Cómo funciona el agente: Un chatbot normal sigue un camino simple: Usuario hace una pregunta -> El modelo responde
Un agente sigue un bucle: Usuario hace una pregunta -> El modelo decide una herramienta -> JavaScript ejecuta la herramienta -> El modelo ve el resultado -> El modelo responde
Patrones clave utilizados en este proyecto: • Bucle del agente: El proceso se repite hasta que el modelo proporciona una respuesta final. • Llamada a herramientas (tool calling): El modelo solicita funciones de JavaScript específicas. • Lista de permitidos de herramientas (tool allowlist): Solo se ejecutan las herramientas aprobadas. • Prompt del sistema: Las reglas le indican al modelo cómo comportarse. • Protocolo de acción JSON: El modelo responde con datos estructurados. • Límite de seguridad: El acceso a archivos se mantiene dentro de la raíz de tu proyecto.
La seguridad es la prioridad. Utilicé una función llamada safeResolve para prevenir el salto de directorios (path traversal). Esto asegura que el agente no pueda acceder a archivos fuera de la carpeta de tu proyecto. También establecí límites en el tamaño de los archivos para proteger el contexto del modelo.
La estructura del proyecto: • src/cli.js: El punto de entrada de la terminal. • src/agent.js: El bucle central y la distribución de herramientas. • src/ollama.js: El cliente de la API local. • src/tools.js: Herramientas seguras del sistema de archivos. • test/tools.test.js: Pruebas de seguridad y comportamiento.
Puedes ejecutar este proyecto con Node.js y Ollama. Usa Mistral o prueba modelos específicos para codificación como Qwen2.5-Coder o DeepSeek-Coder para obtener mejores resultados.
Construye herramientas útiles. Mantén su alcance limitado. Deja que tu código imponga los límites de seguridad.
Fuente: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol