Цифры считает база, а не нейросеть: что мы перенесли из промпта в код ИИ-агента для 1С
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Мы сделали агента, который отвечает на вопросы словами прямо внутри 1С: строит запросы к базе под правами пользователя, считает и показывает цифры. За полгода набралась статистика, которой обычно не делятся: 465 тяжёлых вопросов в журнале, 19 % вызовов запросов с ошибкой, разброс от 22 шагов на ответ до одного. Ниже про то, что пришлось чинить в коде, а не в промпте.
|
465
тяжёлых вопросов
в журнале за 180 дней |
19 %
вызовов запросов
с ошибкой |
22 → 1
шагов на вопрос
после переделки |
- Дорогое здесь не токены, а шаги: лимит 15 шагов на вопрос срабатывал регулярно.
- Подсказка к ошибке дописывается к вызову инструмента, а не в системный промпт: иначе слетает кэш.
- Правило в промпте модель выполняет как просьбу. Ограничением оно становится только в коде.
01Что за продукт
Расширение .cfe, которое ставится в чужую базу и не требует от клиента ни ключей, ни настройки модели.
В меню 1С появляется раздел с чатом. Человек пишет «кто из покупателей должен больше всего и сколько из этого просрочено», агент сам решает, какие данные нужны, строит запросы, считает и отвечает таблицей, диаграммой или файлом Excel со ссылками на документы. Понимает скриншоты ошибок через Ctrl+V и вложенные файлы.

Скриншот ошибки через Ctrl+V: агент нашёл причину, почему документ не проводится, и расписал, что нажать.
Главное решение в продукте: клиент не настраивает модель и не заводит ключи. Он ставит расширение, дальше всё на нашей стороне.
Отсюда и все сложности: чужая база, чужие права, чужие данные и один сервер, который должен это выдержать.
02Почему это не чат-бот с доступом к базе
Четыре ограничения встроены с самого начала. Каждое стоило отдельной работы.
[ФИО-1], в ответе метки раскрываются обратно.03Про вайб-кодинг
Вайб-кодить агента для 1С можно. Но не как первый проект.
Коротко, иначе статья вырастет вдвое. Это работает, если опыт у вас уже есть: модель пишет файлами целиком, человек проверяет, и такой режим для вас привычный. Начинать с такого продукта без этого опыта я бы не советовал: в агенте слишком много мест, где ошибка не падает, а тихо считает не то.
В 1С генерация перестаёт быть узким местом почти сразу. Узким местом становится проверка.
- «Компилируется» и «считает правильно» не одно и то же.
- Запрос может пройти без ошибки и вернуть не ту цифру.
- Отчёт может собраться с чужой себестоимостью и уверенным тоном объяснить результат.
|
около 1020
функций в расширении
|
2,5 МБ
весит модуль с инструментами
|
Что держит качество, кроме кода:
- Таблица «золотых вопросов» с эталонными цифрами, посчитанными руками запросом.
- Регресс по цифрам, а не по впечатлению от ответа.
- Сборка только на тестовой копии, никогда на боевой базе.
- Матрица установки: тонкий клиент, веб-клиент, пользователь без прав администратора, разные конфигурации.
04Настоящая сложность не в промпте
Самое дорогое в такой системе не генерация текста, а количество шагов. Шаг состоит из запроса к модели и результата инструмента.
Мы поставили лимит 15 шагов на вопрос, и он регулярно срабатывал.
Выгрузка из журнала за 180 дней по 465 тяжёлым вопросам показала главное: 19 % вызовов execute_query заканчивались ошибкой.
Модель не знает устройства конкретной базы. Она лезет в виртуальную таблицу регистра, получает «Поле не найдено», пробует соседнюю, снова мимо. Пять шагов из пятнадцати уходили в поиск, а не в ответ.
|
1
|
Подсказка прямо в ошибку
К ошибке сервер дописывает подсказку в той копии ответа, которую видит модель: правило виртуальных таблиц (суффиксы
Оборот и Остаток, Период и Регистратор без периодичности, ВидДвижения, Дт и Кт у бухгалтерии), имена из структуры объекта, замены, которые уже срабатывали именно на этой базе. |
|
2
|
Память по каждой базе
Память процесса плюс подгрузка из журнала за 30 дней. Только имена метаданных, никаких данных.
|
|
3
|
Готовый инструмент вместо поиска
Если вопрос повторяется в нескольких базах, вместо свободного поиска по метаданным появляется готовый инструмент. Сначала на сервере, без выпуска релиза, чтобы проверить на одной базе. То, что нужно многим, потом переезжает в расширение.
|
|
4
|
Своя карта базы
У каждой базы своя карта: где именно лежат продажи, долги, остатки. Свои объекты описываются в карте базы, общие правила идут в системный промпт.
|
Результат считаем в шагах, а не в ощущениях.
| Вопрос | Шагов |
| Где продаём ниже себестоимости, Бухгалтерия | 22 → 1 |
| Клиенты подразделения с контактами и валовой прибылью | 6 → 2 |
| Повторный вопрос по запросу, закреплённому через «Закрепить» |
9 → 1
|
Тот же принцип в ответе: файл Excel на 119 строк и итоги за период, посчитанные в базе, а не в тексте ответа.
Правило в промпте модель выполняет как просьбу, а не как ограничение. Всё, что можно вынести в код инструмента, надо выносить в код инструмента.
05Модель как часть архитектуры
Модель мы держим не как «подключённый сервис», а как компонент с требованиями. Их три.
|
1
|
Вызов инструментов обязателен
Без него агент не построит запрос, а просто поговорит. Проверять надо не «отвечает ли модель», а приходит ли вызов целиком: имя инструмента и все параметры. Часть проблем в таких проектах начинается с того, что параметры доезжают частично, и агент молча считает не то.
|
|
2
|
Кэш префикса решает
Системный промпт, подсказка базы и история вопроса образуют общий префикс, одинаковый для соседних шагов. Доля попаданий в кэш держится на 85–88 %. Держится она не сама: промпт не переписывается на ходу, а результаты инструментов текущего вопроса сервер хранит 15 минут, чтобы следующий шаг шёл с тем же префиксом. Любая правка промпта «по ходу» обнуляет кэш и удорожает каждый шаг.
|
|
3
|
Шаг меряется секундами, а не токенами
Пользователь смотрит в чат и ждёт. Нормальный шаг у нас 4–9 секунд. Бывает, что шаг растягивается до полуминуты, и для чата это уже поломка, а не «медленновато», хотя формально сервис отвечает.
|
Из этого выросла цепочка доступа к модели с автоматическим объездом.
| Шаг без ответа 40 секунд | Уходим на резервный доступ |
| Медиана за 10 минут выше 15 секунд | Объезд и уведомление |
| Два замера подряд ниже 10 секунд | Возврат на основной доступ |
Переключается и кнопкой, но по умолчанию решает автоматика.
06Цифры на сегодня
Что показывает работающая система, а не тестовый стенд.
|
≈6 000
шагов агента
в неделю |
4,3 и 6,3
медиана шагов
на ответ, две базы |
≈100 МБ
памяти занимает
сервис на нашей стороне |
За неделю агент делает порядка шести тысяч шагов, на пике три шага одновременно. Сервис на нашей стороне занимает около 100 МБ памяти. Медиана 4,3 шага на ответ по одной тяжёлой базе и 6,3 по другой.

Один такой вопрос: 87 884 позиции по всем складам, из них 63 155 требуют закупки. Модель тут ничего не считает, она вызывает инструмент и пересказывает итог.
Если из всего этого выбрать одну мысль: агент, который отвечает по чужой базе, упирается не в модель. Он упирается в количество шагов и в качество инструментов, которые эти шаги делают.
07Что сделали бы иначе
Четыре вещи, которые стоили нам времени и которые мы бы поменяли.
| 1 | Не тащили бы в расширение регламентное задание. Из-за него минимальная платформа подскочила до 8.3.23, и на 8.3.21 расширение просто не встало. Убрали, телефон перевели на фоновое задание пользователя. |
| 2 | Раньше бы завели «золотые вопросы». Первые месяцы чинили по ощущениям от ответов, а это самый медленный способ. |
| 3 | Не верили бы, что правила в промпте работают. Половина того, что мы туда написали, честно выполнялась через раз, пока не переехала в код. |
| 4 | И доработали бы маскировку: фамилии в падежах и адреса пока проходят мимо. |
Агент не заменяет программиста 1С и не пытается. Он снимает с программиста и бухгалтера вопросы вида «покажи цифры за квартал», на которые уходит полдня и которые не хочется делать руками. Всё остальное, включая проверку того, что он насчитал, пока остаётся человеку.
Вступайте в нашу телеграмм-группу Инфостарт