ИИ в 1С: как собрать автономного AI-агента для разработки — проект Harness 1С

ИИ в 1С: как собрать автономного AI-агента для разработки — проект Harness 1С
Видео: ИИ в 1С: как собрать автономного AI-агента для разработки — проект Harness 1С

ИИ в 1С за последний год перестал быть экспериментом: поисковый спрос на тему вырос примерно вчетверо, а 1С-разработчики всё чаще спрашивают, какая нейросеть лучше работает с 1С, как внедрить ИИ-агента в разработку и можно ли автоматизировать рутину без облака. 

В этой статье я, показываю свой ответ на эти вопросы — проект "Harness 1С" обвязку, которая превращает кодового AI-агента в полноценного разработчика 1С. Материал собран из трёх частей серии: MCP-сервер с контекстной подсказкой, MCP-сервер поиска по метаданным конфигурации и оркестратор Symphony с трекером задач в GitLab.

Если коротко, цель Harness 1С — довести автоматизацию разработки 1С близко к 100%: вы ставите задачу и уходите пить кофе, а анализ, планирование, написание кода, тестирование и merge request берёт на себя AI-агент под контролем человека на ключевых этапах.

Почему нейросети плохо знают 1С и при чём тут MCP-сервер

Главная проблема разработки 1С с помощью ИИ в том, что практически любая модель почти не знает языка 1С. Топовые облачные модели — Claude, кодовые модели OpenAI — что-то про 1С знают, но этих данных недостаточно: модель начинает придумывать несуществующие методы и функции. Значит, агенту нужно подавать качественный контекст — точную справку по объектам, методам и свойствам платформы.

Именно эту задачу решает первый кубик системы — MCP-сервер с контекстной подсказкой 1С для кодового агента. Я взял с одного из открытых MCP-серверов на GitHub только механизм загрузки справки 1С, а поиск переписал полностью под свои требования. Причина простая, готовый сервер отдавал в контекст огромные объёмы текста. Для мощной облачной модели это терпимо, она переварит и запустит суб-агентов. Но я делаю ставку на автономную разработку, и вот почему это важно:

  • в любой момент могут отключить интернет — система должна продолжать работать
  • исходники не должны утекать в облако
  • локальной модели нужен максимально сжатый, точный контекст

Весь стенд работает локально. В первой версии — на двух видеокартах 5070 Ti с моделью Qwen3 на 27 млрд параметров, контекст 64 000 токенов. Позже я перешёл на более качественное квантование (Unsloth Qwen3, MTP, UD-Q8_K_XL) на связке 3090 + 5070 Ti с контекстом 65 000 токенов — это заметно ближе к оригинальной модели по качеству, чем раннее квантование NVFP4, которое, как справедливо заметили в комментариях, ощутимо уступает.

Как работает семантический поиск справки

На отладочном стенде видно, какие инструменты вызывает модель. Когда я прошу "обработку загрузки текстового файла", агент вызывает инструмент research, тот под капотом обрабатывает запрос и возвращает ровно нужный контекст: тип "Текстовый документ", методы чтения и записи файла, методы работы со строками, нужные свойства — всё, что необходимо для разработки. На модели в 27 млрд параметров это отрабатывает быстро (70–100 токенов в секунду) и точно.

На более сложном запросе — "напиши функцию отправки POST-запроса к HTTPS-сервису с обработкой исключений и логированием в журнале", агент подтягивает уже больше контекста (HTTP-соединение, HTTP-запрос и ответ, работу с защищённым соединением, запись журнала регистрации). Итоговая функция получается корректной: попытка/исключение, защищённое соединение, Content-Type application/json, тело в кодировке UTF-8, запись ошибки в журнал. Для полностью локальной модели результат отличный — и это без подключения к Claude Code, где качество будет ещё выше.

MCP-сервер поиска по метаданным конфигурации 1С

Справка по платформе — это половина дела. Вторая половина — знание конкретной конфигурации: какие справочники, реквизиты и табличные части в ней есть. Claude Code с облачной моделью решает это по-своему — пробегает субагентами по всей конфигурации и расширениям и собирает контекст. Но для автономной разработки на локальной модели нужен экономный инструмент, и им стал второй MCP-сервер — поиск по метаданным конфигурации 1С.

К уже готовому семантическому поиску справки (research) добавились новые инструменты: поиск по конфигурации и сборка готового контекста под задачу разработки. Всё это работает через графовую базу, где проиндексированы и типовая конфигурация, и моё расширение.

Как это выглядит на практике:

  • Прошу доработать справочник "Масла" и добавить реквизиты. Инструмент видит, что каталога "Масла" нет, и предлагает похожие варианты
  • Уточняю, нужен справочник "Моторные масла". Практически мгновенно агент вытаскивает все реквизиты, их типы, ссылки на ссылочные типы и перечисления, табличные части, метаданные и модули
  • Прошу справочник "Бренды", которого в конфигурации нет. Агент находит похожий справочник "Марки", у которого в синониме указано "Бренды", и предлагает решение — в том числе из основной конфигурации

Результат: кодовый агент точно знает, в какой XML-файл идти и с каким объектом работать. Такой инструмент особенно ценен именно в автономном режиме, когда нет огромного лимита токенов по подписке, чтобы перелопачивать десятки тысяч строк кода крупной конфигурации вроде ERP.

Оркестратор Symphony и трекер задач в GitLab

Два MCP-сервера дают агенту знания. Но чтобы это стало системой автоматизации разработки 1С, нужен дирижёр — оркестратор Symphony. Это сердце управления всеми агентами и задачами. Он решает три ключевые задачи:

  • мониторит трекер задач и реагирует на смену статусов
  • запускает нужного AI-агента на конкретную задачу и ведёт её по этапам
  • отправляет уведомления о ходе работы через отдельное приложение

Трекером служит локально развёрнутый GitLab: в репозиторий выгружено расширение 1С, а задачи ведутся через доску со статусами. У Symphony есть простой веб-интерфейс, где видно, какие агенты запущены и какую задачу каждый обрабатывает.

Уведомления в приложении на Flutter

Отдельный канал обратной связи — приложение на Flutter, работающее и на десктопе, и на телефоне. Логика такая, поставили задачу, занялись делами, а на телефон приходят уведомления по каждому шагу — "задача принята в работу", "агент составил план", "ждёт вашей проверки", "изменения влиты в основную ветку". В планах — открывать задачу и править план прямо из уведомления, не заходя в полноценный трекер.

Доска задач: как статусы управляют агентом

Ключевая идея — перемещение карточки по доске управляет поведением агента:

  • Open — только что созданная задача
  • Backlog — агент не работает, здесь можно подумать, разбить или переформулировать
  • To Do — сигнал агенту взять задачу в работу
  • Plan Review — агент составил план, его нужно проверить
  • In Progress — план утверждён, идёт разработка
  • Human Review — работа сделана, ждёт финальной проверки

Ещё один важный механизм — выбор исполнителя метками задачи. При постановке указывается агент: Claude (Claude Code), а в планах — OpenCode и Kimi. Это позволяет распределять модели по этапам, сильная модель на постановку и план, более простая и дешёвая (в том числе локальная) — на реализацию, когда ТЗ уже детально проработано.

Полный цикл разработки на живом примере

Соберём всё вместе на простой задаче: "изменить синоним справочника Магазины на Магазины версия 3".

  1. Постановка. Задача создаётся, переносится в Backlog — оркестратор начинает её мониторить. Перевод в To Do запускает агента, приходит уведомление "принята в работу".
  2. Планирование. Агент составляет детальный план: находит единственное место хранения синонима (XML-файл каталога магазина), планирует изменить нужное значение, проверить целостность структуры XML и прогнать поиск. Задача уходит в Plan Review.
  3. Правка плана. Я передумал и прямо в комментарии пишу "давай изменим на версия 4". Оркестратор реагирует на комментарий, агент полностью перерабатывает план с учётом замечания. Важно: на этом этапе не подключены ни MCP, ни скиллы — работает "чистый" Claude Code, и всё равно корректно находит нужное место.
  4. Разработка. Утверждаю план, задача переходит в In Progress. Агент выполняет работу, в веб-интерфейсе видно используемые инструменты.
  5. Проверка и слияние. Приходит "ждёт вашей проверки", задача в Human Review. Бот Symphony делает merge request: в XML-файле каталога магазина "магазин Авито" заменён на "магазин версия 4". Соглашаюсь, закрываю задачу — приходит уведомление о слиянии в основную ветку.

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

Зачем нужен контроль плана человеком

Да, конкретно эту задачу быстрее сделать руками — открыть конфигуратор и поправить синоним. Смысл раскрывается на масштабе, большая конфигурация и большой поток задач. Тренд — максимально отдавать разработку агентам, вплоть до отдельного агента-ревьюера. Но этап проверки плана человеком я оставляю осознанно, хочу видеть и утверждать план до начала разработки. Это разумный баланс автоматизации и контроля.

Куда движется Harness 1С

Дорожная карта объясняет, ради чего вся обвязка:

  • Разработка на основе документации. Раз в день обновляется документация по внешнему API, при изменениях агент сам заводит задачи, ставит их исполнителю и сливает результат в нужную ветку.
  • Ветки под конфигурации. Тиражное решение рассчитано на разные конфигурации, и каждая ветка — отдельное решение, отдельный агент отвечает за слияние по всем веткам.
  • Автосборка и прогон расширений. После слияния скрипт собирает изменения, выгружает расширение и загружает его в каждую тестовую базу для прогона.
  • Скиллы и MCP. К агенту подключаются скиллы и MCP, чтобы Claude знал структуру XML-файлов, документацию, строение конфигурации и расширения, связи метаданных, а также правила и работу с командной строкой конфигуратора (загрузка/выгрузка).

Итоговая цель — убрать с человека весь рутинный цикл, мониторинг документации, постановку задач, разработку, тестирование, релизы по всем конфигурациям и перезаливку изменений. Останется контроль плана — всё остальное делает агент.

Выводы: ИИ в 1С уже работает

Проект Harness 1С показывает практичный путь внедрения ИИ в реальную 1С-разработку — не абстрактную демонстрацию нейросетей, а рабочий конвейер:

  • MCP-сервер для 1С решает главную проблему — незнание моделью языка 1С и конкретной конфигурации, отдавая агенту сжатый и точный контекст.
  • Автономность на локальной нейросети (Qwen3) даёт независимость от облака, конфиденциальность исходников и работу без интернета.
  • Оркестратор Symphony и GitLab превращают набор инструментов в систему: статусы задач управляют агентом, а метки выбирают исполнителя (Claude Code, OpenCode, Kimi).
  • Человек остаётся в контуре на этапе утверждения плана — остальное берёт на себя агент, вплоть до merge request.

ИИ-агент для 1С — это уже не будущее, а рабочий инструмент. Спрос на тему растёт, и такой harness — способ автоматизировать разработку тиражного решения близко к 100%, оставаясь при этом полностью автономным.