Создание безопасного локального ИИ-агента для кодинга на Node.js

ИИ-агенты звучат сложно. Но это не так.

Агент — это просто LLM, подключенная к циклу, инструментам и правилам безопасности.

Я создал локального агента для кодинга, используя Node.js и Mistral через Ollama. Вам не нужны платные API-ключи. Всё работает локально на вашем компьютере.

Агент помогает вам разобраться в ваших JavaScript-проектах. Он может: • Перечислять файлы проекта • Читать файлы проекта • Искать текст • Объяснять код • Находить баги • Предлагать изменения в коде

Главный принцип — безопасность. Агент может просматривать файлы, но не может их редактировать. Он лишь возвращает предложение патча (patch proposal), которое вы должны проверить. Это позволяет человеку оставаться в цикле управления (human in the loop).

Как работает агент: Обычный чат-бот следует простому пути: Пользователь задает вопрос -> Модель отвечает

Агент следует циклу: Пользователь задает вопрос -> Модель выбирает инструмент -> JavaScript запускает инструмент -> Модель видит результат -> Модель отвечает

Ключевые паттерны, использованные в этом проекте: • Цикл агента (Agent loop): процесс повторяется до тех пор, пока модель не даст окончательный ответ. • Вызов инструментов (Tool calling): модель запрашивает выполнение определенных JavaScript-функций. • Белый список инструментов (Tool allowlist): запускаются только одобренные инструменты. • Системный промпт (System prompt): правила, которые диктуют модели, как себя вести. • Протокол действий JSON (JSON action protocol): модель отвечает структурированными данными. • Граница безопасности (Safety boundary): доступ к файлам ограничен корнем вашего проекта.

Безопасность — в приоритете. Я использовал функцию под названием safeResolve, чтобы предотвратить обход путей (path traversal). Это гарантирует, что агент не сможет получить доступ к файлам за пределами папки вашего проекта. Я также установил ограничения на размер файлов, чтобы защитить контекстное окно модели.

Структура проекта: • 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