Владимир, автор статьи на Habr, продолжил разработку локального кодера-агента на LangGraph с доступом к MCP-инструментам. В первой части была создана инфраструктура и реализован простейший агент. Во второй части добавлены «мозги»: планирование, оценка результатов и человеческий контроль над выполнением шагов.

Ключевым изменением стала архитектура. Первоначально агент был полностью автономным: получал запрос, строил план и выполнял шаги без участия пользователя. Однако используемая на тот момент модель GigaChat3-10B от Сбера генерировала невалидные вызовы инструментов, что приводило к бесконечным циклам. Владимир ввёл счётчик попыток, но проблема осталась. В итоге пришлось сменить модель на Qwen3.6-35B в квантовании 4-bit и перейти с SGLang на vLLM. Новая архитектура стала полуавтономной: каждый шаг требует подтверждения со стороны пользователя (human-in-the-loop). Агент состоит из узлов: планировщик (составляет план по шагам), оценщики (проверяют результат каждого шага), узел инъекции шага плана, узел сжатия контекста для экономии памяти и узел финализации. Состояние агента расширено полями для запроса пользователя, плана, текущего шага, фазы работы и флага подтверждения.

Подход human-in-the-loop позволяет избежать неконтролируемых действий агента, особенно критично при работе с кодом. Это типичное решение для ответственных задач, где полная автоматизация рискованна. Статья подробно описывает реализацию на LangGraph с использованием MCP-серверов для работы с файлами, Git и документацией. Материал будет полезен разработчикам, строящим локальные ИИ-агенты с ограниченными ресурсами (32 ГБ памяти).

Из-за зацикливания GigaChat заменён на Qwen3.6-35B в квантовании 4-bit.