AI-агенты как отдельный слой: границы, оркестрация и риски

Когда в продукт добавляют LLM и «агентов» — в том числе в рамках AI-разработки под бизнес — их часто встраивают как ещё один модуль рядом с API и очередями. Это работает до первого инцидента с утечкой данных, неконтролируемым счётом от провайдера или поведением, которое нельзя воспроизвести по логам. Выделение слоя агентов — не про моду в архитектуре, а про явные границы ответственности: что может вызывать модель, в каком формате, с какими лимитами и кто утверждает изменения промптов и инструментов.

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

Чем слой отличается от «ещё одного сервиса»

Обычный сервис отвечает на запрос детерминированно или по чётко описанным правилам. Слой агентов по определению вовлекает недетерминизм, внешние вызовы к модели и часто — цепочку инструментов (поиск, API, выполнение кода). Если это не выделить:

  • бизнес-логика и «рассуждение» модели перемешиваются — сложно сказать, кто принял решение;
  • лимиты по токенам и RPS оказываются размазаны по кодовой базе;
  • тестирование сводится к ручным прогонам, а не к воспроизводимым сценариям.

Отдельный слой — это договорённость: вход и выход слоя описаны так же строго, как у платёжного адаптера. Внутри слоя допускаются промпты, планировщики и retry; снаружи остальной продукт видит стабильный контракт (события, DTO, коды ошибок).

Что фиксировать на границе слоя

Минимальный набор, без которого эксплуатация превращается в гадание:

  1. Идентичность вызоваtrace_id, связка с пользователем/тенантом, версия промпта и списка инструментов. Без версионирования вы не объясните регрессию «вчера работало».
  2. Политика инструментов — какие действия агент может инициировать (только чтение, запись в какие хранилища, с каким подтверждением). Всё, что меняет деньги или PII, обычно остаётся за явным шагом человека или за жёстко ограниченным API.
  3. Бюджет — лимиты на шаги диалога, на токены за запрос, на параллельные сессии. Это операционный параметр: его меняют так же осознанно, как размер пула к БД.
  4. Деградация — что отдаём пользователю при таймауте провайдера, при отказе инструмента, при срабатывании фильтра контента. Детерминированный fallback лучше «ещё одной попытки» без потолка.

Такой слой проще вынести в отдельный репозиторий или пакет с собственным CI: изменения в промптах проходят ревью и прогоняются против золотых сценариев, не смешиваясь с релизом монолита.

Риски, которые слой не отменяет

Выделение границ снижает хаос, но не убирает классы рисков:

  • Инъекции и злоупотребление инструментами. Модель может быть убеждена вызвать инструмент с параметрами, которых не было в намерении пользователя. Защита — allowlist аргументов, валидация на стороне исполнителя, разделение ролей «читатель / писатель».
  • Дрейф качества. Смена модели или даже температуры меняет поведение; без регрессионных наборов вы узнаёте об этом от пользователей. Нужны метрики задачного уровня: доля успешных завершений, эскалаций к человеку, стоимость на успешный кейс — не только p95 латентности.
  • Зависимость от вендора. Резкий прайс-чейндж или отключение региона бьёт по одному контуру. Слой упрощает подмену провайдера или отключение функции целиком, но только если контракт наружу не «протекает» семантикой одного вендора.

Честное ограничение: полной автономии без человека в контуре для большинства B2B-продуктов в 2026 году либо нет, либо она не проходит риск-комитет. Слой как раз помогает явно нарисовать, где человек обязателен (утверждение платежа, доступ к персональным данным).

Связка с дорожной картой продукта

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

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

Нужен разбор внедрения в ваш контур — brief@forzdev.ru или Telegram; кратко укажите стек, регуляторику и ожидаемую нагрузку по запросам.