Два часа ночи. В дежурном канале Slack сыпятся алерты. Какой-то умный ассистент поддержки, на которого только вчера переключили 30% трафика, загнал себя в бесконечную петлю. Клиент просит отменить заказ, а эта LLM-поделка с красивым системным промптом на 400 строк выдает: «Я понимаю вашу боль, сейчас я помогу», генерирует это 50 раз подряд, жрет токены как не в себя и не делает ровным счетом ничего. Потому что у нее нет кнопки «отменить заказ». У нее вообще нет кнопок. Это просто болталка, прикрученная поверх RAG.
Если ваша нейросеть умеет только генерировать текст, вы не автоматизировали процесс — вы просто сделали очень дорогую поисковую строку. Я скажу прямо: бизнесу не нужны собеседники. Бизнесу нужны исполнители. Те самые AI-агенты для бизнеса, о которых все говорят, но мало кто катит в прод, — это не про новые веса в трансформере. Это архитектура системы, где модель имеет право нажать на кнопку.
Зачем вообще агент, если есть старый добрый RPA? Я постоянно слышу этот вопрос от операционных директоров. Ответ простой: RPA туп. Это костыль для legacy-систем. Если кнопка в интерфейсе сдвинулась на три пикселя, или ответ от API пришел не в виде плоского JSON, а с внезапной вложенностью, ваш RPA-скрипт падает и покорно ждет инженера. RPA — это рельсы. Чат-бот — это радио.
Агент — это экскаватор, которому дали чертеж. Он видит цель, смотрит на доступные ему инструменты, вызывает нужный метод, смотрит на результат, понимает, что вызов вернул 404, сам корректирует параметры и пробует еще раз. Он не маппит интент на жестко захардкоженный флоу. Он сам этот флоу строит в реальном времени. В этом суть.
AI-агенты, которые делают работу, а не болтают: архитектура агента с правом действия
Референс-архитектура автономного агента не требует магии. В ее основе лежит паттерн Reason and Act. Модель больше не пытается угадать правильный текст ответа, она работает в цикле:
- Восприятие (Observation): Парсинг сырого контекста задачи и состояния окружения.
- Память (Memory): Запись промежуточных данных в краткосрочный стейт, чтобы не потерять контекст между вызовами.
- Планирование (Reasoning): Оценка того, приблизились ли мы к цели, и выбор следующего шага. Здесь ломается 90% опенсорсных проектов — модель должна уметь признать ошибку плана на лету.
- Действие (Action): Генерация валидного payload для вызова конкретного инструмента к внешнему API.
Инструменты — это ручки к физическому миру. API CRM-системы, доступ к базе биллинга, интеграция с Jira. Агент должен уметь собрать JSON и дернуть endpoint. И вот здесь начинается настоящая инженерия. Рынок сейчас часто делает так: разработчики дают агенту wild-card доступ на чтение и запись куда угодно, скармливают всю OpenAPI спецификацию в промпт и молятся, чтобы галлюцинация не удалила прод.
Наш подход в Morana Labs прямо противоположный: агент получает строго изолированный toolchain под конкретную задачу. Мы ограничиваем радиус поражения. Если агент занимается рефандами, у него есть метод получения статуса транзакции и метод исполнения возврата. Причем второй имеет жестко зашитый лимит на сумму и требует обязательной валидации бизнес-логикой на стороне бэкенда. Мы никогда не доверяем LLM валидацию собственных действий.
Как только вы даете нейросети право на действие, вы открываете ящик Пандоры. Что если модель застрянет в цикле и начнет долбить API поставщика со скоростью 1000 запросов в секунду, выжигая кредиты? Контур безопасности строится на уровне инфраструктуры, а не системных промптов.
Первое правило: каждый вызов инструмента, меняющий состояние системы, должен нести идемпотентный ключ, сгенерированный до вызова. Если агент затупит, словит сетевой таймаут и решит дернуть API рефанда еще раз, бэкенд отдаст кешированный ответ первой транзакции. Никогда не полагайтесь на то, что модель «запомнит», что уже сделала это. Второе правило: Human-in-the-Loop для высокорисковых операций. Если действие имеет статус high-stakes, например, возврат суммы больше 100 долларов, исполнение приостанавливается. Инструмент возвращает агенту статус «требуется апрув оператора», агент пишет это в тикет и идет делать следующую задачу, пока человек не нажмет кнопку.
Где оркестрация агентов окупается, а где это чистый оверинжиниринг
Попытка запихнуть все инструменты в один мега-промпт и отдать одной тяжелой модели — путь в никуда. На десятой тысяче токенов внимания модель забудет половину функций и начнет выдумывать параметры вызовов из головы. Здесь вступает оркестрация. Разделение труда через мультиагентную систему.
Роутер принимает задачу и классифицирует ее. Агент-исследователь получает read-only инструменты, собирает контекст из баз данных и логов, складывая это в структурированный JSON. Агент-исполнитель берет этот стейт, и у него в арсенале есть только write-инструменты для закрытия транзакции. Агент-QA — это отдельная легковесная модель, которая смотрит на планируемое действие Исполнителя и сверяет его с политиками компании. Передача сырого текста между ними запрещена — только строгие контракты. На практике такие микро-агенты, вызывающие дешевые модели на edge-сервере прямо в контуре клиента, работают надежнее и быстрее, чем один раздутый GPT-4, пытающийся удержать в голове всю логику энтерпрайза.
Когда эта агентная архитектура окупается? Если ваш бизнес-процесс представляет собой прямую линию из точки А в точку Б, где шаг влево невозможен физически — вам не нужен AI. Напишите Python-скрипт или соберите pipeline в Airflow. Натягивать LLM на жесткие детерминированные процессы — это классический карго-культ. Вы будете тратить процессорное время на борьбу с недетерминированностью там, где нужен обычный if-else.
Но покажите мне операционку, где всё идет по прямой. Клиент хочет поменять адрес доставки, но только если заказ еще не передан логистам, а если передан — отменить, но только часть заказа, и пересчитать скидку. Жесткая логика умрет на попытке распарсить этот интент и протащить его по всем веткам условий. Здесь агент раскрывается полностью. Он сам понимает, что сначала нужно дернуть проверку статуса, сравнить корзину через внутренний калькулятор, и затем вызвать нужный endpoint.
Окупаемость начинается там, где вариативность процесса слишком высока для классического кода, а стоимость ошибки нейросети жестко ограничена инфраструктурными рамками. Внедряйте агентов по принципам бэкенд-разработки: строгий API-контракт, лимиты и наблюдаемость каждого шага. Логируйте не промпты, а state-машину агента в трейсинг. Дайте им правильные инструменты, ограничьте радиус поражения, и они сделают свою работу.