Разработчики, использующие агентов на Amazon Bedrock AgentCore, теперь могут автоматизировать процесс оценки их производительности в рамках конвейеров непрерывной интеграции и непрерывной доставки (CI/CD). Новое решение, интегрированное с GitHub Actions, позволяет развертывать агента с инструментами MCP на основе ролей, оценивать его поведение и автоматически блокировать запросы на слияние (PR), если оценки качества снижаются. Это предотвращает попадание регрессий в производственную среду. В основе решения лежит GitHub Actions, который развертывает агента в среде выполнения AgentCore и оценивает его с помощью API AgentCore Evaluate, используя оценочные запросы. Если производительность агента ухудшается, PR отклоняется. Решение охватывает полный стек: агент Strands, подключающийся к серверу MCP с контролем доступа на основе ролей, общий пул Cognito для аутентификации M2M и пользовательских потоков, инфраструктуру как код на CDK и унифицированный скрипт оценки. Полная эталонная реализация доступна в сопутствующем репозитории.
Ключевые концепции и компоненты
AgentCore runtime — это управляемая платформа для хостинга ИИ-агентов, обеспечивающая масштабирование, изоляцию сессий и управление инфраструктурой. AgentCore Evaluations, часть Amazon Bedrock AgentCore, оценивает поведение агентов, используя большую языковую модель (LLM) в качестве судьи. Она анализирует трассировки OpenTelemetry из Amazon CloudWatch и выставляет оценки по таким параметрам, как полезность, корректность и точность выбора инструментов.
MCP (Model Context Protocol) — это открытый протокол, который агенты используют для вызова внешних инструментов через стандартизированный интерфейс. Сервер MCP предоставляет инструменты, которые агент обнаруживает и вызывает. AgentCore runtime может размещать серверы MCP и подключать к ним агентов. OpenID Connect (OIDC) federation позволяет GitHub Actions принимать роль AWS Identity and Access Management (AWS IAM) без хранения долгосрочных учетных данных, используя короткоживущие токены.
Ворота качества (Quality Gate) — это шаблон CI/CD, при котором шаг конвейера должен пройти пороговое значение, прежде чем сборка сможет продолжить работу. В данном случае оценки агента должны соответствовать минимальному порогу (например, 0.8 из 1.0), иначе PR остается заблокированным. Это важно, поскольку без автоматизированной оценки качество агента остается субъективным, и регрессии могут быть обнаружены только после жалоб пользователей.
Проблема и ее решение
Основная проблема заключается в том, что при изменении системного промпта, модели или конфигурации инструментов необходимо знать, улучшился или ухудшился агент. Ручное тестирование не масштабируется. Требуется автоматизированная оценка в CI, которая включает автоматическое развертывание агента в среде разработки, вызов его с репрезентативными промптами, оценку ответов и блокировку слияния при снижении качества.
Усложнение возникает, когда сервер MCP использует OAuth с контролем доступа на основе ролей. Конвейеры CI не имеют пользовательского контекста. Возникает вопрос, как аутентифицировать безголовый конвейер против агента, защищенного OAuth, который пересылает токены на сервер MCP, ожидающий пользовательских ролей. AgentCore Evaluations решает эту проблему, предоставляя слой измерения качества в платформе Amazon Bedrock AgentCore.
Механизмы оценки AgentCore
AgentCore Evaluations работает совместно с AgentCore runtime, который хостит агента, и AgentCore Observability, которая собирает трассировки, завершая цикл сборки → развертывания → наблюдения → оценки. Сервис оценивает взаимодействия агентов, используя LLM в качестве судьи по умолчанию, с возможностью оценки на основе кода через AWS Lambda. Он работает с трассировками OpenTelemetry, которые агент уже генерирует через AgentCore Observability.
Доступны три режима оценки: оценка по запросу (on-demand evaluation) для конкретных сессий, используемая для ворот качества CI/CD; онлайн-оценка (online evaluation) для непрерывного мониторинга производственного трафика; и пакетная оценка (batch evaluation) для измерения базовых показателей и регрессионного тестирования. API Evaluate принимает данные трассировки OpenTelemetry (sessionSpans) и возвращает структурированные оценки. Каждый вызов evaluate() должен содержать трассировки только из одной сессии.
Типы оценщиков
Встроенные оценщики охватывают общие параметры качества, такие как полезность, корректность, уровень успешности цели, точность выбора инструмента и точность параметров инструмента. Они работают на уровне сессии, трассировки и вызова инструмента. Три оценщика траектории (TrajectoryExactOrderMatch, TrajectoryInOrderMatch, TrajectoryAnyOrderMatch) сравнивают фактические последовательности вызовов инструментов с ожидаемыми траекториями.
Пользовательские оценщики используют собственные промпты LLM-as-a-judge для специфической для домена оценки. Поля "ground truth" (expectedResponse, assertions, expectedTrajectory) доступны в качестве заполнителей в промптах пользовательских оценщиков. Оценщики на основе кода запускают функцию Lambda для каждой трассировки или сессии и возвращают оценку, метку и объяснение, рассчитанные пользовательской реализацией. Они используются для детерминированных проверок, таких как сопоставление регулярных выражений, проверка схемы или наличие ключевых слов без затрат на LLM.
Сторонние оценщики из библиотек DeepEval и AutoEval управляются сервисом как встроенные оценщики. Можно выбрать один по ID без необходимости настройки модели или конфигурации. Также можно создать пользовательский оценщик на основе встроенного или стороннего оценщика для выполнения его логики на собственной модели.
Архитектура решения
Конвейер развертывает две среды выполнения AgentCore за общим пулом пользователей Cognito. Одна среда выполнения AgentCore предназначена для агента Strands, а другая — для сервера MCP. Единый пул пользователей Cognito обслуживает два потока аутентификации: M2M (для конвейеров CI) с использованием client_credentials и пользовательский (интерактивный) с использованием authorization_code. Для M2M доступны все инструменты без проверки ролей, а для пользователей — инструменты с контролем доступа на основе ролей.
Конвейер GitHub Actions развертывает стек агента в среде разработки, получает токен JWT из предоставленного экземпляра Cognito для аутентификации вызовов API, вызывает агента с набором данных для оценки и анализирует сгенерированные трассировки в Amazon CloudWatch Logs для оценки производительности по отношению к определенным порогам. Он автоматически одобряет или блокирует запрос на слияние (PR) в зависимости от результатов оценки.
Источник: Artificial Intelligence







































