# Как развернуть серверных ИИ-агентов в продакшене с помощью Amazon Bedrock

Источник: https://www.youtube.com/watch?v=8yHVfM_E39w
Канал: DeepLearning.AI
Опубликовано: 27.03.2025

---

На воркшопе ИТ-платформы DeepLearning.AI специалист по связям с разработчиками из AWS Майк Чемберс (Mike Chambers) представил концепцию создания и развертывания масштабируемых ИИ-агентов. Основное внимание в выступлении было уделено переходу от локальных экспериментов в Jupyter-ноутбуках к полноценной эксплуатации систем в корпоративной среде (продакшене). Спикер продемонстрировал, как экосистема Amazon Bedrock в сочетании с серверной архитектурой позволяет решать задачи бизнеса без необходимости управлять инфраструктурой.

## 🛠️ От экспериментов к продакшену: концепция серверных агентов
[[JUMP:0:26]]

Сегодня ИТ-индустрия сталкивается с растущим давлением со стороны руководства организаций, требующего реальной отдачи от инвестиций в технологии искусственного интеллекта. Разработчики успешно создают прототипы систем и тестируют архитектуру RAG (генерации с дополнением извлечения) на локальных ноутбуках, однако запуск этих решений в промышленном масштабе требует принципиально иного подхода. 

По определению Майка Чемберса, ИИ-агент представляет собой систему, использующую генеративный искусственный интеллект для взаимодействия с внешним миром, выходящим за рамки внутренних данных самой модели. С технической точки зрения агент выполняет роль оркестратора. Под капотом он осуществляет сложное манипулирование строками, но его «разум» инкапсулирован в большой языковой модели. Основным свойством агента является способность работать в циклическом режиме: принимать запрос, обращаться к инструментам, анализировать полученный результат и принимать решение о следующем шаге.

Для создания отказоустойчивой и масштабируемой агентной системы Майк Чемберс предлагает использовать полностью серверный (serverless) стек AWS, который исключает необходимость администрирования серверов и обновлений ОС. Архитектура такого решения включает следующие элементы:

* **AWS Lambda**: идеальная среда для безопасного и масштабируемого выполнения отдельных функций (инструментов агента).
* **Amazon Bedrock**: облачная платформа, предоставляющая управляемый доступ к широкому спектру базовых моделей от различных разработчиков.
* **Хранилища данных**: серверная NoSQL-база данных Amazon DynamoDB и объектное хранилище Amazon S3 для документов.

В каталоге Amazon Bedrock доступны модели Anthropic Claude, Meta Llama, Mistral, управляемые эндпоинты DeepSeek R1, а также собственная линейка моделей Amazon Nova. Для разработчиков критически важен интерфейс Converse API, который низкоуровнево абстрагирует логику диалога. По словам Чемберса, главным преимуществом использования Bedrock по сравнению с прямым обращением к API отдельных провайдеров является то, что для перехода на совершенно другую модель (например, на ставшую популярной DeepSeek R1) достаточно изменить всего один идентификатор модели в коде.

## 💻 Пошаговое создание агента с помощью Boto3 SDK
[[JUMP:14:02]]

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

Процесс конфигурации агента на языке Python с использованием AWS SDK (Boto3) состоит из следующих шагов:

1.  Инициализация специализированного клиента для работы с агентами Bedrock через команду `boto3.client('bedrock-agent')`.
2.  Вызов функции `create_agent`, в которую передаются базовые параметры: имя агента, привязанная модель (в данном примере — Claude 3 Haiku), роль безопасности IAM и системная инструкция.
3.  Ожидание перевода агента из статуса создания (`creating`) в статус готовности к подготовке.
4.  Вызов метода `prepare_agent` для компиляции конфигурации агента.
5.  Создание постоянного продакшен-алиаса через `create_agent_alias` для последующего вызова в приложениях.

Майк Чемберс подчеркнул, что системная инструкция в Amazon Bedrock — это не просто стандартный промпт, а метаданные, которые платформа автоматически упаковывает вместе со схемами инструментов в финальный контекст для LLM. Примечательно, что вся процедура создания промышленной ИИ-системы происходит без развертывания виртуальных серверов EC2 или контейнеров.

Для взаимодействия с созданным агентом используется другой клиент — `bedrock-agent-runtime`. При вызове функции `invoke_agent` обязательным параметром является `session_id` (уникальный UUID). Поскольку вся история переписки хранится внутри самого агента, передача одного и того же `session_id` позволяет бесшовно продолжать диалог в рамках одной сессии. Важнейшей опцией для разработчиков является включение трассировки (`trace='ENABLED'`), которая возвращает поток событий (event stream) и позволяет детально видеть логические шаги модели и процесс ее рассуждений при отладке.

## 🔌 Подключение внешних инструментов через Action Groups
[[JUMP:28:15]]

Агент, лишенный инструментов, не способен помочь пользователю в решении транзакционных задач. Чтобы связать ИИ с внешними ИТ-системами, в Amazon Bedrock используется механизм групп действий — **Action Groups**. Каждая группа объединяет несколько логических функций (инструментов), выполнение которых делегируется серверным функциям AWS Lambda.

Для того чтобы модель понимала, когда и как вызывать внешний инструмент, разработчик должен описать его с помощью схемы функций (Function Schema). Майк Чемберс обратил особое внимание на то, что текстовые описания (descriptions) функций и их аргументов имеют критическое значение:

> «В AWS есть много мест, где можно оставить описание сервиса, и никто из нас этого обычно не делает. Но здесь это действительно важно, потому что именно этот текст большая языковая модель будет использовать для анализа и рассуждений».

В рамках демонстрации для интеграции с CRM-системой были созданы схемы для трех функций:

* `get_customer_id`: принимает имя, телефон или email пользователя для поиска его ID в базе данных.
* `send_to_support`: передает запрос в службу поддержки, требуя ID клиента и суммаризацию проблемы.
* `purchase_search`: осуществляет поиск транзакций по описанию покупки и дате.

В схеме параметров жестко задается их обязательность (`required`). Если параметр отмечен как обязательный, LLM на основе логических рассуждений сначала попытается выяснить недостающие данные у пользователя в чате и только потом инициирует вызов функции Lambda. Любое обновление состава инструментов требует повторного прохождения цикла «Push to Production»: обновления группы действий, переподготовки агента (`prepare_agent`) и обновления его алиаса.

## 🧮 Расширение возможностей: Code Interpreter и Guardrails
[[JUMP:37:03]]

Языковые модели превосходно работают с текстом, но традиционно испытывают трудности с точными математическими расчетами и детерминированной логикой. Для преодоления этого ограничения в Amazon Bedrock Agents интегрирована функция **Code Interpreter** (интерпретатор кода).

Этот инструмент предоставляет агенту доступ к изолированной и безопасной среде выполнения кода. Обнаружив задачу, требующую вычислений (например, перевод фразы пользователя «10 недель назад» в точную календарную дату для поиска чека), модель самостоятельно пишет скрипт на Python, запускает его внутри песочницы и забирает текстовый результат выполнения. По соображениям безопасности среда Code Interpreter полностью изолирована от интернета, чтобы исключить выполнение опасного вредоносного кода. 

По утверждению Чемберса, возможности интерпретатора кода шире стандартной математики: в его практике инструмент использовался для динамической генерации QR-кодов из URL-ссылок и даже для обучения небольших моделей машинного обучения на лету прямо внутри агентского воркфлоу.

Для обеспечения корпоративной безопасности и соответствия политикам компании применяются технологические барьеры — **Guardrails** (активные ограничения). Они работают в режиме реального времени, анализируя как входящие запросы пользователей, так и ответы агента. Защитные барьеры выполняют следующие функции:

* Блокирование попыток инъекции промптов (Prompt Attack), когда пользователь пытается заставить агента игнорировать системные инструкции.
* Фильтрация нежелательного контента по нескольким уровням (насилие, оскорбления, язык вражды, сексуализированный контент).
* Контроль утечки конфиденциальной информации и соблюдения внутренней политики.

Во время живой демонстрации Майк Чемберс сымитировал попытку пользователя узнать свой внутренний системный идентификатор `customer_id`. Интегрированный Guardrail мгновенно перехватил запрос и заблокировал выдачу информации, вернув стандартный безопасный отказ, несмотря на настойчивые повторные просьбы пользователя.

## 📚 Управление знаниями с помощью Knowledge Bases (RAG)
[[JUMP:50:54]]

Для предоставления агенту доступа к актуальным внутренним документам компании без постоянного переобучения модели применяется встроенный компонент **Knowledge Bases**. Данная технология автоматизирует построение архитектуры RAG, которая стала индустриальным стандартом.

В качестве хранилища исходных текстовых документов или инструкций выступают корзины Amazon S3. Роль векторной базы данных выполняет бессерверная коллекция Amazon OpenSearch Serverless. Bedrock Knowledge Base полностью берет на себя рутинные процессы:

* Автоматическое разбиение документов на смысловые фрагменты (chunking).
* Преобразование текста в векторные представления (embeddings) с помощью специализированных моделей.
* Индексацию и сохранение векторов в OpenSearch.

Агент Bedrock связывается с базой знаний и автоматически извлекает релебэк-контекст при поступлении сложных вопросов о продуктах. Спикер отметил, что реализация RAG-архитектуры через консоль или API Bedrock сводится буквально к трем кликам, полностью изолируя разработчика от ручной настройки векторных индексов и алгоритмов поиска.

## 🚀 Эволюция архитектуры: модели Nova и инлайн-агенты
[[JUMP:54:27]]

В заключительной части доклада Майк Чемберс представил новейшие технологические изменения, анонсированные на ежегодной конференции AWS re:Invent в Лас-Вегасе. Ключевым событием стал выпуск обновленного семейства собственных моделей AWS — **Amazon Nova** (включая модификации Micro, Light и Pro). По оценке спикера, эти модели демонстрируют высочайшую ценовую эффективность (price-performance) и относятся к высшему тиру современных ИИ-решений, показывая отличные результаты на бенчмарках.

Параллельно был представлен революционный инструмент для разработчиков — **Inline Agents** (инлайн-агенты). Традиционный подход требует жесткого развертывания агента в облаке, создания версий и управления их инфраструктурой, что замедляет итерации. Технология Inline Agents позволяет описать всю конфигурацию агента и структуру его инструментов в виде обычного словаря данных Python в локальном коде и немедленно вызвать исполнение через метод `invoke_inline_agent` runtime-клиента.

Такой подход дает разработчикам принципиально новые возможности:

* **Максимальная скорость отладки**: изменения в конфигурации или промптах тестируются мгновенно без деплоя в облако.
* **Динамические агенты**: инструкции, системные роли и доступные инструменты можно генерировать программно на лету под конкретного пользователя или контекст.
* **Локальное выполнение инструментов**: используя механизм Return Control вместо Lambda-функций, агент на основе анализа Bedrock возвращает клиенту структурированный JSON с указанием, какую функцию выполнить, и приложение запускает код локально или внутри долгоживущего контейнера.

В качестве примера использования Return Control для долгоживущих процессов Чемберс привел личный шуточный проект — ИИ-агента, запущенного в контейнере, который поддерживает игровое состояние и играет с ним в Minecraft.