Локальный агент для автоматизации изменений в коде: тестирование и использование с LM Studio

Начну с предыстории, к идее создания такого агента привело несколько факторов:

  1. Сложность оплаты online решений, да и не часто это нужно…
  2. Не все данные можно отправлять во внешние агенты.
  3. К сожалению, мне приходится работать с несколькими проектами одновременно, а некоторые бросать на срок от 3 до 6 месяцев, на вспомнить уходит очень много времени.
  4. Было интересно с этим поиграть.
  5. Иногда нужна LLM когда нет доступа по сети.
  6. И т.д.

В начале года готовил для руководства информацию по LLM агентам, и пришла идея накидать полезный MVP.  И вот, после одного из объемных проектов, пока был в ожидании обратной связи начал накидывать модель, и оказалось, что с текущими библиотеками – это достаточно простая задача.

Сначала схема взаимодействия, далее структура файлов и библиотек, был выбор интерфейса GUI или CLI, если GUI, то, где? Остановился на CLI, это быстрее, проще обкатать, легко запускать через bat. Цель уточнил по ходу: локальный агент для ускорения вхождения в текущие проекты и все это на Python. Он работает в связке с LM Studio — популярной платформой для локального запуска языковых моделей. Это не просто генератор кода, а полноценный инструмент, способный сканировать проект, понимать контекст и вносить правки по запросу пользователя. Пока сделал через 1 итерацию.


Основные возможности агента

Цель проекта — упростить процесс вспоминания структуры кода, поиска места внесения правок. Рабочий цикл агента выглядит следующим образом:

  1. Выбор и загрузка модели: пользователь запускает LM Studio и загружает в него выбранную языковую модель.
  2. Запуск агента: после загрузки модели запускается Python-скрипт, через bat, в котором прописан препромт — базовая инструкция модели о том, как ей нужно работать. Этот препромт можно менять в зависимости от целей.
  3. Указание директории проекта: агент сканирует выбранную директорию, анализируя структуру проекта и содержимое файлов.
  4. Ввод пользовательского промта: вы вводите конкретную задачу (например: «замени все вызовы print() на логгирование через logging.info()»), и агент, на основе LLM, интерпретирует задание и вносит соответствующие предложения кода и места изменений.
  5. Сохранение изменений: правки вносятся вручную, во избежание так сказать..

Таким образом, агент не просто предлагает куски кода — он работает как автономный ассистент, выполняющий ваши инструкции в контексте всего проекта.


Преимущества подхода

1. Приватность и контроль
Работа полностью происходит локально, без подключения к внешним сервисам. Это особенно важно для закрытых корпоративных проектов, исследований или чувствительных данных.

2. Гибкость и масштабируемость
Вы сами выбираете модель, её размер и параметры. Хотите минимальную модель на слабом ноутбуке — пожалуйста. Нужно мощное решение с многопоточностью — тоже возможно.

3. Не только код
Хотя агент оптимизирован для Python, его функциональность можно адаптировать под любые текстовые задачи. Изначально это и было сделано для решения других задач. Это делает его полезным не только в программировании, но и в письменных проектах, технической документации или даже в управлении заметками. Об этом в другой раз.


Примеры применения

Вот лишь некоторые ситуации, в которых такой агент может оказаться незаменимым:

  • Возврат к проекту после перерыва
    Промт вроде «напомни, чем занимается этот проект и где точка входа» позволяет быстро восстановить контекст.
  • Начало работы с незнакомым кодом
    Можно задать агенту команду «сделай обзор структуры кода и опиши зависимости», и он сгенерирует текстовое описание.
  • Борьба с прокрастинацией
    Часто причина откладывания задач — неясность первого шага. Агент может предложить конкретные задачи, с которых стоит начать.
  • Автоматизация шаблонных правок
    Например, массовая замена устаревших конструкций, добавление логирования, генерация заглушек, автоматическое добавление докстрингов и комментариев.
  • Ускорение при тупике
    Если не знаете, как переписать функцию, достаточно описать задачу, и агент предложит несколько вариантов решения.
  • Документирование кода
    С помощью простого промта можно быстро задокументировать функции, классы или модули.

Как адаптировать под свои нужды

Проект легко расширяется: можно подключить другие языковые модели, сменить препромт, добавить фильтрацию файлов или включить интерфейс для визуального сравнения изменений. Также можно интегрировать систему в пайплайн CI/CD, превратив агента в полуавтоматическую систему код-ревью.

Если вы работаете не только с Python, ничто не мешает адаптировать препромт под другой язык, по идее. LLM справляются с большинством популярных синтаксисов, и не так давно искал ошибку в SQL запросе используя агента.


Заключение

Локальный агент на базе LLM — это шаг в сторону персональных помощников, которые не только подсказывают, но и делают работу за вас. Вместе с LM Studio он превращается в мощный инструмент повышения продуктивности, особенно в задачах, требующих сосредоточенности, повторяемости или быстрого входа в контекст.

Его легко запустить, просто адаптировать, и он становится отличным дополнением к привычным инструментам разработчика. Даже если вы не используете его ежедневно, он может стать незаменимым в те моменты, когда нужно быстро сдвинуться с места, понять чужой код или подготовить проект к следующему этапу работы.

Скачать и использовать код можно по ссылке https://github.com/sowco/codellm_helper