Метод, в котором старую систему вообще не трогают
Короткий разбор большой статьи о подключении ИИ-агентов к монолитам пятнадцати-двадцатилетней давности. Мы не идём по её кейсам подряд, а тянем одну нитку: каждый приём здесь придуман ради того, чтобы не писать в старую базу. Как только это замечаешь, вся архитектура читается как один длинный обход.
Почему обход дешевле честного пути
Список того, на чём держится корпоративный контур, статья приводит без смягчений: SAP ERP, базы Oracle, «1С:Предприятие», устаревшие Microsoft Dynamics, самописное на Java EE, мейнфреймы на COBOL. Спроектировано это пятнадцать-двадцать лет назад, хранит петабайты, обрабатывает миллиарды транзакций и при этом не имеет ни REST, ни GraphQL.
Дальше идут два числа, между которыми выбирают. Полная миграция монолита на микросервисы — от трёх до пяти лет и десятки миллионов долларов при высоком риске провала; замена старой ERP на систему уровня SAP S/4HANA обойдётся компании в сумму от двух до десяти миллионов и остановит отделы на годы. Предлагаемая альтернатива, по утверждению авторов, дешевле в десятки раз и меряется месяцами.
Шлюз работает переводчиком и вахтёром одновременно
Первое, что он делает, — переводит. Старое разговаривает через SOAP, XML-RPC или плоскими файлами по FTP; агент думает в JSON и вызывает функции. Шлюз принимает JSON, разворачивает его в громоздкий SOAP-запрос, разбирает пришедший XML и отдаёт агенту аккуратную структуру. Про 2005 год на том конце агент не догадывается.
Второе — сдерживает темп. Тысяча одновременных вопросов о статусе заказа превратится в тысячу синхронных обращений, и база ляжет. Поэтому между агентом и монолитом ставят брокер — RabbitMQ, Apache Kafka или потоки Redis, — а шлюз скармливает очередь с той скоростью, которую система выдерживает, в примере это десять запросов в секунду. Пользователь в это время видит надпись про анализ.
Третье — не спрашивает вовсе. Справочные данные, каталог, цены, список филиалов агрессивно кэшируются в Redis и обновляются асинхронно. Снижение нагрузки на основную базу заявлено «до 90%», и рядом стоит важная приписка: это оценка авторов для типичных сценариев, а не замер.
Право писать выдают по каплям
Прямого доступа к SQL у агента нет никогда. Ему дают строго ограниченный набор функций вроде запроса статуса клиента или создания тикета поддержки, и шлюз жёстко проверяет параметры: попытка передать инъекцию внутрь идентификатора — а через подмену промпта это теоретически возможно — отбивается до того, как запрос коснётся внутренней сети.
Служебная учётная запись работает по принципу наименьших привилегий: по большинству таблиц только чтение. Запись открывают точечно и лишь там, где не жалко — логи, тикеты, — и только через хранимые процедуры. Каждый байт переписки уходит в неизменяемое хранилище: либо блокчейн, либо диски WORM, чтобы цепочку рассуждений агента можно было восстановить посекундно.
Даже генерация SQL идёт мимо боевой базы
Отдельная беда — схемы, где таблица называется T_DOC_435 и несёт сто пятьдесят колонок без единого комментария. Под них строят семантический слой метаданных: описание структуры человеческим языком, понятное модели. Агент text-to-SQL сочиняет запрос по этому описанию, шлюз проверяет его на отсутствие удаляющих и изменяющих команд и выполняет — на реплике, а не на оригинале.
Что стоит за «пятнадцатью секундами»
Логистический пример разобран до деталей. Компания с парком в пятьсот фур живёт на сильно доработанной старой «1С:ERP» и десятках громадных таблиц. Заявку в свободной форме — двадцать паллет кирпича из Москвы в Казань, машина с гидробортом — агент разбирает на сущности, через шлюз спрашивает у базы свободные машины в радиусе пятидесяти километров, получает три варианта, сверяет рейтинги и допуски, пишет водителю в мессенджер и после его согласия отдаёт команду на путевой лист.
Итоговое сравнение: работа трёх диспетчеров за сорок минут против пятнадцати секунд круглосуточно. Стоит заметить то, чего в статье прямо не сказано: запись в старую систему во всей цепочке ровно одна — путевой лист. Всё остальное чтение, разговор и решение вынесено наружу.
Банковский пример устроен так же, только разделение оформлено паттерном CQRS. Балансы и история асинхронно уезжают в быструю память вроде Redis или Apache Ignite, и вопрос о тратах на кофе за месяц закрывается из кэша за сто миллисекунд. Перевод жене на десять тысяч рублей идёт другим путём: проверка намерения, код подтверждения, очередь Kafka и адаптер, который вставляет операцию в ядро так, будто это классический перевод.
Архив, который начинает отвечать
Историю переписок и ремонтов ночью выгружают из старых баз, чистят, режут на смысловые куски, прогоняют через модели эмбеддингов и складывают в векторные хранилища — названы Pinecone, Qdrant и Milvus. Дневную нагрузку это не трогает вовсе.
Показательна не техника, а пример ответа. На вопрос, почему станок B-450 перегревается при запуске, хотя давление в норме, поиск по слову «перегрев» не даёт ничего: в тикете 2018 года мастер написал, что «греется движок при старте». По смыслу находится именно он, и ответ содержит фамилию мастера, решение и артикул фильтра клапана давления — 33-B.
Отказ как штатный режим
Старое падает, и это заложено в поведение. Получив таймаут, агент ждёт две секунды, потом четыре, потом восемь. Если система не поднялась, он не показывает ошибку, а отвечает из последнего известного кэша: пятнадцать минут назад на складе было двенадцать штук, предзаказ оформлен, резерв подтвердится после восстановления. Параллельно фоновый агент собирает баг-репорт с логами и отправляет его инженерам в Slack.
Календарь и то, чем он подкреплён
Внедрение расписано на четыре фазы. Две-три недели теневого режима, где агенты только читают и пишут черновики для живых операторов. Три-четыре недели внутреннего помощника, на этом этапе появляется запись в некритичные системы. Четыре-шесть недель до выхода к клиентам, и только после аудита безопасности. Дальше непрерывно — расширение парком узких агентов: ночной аудитор транзакций, снабженец, маркетолог.
Цифры выигрыша поданы честнее, чем принято в таких текстах, и это стоит перенести целиком. Разгрузка штата на 30–40% — оценка авторов для типичных сценариев. Рост конверсии на третьей фазе назван существенным без единого числа. Логистическая компания и банк описаны как сценарии, а не как названные заказчики; ни одного имени клиента в статье нет.
Границы, о которых сказано прямо
Там, где облако запрещено политиками — оборонный подряд, медицина, платёжные карты, — предлагается разворачивать открытые модели у себя: Llama 3, Mistral, Qwen, сжатые до GGUF, AWQ или EXL2, вплоть до полностью изолированного контура без интернета. Расходы на модели ограничивают лимитами по токенам, а спам-трафик при атаке шлюз срезает сам, чтобы бюджет не «скликали».
Из коана следует практический вывод, ради которого всё и затевалось. Ценность монолита не в коде, а в том, что в нём накоплено, — и любая миграция рискует именно этим. Метод предлагает не переносить накопленное, а оставить его на месте и научиться спрашивать. Плата за такое решение названа авторами прямо: слой посредников, который придётся содержать вечно.
Первоисточник
В полной статье восемнадцать разделов: анатомия шлюза целиком, два кейса с подробностями, обработка бумажных документов зрением, приём криптоплатежей старыми базами, слой LLMOps под требования регуляторов и автоматическое обнаружение новых колонок.
Читайте также
- Восстановлен или повторён: три слоя Протокола РегенерацииХроника проекта
- Ошибка с ценником: как Оракул AIFA считает нарушение в долларахХроника проекта
- Кто наследует ваши аккаунты: четыре различия и один вечер работыНаследство и память