Я создал ИИ-агента, который ис... Заметка
DEV Community на русском

Я создал ИИ-агента, который исправляет уязвимости Sonar и Snyk.

AutoRemediate AI — это агент, предназначенный для автоматического исправления уязвимостей в коде и зависимостях низкого риска в проектах Java/Spring Boot. Он устраняет распространенные проблемы, такие как неиспользуемые импорты, переменные и известные уязвимые библиотеки, которые часто упускаются из виду из-за их утомительности. Агент работает с упором на безопасность и проверку, никогда не полагаясь слепо на предложения ИИ. Вместо этого он использует многоступенчатый процесс: ИИ предлагает минимальные исправления, детерминированные инструменты проверяют их безопасность, а человек в конечном итоге утверждает их.Рабочий процесс начинается с клонирования репозитория, установления базового уровня с помощью тестов и сканирований, а затем классификации результатов. Для каждого "безопасного" результата ИИ генерирует небольшое, проверенное исправление, которое затем проходит тщательную проверку. Успех зависит от "ворот безопасности", которые проверяют, что сборка остается зеленой, все тесты проходят, целевая проблема решена и не возникло новых проблем.Применяются критически важные меры безопасности, чтобы предотвратить причинение вреда ИИ: изменения минимальны, строго ограничены определенными типами файлов, а обновления зависимостей обрабатываются кодом, а не LLM. Система работает по принципу "fail closed", отклоняя неясные или ошибочные исправления и автоматизируя только безопасные категории результатов, оставляя проблемы безопасности для проверки человеком.Для защиты от выполнения недоверенного кода агент изолирует процессы, очищает переменные среды и рассматривает содержимое репозитория как недоверенный ввод. Жизненный цикл задания управляется явной конечной машиной, обеспечивая предсказуемые переходы и предотвращая такие проблемы, как обвинение агента в ранее существовавших сбоях. Технологический стек включает Java 21, Spring Boot, Maven и использует API сообщений Anthropic для LLM.Ключевые выводы из этого проекта подчеркивают важность измеримых базовых уровней, строгих ограничений на вывод для ИИ и использования LLM только для их "мыслительных" способностей, сохраняя при этом критические процессы детерминированными. Система разработана для отката, контрольных точек и повторных попыток, и, что особенно важно, всегда держит человека в курсе для окончательного утверждения. Проект поощряет обсуждение того, как другие подходят к безопасной автоматизации в агентах ИИ, работающих с кодом.