Жги бюджеты обдуманно: 1,31 млрд токенов, 606 долларов без ценности для бизнеса

12.10.26

Разработка - DevOps и автоматизация разработки

Все говорят про AI-native: агент сам берет задачу, пишет код и приносит готовую ветку. Мы построили такой конвейер для расширений 1С за три дня: gate на каждом commit, 313 тестов перед main, ревью агентами со скептиком и проверки, которые обязаны хоть раз покраснеть. Он сжег токенов на 606 долларов по прайсу API, а польза для заказчика за эти дни вышла нулевой. Рассказываем, как все устроено и что мы бы сделали с первого дня.

За три дня наш агент сжег токенов на 606 долларов по прайсу API, и ни один из этих дней не ушел на то, что нужно заказчику. Заметили мы это не сразу, а когда наконец догадались посчитать.

Нет, ключ не утек. Мы просто внедряли AI-native.

Черная Королева объясняла Алисе, что в ее стране надо бежать изо всех сил, чтобы хотя бы остаться на месте. Кэрролл написал это в 1871 году, а звучит как планерка любого отдела разработки в 2026-м. Год назад ИИ подсказывал строчку в редакторе, а сегодня агент сам берет задачу, пишет код, гоняет тесты и приносит готовую ветку. Кто еще не внедрил такое у себя, тот, кажется, уже отстал.

Вот и мы рванули с места. Как именно и почему тот самый ноль оказался лучшим, что с нами случилось, расскажу по порядку.

"Готово! Всё проверил, всё работает"

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

Врать агент не собирался, ему просто очень хочется закончить, примерно как стажеру в пятницу вечером.

Наш проект называется ИИ-оператор. Это расширение для Бухгалтерии, ЗУП и Управления торговлей: сотрудник пишет в чат, а модель работает с базой. Подробно о нем было в первой статье. Код продукта пишет Claude Code, а я ставлю задачи и решаю, что выпускать. Когда коммитов от агента стало больше, чем я успеваю прочитать, пришлось договориться о простом правиле: на слово не верим никому, и каждое "готово" должны подтвердить проверки.

Собрали все из того, что у 1С-ника обычно и так под рукой: git, PowerShell, YAxUnit, BSL Language Server. К ним добавились GitHub Actions на моей рабочей станции и три десятка скриптов на PowerShell и Python.

Первый gate

Каждый день повторяется одна и та же сцена: агент правит модуль, делает commit и получает от git отказ, потому что gate не пройден.

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

Отказ хука pre-commit и шаги gate из настоящей отметки
Отказ хука pre-commit и шаги gate из настоящей отметки

Стандарты смотрим в два слоя. Анализатор ловит то, что описывается правилом, а остальное читают агенты-рецензенты, у которых под рукой стандарты разработки с ИТС. Каждое их замечание уходит к еще одному агенту, скептику, чья единственная работа - доказать, что замечание пустое. Так отсеивается "мне кажется, тут что-то не так", которого у рецензентов-агентов, поверьте, хватает.

"Так стоп"

Перед main стоит второй gate, потяжелее. Скрипт поднимает временную Бухгалтерию из демо-шаблона и прогоняет три набора: 217 тестов YAxUnit, 70 сквозных тестов через MCP и 26 UI-тестов. В UI-тестах наш собственный менеджер тестирования открывает настоящий клиент и сам нажимает кнопки, даже ту самую "Выполнить", которую в рабочей базе жмет только человек. Через пятнадцать минут временная база удаляется, и без зеленого результата push в main не пройдет.

Три набора полного прогона в CI 11 октября
Три набора полного прогона в CI 11 октября

UI-тесты открывают отчет с графиком, список, движения документа и печатную форму
UI-тесты открывают отчет с графиком, список, движения документа и печатную форму

Сначала прогон работал по принципу "все или ничего". Стоило упасть одному UI-тесту, и агент послушно запускал все три набора заново, а это снова пятнадцать минут, потом еще пятнадцать.

В какой-то момент я не выдержал: "Так стоп. Если упал UI-тест, зачем заново гнать весь каскад YAxUnit + e2e?"

Теперь каждый набор засчитывается отдельно, и перезапускается только упавший, так что сломанный UI-тест больше не тянет за собой весь каскад.

UI-тесты проверяют маскирование, журнал операций и состояние ИИ-оператора
UI-тесты проверяют маскирование, журнал операций и состояние ИИ-оператора

"Бесит"

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

"Бесит e2e тест, который ждет 120 секунд при действии", - написал я агенту. Выяснилось, что UI-тест проверяет то же самое за пять секунд, так что медленный тест мы удалили.

Заодно в правила ревью добавился вопрос: нет ли в ветке долгой операции, которая будет повторяться в каждом прогоне и мало что дает. Агенты вообще любят писать новое, будь то тест, помощник или настройка. Через неделю в проекте уже три разбора даты, и все чуть-чуть разные. Поэтому принцип KISS (Keep It Simple, Stupid, делай проще) у нас проверяется так же строго, как стандарты.

Ревью, которое ревьюит ревью

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

Иногда это выглядит как магия. Кнопка дашборда правит очередь задач, а перед этим спрашивает git, нет ли в файле чужих правок. Рецензент заметил то, что я бы пропустил: если упадет сама команда git, ответ придет пустым, а пустой ответ код считал за "правок нет". Однажды эта кнопка тихо затерла бы чужую работу.

Находка рецензента и опровержение скептика
Находка рецензента и опровержение скептика

А иногда ревью превращается в бездонную бочку. Задачу про сам конвейер, со сборкой на своем сервере и дашбордом, оно гоняло 13 раундов, и каждый раунд находил что-то новое, все мельче и мельче. Полное ревью ветки стоит один-два миллиона токенов. За три дня его запускали 52 раза, и на него ушло полмиллиарда токенов, или 305 долларов по ценам API, то есть половина всего конвейера. Платим мы подпиской, а не по счетчику, но счетчик от этого не останавливается. Лимиты подписки в итоге закончились раньше, чем находки.

Куда ушли 606 долларов
Куда ушли 606 долларов

"Почему сожглось так много токенов и исчерпались лимиты? Можно как-то сэкономить?"

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

Проверку тоже проверяем

Хуже всего, когда тест всегда зеленый: непонятно, проверяет он что-нибудь или стоит для красоты.

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

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

Журнал покраснений, пять строк
Журнал покраснений, пять строк

Ночная смена

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

Каждый push ветки запускает проверки, а в 3:30 тот же полный прогон идет по main, так что утром агент первым делом видит, что покраснело за ночь. Однажды загрузка конфигурации во временную базу вернула код -1 еще до первого теста, и утро началось с разбора.

С телефона через GitHub можно поставить задачу в очередь или поднять ее выше. Статус "готов" ставлю только я, и держится это правило на учетной записи, а не на честном слове агента.

Агент ищет короткий путь

Делает он это не со зла: видит красный хук и хочет поскорее закончить. Самый короткий путь называется git commit --no-verify, и агент о нем прекрасно знает.

Поэтому поверх git-хуков стоит хук самого Claude Code. Он не дает агенту обходить проверки, спрашивает меня перед любой публикацией и запрещает останавливать процессы claude по имени. Последний запрет появился после реального случая: агент перезапускал Claude Desktop, остановил все claude.exe и прихватил заодно себя, потому что Claude Code называется точно так же. Сессия оборвалась на полуслове, и повторять этот фокус никому не хочется.

Хук Claude Code не дает обойти git-хуки
Хук Claude Code не дает обойти git-хуки

Ноль процентов

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

Тут и стоило задать вопрос, который надо было задать в первый день: а что за эту неделю получил заказчик?

Мы завели простую метрику, долю дней, когда в работе была задача для пользователя, а не для конвейера, и посчитали ее за 8-11 октября. Вышел ноль: все дни ушли на то, чтобы научиться бегать быстрее.

Черная Королева оказалась права только наполовину. Бежать действительно приходится изо всех сил, и AI-native дает такие ноги, каких у нас никогда не было. Но если не смотреть, куда бежишь, можно очень быстро остаться на месте.

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

Что взять себе

Если вы тоже собираетесь бежать, вот что мы сделали бы с первого дня:

  • gate перед commit с отметкой, которую дает только зеленая проверка, и хук, который без нее не пускает;
  • полный прогон на временной базе перед push в main, с перезапуском только упавшего набора;
  • ревью агентами со скептиком и лимитом на раунды;
  • правило "проверка готова, только если хоть раз покраснела";
  • запрет обходить хуки на уровне самого агента;
  • метрика пользы с первого дня, а не после недели бега на месте.

А "Выполнить" в 1С по-прежнему нажимает человек: конвейер ускоряет разработку, но отвечать за базу все равно нам.

Вступайте в нашу телеграмм-группу Инфостарт

AI-native ИИ-агент Claude Code конвейер разработки CI GitHub Actions git-хуки pre-commit pre-push YAxUnit BSL Language Server стандарты разработки код-ревью UI-тесты менеджер тестирования KISS метрики автоматизация разработки расширение конфигурации MCP

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)

Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.

27.10.2026    848    oyti    20    

16

Нейросети DevOps и автоматизация разработки Разработчик Руководитель проекта 1С 8.3 1С 8.5 Бесплатно (free)

Полтора месяца ИИ-агенты писали мне коммерческое расширение 1С. Я поднял журналы всех сессий и сложил по прайсу: $13 365, из них 94 % — за то, что агент заново перечитывает уже известное. Разбор счёта, три дыры, правила, которые вчетверо удешевили шаг, и скрипт, чтобы посчитать свой.

08.10.2026    2357    deda    29    

16

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Запуск MCP-сервера в Docker с --read-only, --cap-drop ALL, сетью none и внутренней сетью только до заглушки 1С. Что показали попытки соединения, записи на диск и чтения окружения, почему сервер падал на журнале и как это исправлено. Прогон на Docker 29.8.0 и mcp 2.2.0, в архиве Dockerfile и скрипт проверки.

1 стартмани

06.10.2026    783    Ninel_S    0    

8

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Бесплатно (free)

Подключаем Cursor к 1C: Platform Tools MCP на Windows: установка расширений, packagedef, IPC, токен и mcp.json. Восемь шагов со снимками экрана, проверка env_status, разбор MODULE_NOT_FOUND и конфликта портов. Исправляем ошибки предыдущей статьи и объясняем, как агент получает метаданные из XML. Стенд: Cursor 3.19.7, Platform Tools 0.9.6, MCP 0.3.0.

28.09.2026    6054    Ninel_S    2    

10

DevOps и автоматизация разработки Тестирование QA Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Бесплатно (free)

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    12308    KatanaDragon511    30    

40

Инструменты администратора БД Инструментарий разработчика Тестирование QA Системный администратор Разработчик Стажер 1С:Предприятие 8 Бесплатно (free)

В экосистеме 1С давно живут сотни инструментов: от Конфигуратора и Хранилища до систем тестирования, мониторинга, интеграции и CI/CD. Я собрал их в Ландшафт технологий, а теперь добавляю данные о реальном использовании. Рассказываю, как устроена карта, что показал первый опрос и почему в новой волне особенно нужны администраторы, аналитики и тестировщики.

01.09.2026    2843    mrXoxot    6    

25

DevOps и автоматизация разработки Разработчик Бесплатно (free)

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

31.08.2026    3813    Evil Beaver    3    

13

DevOps и автоматизация разработки Мониторинг Тестирование QA Разработчик 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    24661    mrXoxot    55    

88
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2343 12.10.26 16:57 Сейчас в теме
Есть еще один gate который надо добавить. Используйте rtk

На примере команды git status которая возвращает:

Было git status:

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update  what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   it/src/CommonModules/АнонимизацияПДн/Module.bsl
        modified:   it/src/CommonModules/АнонимизацияПДнПовтИсп/Module.bsl
        modified:   yaxunit/src/CommonModules/ОМ_АнонимизацияПДн/Module.bsl

no changes added to commit (use "git add" and/or "git commit -a")
Показать


Стало rtk git status:

* main...origin/main
 M it/src/CommonModules/АнонимизацияПДн/Module.bsl
 M it/src/CommonModules/АнонимизацияПДнПовтИсп/Module.bsl
 M yaxunit/src/CommonModules/ОМ_АнонимизацияПДн/Module.bsl


Работает по принципу хука, когда к команде добавляется прокси команда rtk с самого начала. Эта команда дальше выполняет вызванную команду, обрабатывает результат и минимизирует его, чтобы он остался понятным для LLM, но при этом минимифицрованным.

Токены экономит отлично. Возможно даже лучше чем все ваши гейты вместе взятые :)
2. oyti 107 12.10.26 17:00 Сейчас в теме
(1) Спасибо, попробуем
Для отправки сообщения требуется регистрация/авторизация