ИИ в разработке на 1С: не чат, а процесс. 1С.. 1С. CI.. 1С. CI. gitlab.. 1С. CI. gitlab. искусственный интеллект.. 1С. CI. gitlab. искусственный интеллект. яндекс трекер.

Я разработчик 1С. Сообщество сейчас в основном пишет скиллы для агентов, собирает библиотеки промптов, подключает агентов к EDT по MCP через плагин и дает им локальные инструменты для работы с конфигуратором. Я тоже этим занимаюсь, и польза есть. А рабочий день почти не изменился.

Задача приходит в трекер. Я открываю чат с агентом, пересказываю ему задачу и отвечаю на его вопросы. На половину вопросов ответить не могу: они про бизнес. Иду к аналитику или к заказчику, возвращаюсь, пересказываю ответ агенту. Потом проверяю код, запускаю тесты, пишу комментарий в задачу и меняю статус.

Писать код ИИ стал быстрее. Все остальное по-прежнему проходит через разработчика, который носит вопросы, ответы, статусы и контекст между агентом и людьми. Чем сильнее агенты, тем большая часть дня уходит на эту переноску, а не на код.

Ниже я описываю другой подход и стенд, на котором его проверял. Задача из трекера сама идет по этапам, агент работает в CI, а люди подключаются там, где нужно их решение.

Разработчик перестает быть прокладкой между ИИ и людьми

Разработчик перестает быть прокладкой между ИИ и людьми

Сразу оговорюсь: я не специалист по CI/CD и DevOps. От меня идея и описание процесса. Скрипты, конвейер и интеграции собирал ИИ-агент по моим требованиям, и это тоже часть эксперимента. Разработчик 1С без опыта в DevOps поднял работающий стенд за один день.

Агент в процессе, люди в точках решения

Агент становится участником процесса, как еще один сотрудник со своими статусами в задаче. Сообщения в чате он не ждет. Берет задачу из трекера, делает свой этап и передает результат тому, кто за этот этап отвечает.

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

Между утверждениями агент работает сам: пишет код и тесты, запускает проверки, открывает Merge Request. Человек видит задачу на доске и получает ее, когда нужно его решение. Не согласен – пишет комментарий, и агент переделывает свой этап.

Новой методологии тут нет. Обычная команда так и работает: аналитик пишет ТЗ, архитектор согласует решение, разработчик делает. Меняется одно. Черновую работу на каждом этапе делает агент, а люди проверяют и утверждают.

Схему можно растить до корпоративного конвейера ИИ. Перед системным аналитиком ставятся свои этапы агента: проверка заявки бизнеса на полноту и понятность, сверка с законодательством, например о персональных данных. У каждого такого этапа тоже есть человек, который утверждает результат.

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

Что это меняет в работе команды

Оркестрация идет сама. Разработчик больше не ищет, кто аналитик по этой задаче, и не несет вопросы архитектору. Не нужно писать в мессенджер «посмотри, пожалуйста» и собирать созвон, чтобы проверить, одинаково ли все поняли задачу. Статус сам призывает того, чья очередь. Ответ — это комментарий в задаче и нажатая кнопка, после чего следующий этап стартует без диспетчера.

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

Модель процесса

Задача проходит четыре этапа агента, и после каждого результат утверждает один человек. Любой из них может вернуть этап на доработку с комментарием.

Агент делает этап, человек его утверждает

Агент делает этап, человек его утверждает

Блоки со звездочкой на схеме — ход агента, с человечком — решение человека, пунктир — возврат на доработку. Каждый шаг отдельным статусом заведен в трекере, поэтому по доске видно, у кого задача сейчас: у агента или у конкретного человека. Если агент застрял на любом этапе, задача уходит в статус «Нужен человек».

Привычная доска показывает, в каком состоянии задача: в работе, на проверке, готово. Здесь колонки отвечают на другой вопрос — чей сейчас ход. Часть колонок принадлежит агенту, остальные конкретным ролям. Думаю, скоро так будут выглядеть доски в большинстве команд: ИИ из помощника в чате становится исполнителем со своими статусами, а передачу задачи от одного участника к другому ведет сам процесс, а не разработчик.

Доска показывает не состояние задачи, а чей ход

Доска показывает не состояние задачи, а чей ход

Результат каждого этапа агент пишет дважды: комментарием в задаче для человека и файлом в ветке для следующего этапа. Аналитику не нужен доступ к GitLab, его часть целиком в трекере.

Роли заведены полями задачи «Аналитик», «Архитектор» и «Разработчик». Агент призывает в комментарии того, чей сейчас ход, и трекер присылает этому человеку уведомление.

Четыре этапа — минимальный вариант. В реальной компании добавятся свои: согласование с информационной безопасностью, приемка заказчиком, выпуск в релиз. Правило то же: у каждого статуса есть владелец, агент или конкретная роль.

На каждый этап кладется отдельный markdown-файл с инструкцией для агента. В нем написано, что считать готовым результатом, какие вопросы задавать и чего не делать. Анализ, проектирование, план и разработка читают разные файлы. Новый этап в компании означает новый файл и новый статус, а не новый чат с договоренностями на словах.

Модель тоже назначается на этап. Сильная нужна там, где агенту приходится думать: в архитектуре решения, в разборе спорных требований. На написание кода по утвержденному плану можно поставить модель слабее и дешевле, потому что думать ей уже не придется. Что строить и в каких файлах, решено и проверено людьми на предыдущих этапах. Какую модель какому этапу дать, каждая компания решает сама, под свои задачи и бюджет. Решение записывается в конвейер один раз, и на каждом шаге модель никто не выбирает.

Демонстрационный стенд

Все работает на одной машине разработчика под Windows. Снаружи к ней никто не подключается, стенд сам ходит в трекер и в GitLab.

Роль в схеме

На стенде

Чем можно заменить

Трекер задач

Яндекс Трекер

Jira, YouTrack, Redmine, Битрикс24, любой трекер с API и настраиваемыми статусами

Хранилище кода и CI

GitLab

GitHub, Bitbucket, Gitea; Jenkins, TeamCity

Сервер сборки

GitLab Runner на машине с платформой 1С

любой агент CI, где установлена 1С

ИИ-агент

программа командной строки без интерфейса

любой такой агент, в том числе на локальной модели

Исходники 1С

выгрузка конфигуратора в XML

проект EDT

Тесты

YAxUnit

Vanessa-Automation и другие

Оркестратор

небольшой скрипт опроса

вебхуки трекера, n8n, свой сервис

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

Подопытная — маленькая конфигурация с двумя справочниками, документом «Заказ клиента» и одним общим модулем. Рабочий код компании на стенд не попадает.

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

Так собран тестовый демо-стенд для статьи, и только он. В корпоративном решении те же роли можно закрыть другими инструментами, безопаснее и удобнее в эксплуатации: свой GitLab и раннеры на серверах, вебхуки вместо опроса раз в минуту, хранилище секретов вместо файла на диске, модель внутри контура компании. Процесс и роли людей от этого не меняются.

Исходники стенда открыты: 1c-ai-pipeline.

Агент на стенде — заменяемая деталь, а не часть процесса. Сначала этапы проходил один CLI-агент, потом тот же конвейер без смены статусов и job запустил другой. Поменялась команда запуска, а спека, архитектура, план и ревью остались на своих местах.

Как это работает изнутри

Управляющий сигнал — статус задачи в трекере. Статусы вида «AI: …» значат, что ход агента, все остальные — что ход человека.

Стенд: все на одной машине, наружу только исходящие запросы

Стенд: все на одной машине, наружу только исходящие запросы
  1. Оркестратор раз в минуту запрашивает у трекера задачи в статусах «AI: …». Вебхук не используется: облачный трекер до локальной машины не достучится, а открывать ее в интернет ради демо я не хочу.

  2. На каждую такую задачу он запускает pipeline в GitLab через API и передает ключ задачи и этап.

  3. Job на локальном runner читает задачу со всеми комментариями и запускает агента на один этап.

  4. Агент публикует результат комментарием, призывает человека из поля роли и переводит задачу дальше.

  5. Человек отвечает в комментарии и нажимает кнопку перехода. Задача снова попадает в статус «AI: …», и цикл повторяется.

Между запусками агент ничего не помнит. Состояние хранится в задаче и в ветке: спека, архитектура и план лежат комментариями для людей и файлами для следующего этапа. Поэтому между этапами может пройти день, и ничего не потеряется.

Рабочий процесс трекера описан в репозитории JSON-файлом с ролями, статусами и переходами. По нему скрипт через API создает статусы, рабочий процесс, очередь и поля ролей. Процесс правится через Merge Request, как код.

Если этап упал или не запустился, задача уходит в «Нужен человек» с причиной в комментарии. Сломанный этап не крутится по кругу, а сразу виден на доске как задача для человека.

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

Ревью тоже идет не в чате. Замечания пишутся в Merge Request, к строкам кода. Чтобы вернуть работу агенту, разработчик ставит на MR метку ai-rework или начинает комментарий с @ai. Оркестратор выгружает агенту нерешенные обсуждения из MR, агент правит ту же ветку, отвечает в каждом обсуждении и снова отдает MR на ревью. Вернуть задачу так можно не больше пяти раз, потом она уходит человеку: пусть решает он, а не гоняет агента по одному кругу. Merge делает разработчик, после чего оркестратор сам переводит задачу в «Решена».

Живая задача от заявки до merge

Задача AIDEMO-4: «Нельзя сохранить заказ со строкой без количества». Менеджер написал ее как обычно, без деталей. Все этапы прошли на самой дешевой модели линейки.

Роли в демо играют вымышленные сотрудники: аналитик Елена Соколова, архитектор Андрей Ковалев и разработчик Дмитрий Орлов. Агент пишет от своих учеток: «AI-агент» в трекере и «AI Agent» в GitLab. Дальше весь путь задачи по карточкам, на каждый раунд ход агента и ход человека.

01. Менеджер ставит задачу как обычно
ИИ в разработке на 1С: не чат, а процесс - 5
02. Агент разбирает заявку
ИИ в разработке на 1С: не чат, а процесс - 6
03. Аналитик отвечает на вопросы агента
ИИ в разработке на 1С: не чат, а процесс - 7
04. Агент предлагает архитектуру
ИИ в разработке на 1С: не чат, а процесс - 8
05. Архитектор утверждает решение
ИИ в разработке на 1С: не чат, а процесс - 9
06. Агент составляет план доработки
ИИ в разработке на 1С: не чат, а процесс - 10
07. Разработчик утверждает план
ИИ в разработке на 1С: не чат, а процесс - 11
08. Агент пишет код и тесты
ИИ в разработке на 1С: не чат, а процесс - 12
09. Разработчик проверяет Merge Request
ИИ в разработке на 1С: не чат, а процесс - 13

Когда агент не справился

От агента в процессе нужен не только результат. Не менее важно, чтобы он останавливался, когда работать не по чему. Я проверил это на задаче, которая попала не в ту очередь: менеджер попросил поправить расчет отпускных, а в демо-конфигурации есть только заказы. Агенту хватило 20 секунд, чтобы понять, что зарплаты в этой базе нет. Спецификацию он писать не стал, объяснил, чего не хватает, и перевел задачу в “Нужен человек” с призывом разработчика. Прогон обошелся меньше чем в цент.

Агент остановился и позвал человека

Агент остановился и позвал человека

Что агенту разрешено

Права агента задает конвейер на каждый запуск, а не уговоры в промпте. На этапах анализа, архитектуры и плана он пишет только в папку задачи, командная строка и интернет закрыты. На разработке добавляются папки с кодом и тестами и ровно одна команда: прогон тестов. Коммитит, пушит и мержит не агент.

Что агенту можно и нельзя

Что агенту можно и нельзя

Это настройки тестового стенда. В компании ограничения можно сделать строже: изолированные раннеры, хранилище секретов, сетевые политики.

Сколько времени это экономит

Замерить экономию честно сложно, поэтому время людей ниже примерное. Я прикинул по своему опыту, сколько уходит на небольшую доработку, если работать с агентом в чате, и сколько той же работы остается людям, когда задача идет по процессу. Ожидание ответов в таблицу не входит, считается только время, которое человек тратит руками. Время агента взято из логов AIDEMO-4.

Шаг

Сейчас: разработчик и агент в чате

С процессом: люди

С процессом: агент на AIDEMO-4

Прочитать задачу менеджера, понять, чего хотят

15-30 мин

2-5 мин, аналитик открывает задачу по уведомлению

0,5 мин на весь анализ

Собрать контекст и перенести задачу в чат агента

10-20 мин

1-3 мин, проверить, что в задаче назначены роли

входит в анализ: агент сам читает задачу и конфигурацию

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

30-60 мин

5-10 мин, аналитик прямо в задаче

не участвует

Спецификация: составить, согласовать с аналитиком

30-60 мин

5-10 мин, аналитик проверяет

входит в анализ

Архитектура: обсудить с архитектором, созвон или переписка

30-60 мин

10-15 мин, архитектор читает решение

0,8 мин

План доработки

15-30 мин

5-10 мин, разработчик проверяет

0,7 мин

Код вместе с агентом: промпты, правки, повторы

30-90 мин

3-5 мин, разработчик читает отчет агента и отклонения от плана

1,5 мин вместе с прогоном тестов

Тесты: написать, собрать базу, прогнать

30-60 мин

1-2 мин, посмотреть отчет тестов в MR

тесты пишет агент на шаге кода, контрольный прогон конвейером 38 с

Merge Request, описание, комментарии и статусы в трекере

10-20 мин

1-2 мин, проверить описание MR

секунды, конвейер

Ревью кода

20-30 мин

20-30 мин, разработчик

не участвует

Правки по замечаниям ревью

20-40 мин

2-5 мин на замечание с @ai

1,9 мин

Итого

4-8 часов разработчика

около 1-1,5 часа на троих

около 5 минут работы модели

Разработчик на такой задаче тратит в несколько раз меньше времени, и почти все оно уходит на ревью. Аналитик и архитектор тратят примерно столько же, сколько раньше на созвоны, только теперь отвечают письменно в задаче. Календарный срок от заявки до merge процесс сам по себе не сокращает: если аналитик ответит через день, задача день и будет ждать. Зато ожидание видно на доске, и разработчик за это время не носит вопросы между людьми, а занимается другим.

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

Сколько это стоит в деньгах

Каждый запуск агента оставляет в артефактах job отчет: время, шаги модели, токены и стоимость. По AIDEMO-4 вся задача обошлась в 68 центов, включая доработку по замечанию ревью. Дороже всего этапы с кодом: там агент много раз перечитывает модули конфигурации.

Сколько стоил AIDEMO-4

Сколько стоил AIDEMO-4

Цифры посчитал сам Claude CLI по ценам API. На стенде агент работает по подписке, отдельного счета за эти прогоны нет. Сильная модель на этапе архитектуры обойдется дороже. Сравнивать это стоит с часом работы аналитика, архитектора и разработчика, а не с нулем.

Что не решено

Остаются вопросы, на которые стенд пока не отвечает.

Первый вопрос любой компании: код уходит во внешнюю модель. На стенде только тестовая конфигурация. Агент вызывается одной командой в job, и замена на локальную модель остальную схему не меняет. Что схема от агента не зависит, стенд уже показал: этапы пережили смену CLI-агента. Насколько хуже станет результат на локальной модели, я не проверял.

Утверждение не гарантирует проверку. Аналитик, который нажимает “Утвердить спеку” не читая, отправит ошибку в код. Процесс делает ответственность видимой, но не заменяет ее.

За код агента отвечает разработчик, который утвердил план и сделал merge. Агент не мержит и не пишет в основную ветку. Оркестратор только замечает, что merge уже случился, и закрывает задачу.

Права на кнопки пока не ограничены: “Утвердить архитектуру” может нажать любой участник очереди. В рабочей версии переходы нужно закрепить за ролями.

Итог

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

Инструментов, этапов и статусов может быть сколько угодно. Яндекс Трекер, GitLab и конкретный CLI-агент на стенде взяты для демонстрации, процесс устроен так, чтобы их можно было заменить, не переписывая правила для людей. Исходники стенда: gitlab.com/maxrubtsoff/1c-ai-pipeline.

Автор: maxrubtsoff

Источник