Новый стек для AI агентов: A2A, MCP, Kafka и Flink
Интернет развивается. Мы переходим от сети, предназначенной для просмотра веб-страниц людьми, к инфраструктуре, которая поддерживает автономных агентов, сотрудничающих между системами. Эта новая парадигма требует принципиально иного стека, основанного на открытых компонентах, которые облегчают бесперебойную связь, использование инструментов и обработку в реальном времени.
В основе этого развивающегося стека лежат четыре ключевые технологии:
- Agent2Agent (A2A): разработанный Google, A2A - это протокол, который позволяет агентам обнаруживать и взаимодействовать друг с другом. Он предоставляет стандартизированный способ для агентов объявлять о своих возможностях, обмениваться задачами и передавать обновления.
- Model Context Protocol (MCP): разработанный Anthropic, MCP - это стандарт для использования инструментов и внешнего контекста. Он определяет, как агенты могут получать доступ и использовать внешние API и инструменты, что позволяет им взаимодействовать с реальным миром.
- Apache Kafka: распределенная платформа потоковой передачи событий, которая действует как центральная нервная система для связи между агентами. Kafka предоставляет надежный и масштабируемый способ координации взаимодействия между агентами.
- Apache Flink: механизм обработки в реальном времени, который обогащает, отслеживает и воздействует на потоки активности агентов. Flink позволяет агентам реагировать в режиме реального времени на события, принимать решения и координировать сложные рабочие процессы.
Проблема фрагментированных экосистем агентов
В настоящее время разработка AI-агентов сталкивается со значительными проблемами, связанными с фрагментацией и отсутствием функциональной совместимости. Эти проблемы препятствуют созданию надежных и масштабируемых систем AI:
- Изолированные агенты: агенты часто работают изолированно, не имея возможности общаться или обмениваться информацией. Например, агент CRM может не знать о информации, обнаруженной агентом хранилища данных, что приводит к упущенным возможностям и неэффективности.
- Хрупкое использование инструментов: без стандартизированных протоколов для вызова инструментов и API агенты полагаются на жестко запрограммированные интеграции, которые трудно поддерживать и повторно использовать. Это ограничивает их способность адаптироваться к меняющимся условиям и интегрироваться с новыми системами.
- Непоследовательные фреймворки: в различных средах выполнения агентов используются разные модели, в которых агенты рассматриваются как чат-боты, ориентированные ациклические графы (DAG) или рекурсивные планировщики. Это отсутствие согласованности затрудняет создание переносимых и совместимых агентов.
- Разработка, ориентированная на прототипы: многие агенты разрабатываются как одноразовые прототипы, не обладающие надежностью и масштабируемостью, необходимыми для реальных развертываний. Они часто не решают такие важные вопросы, как повторные попытки, сбои, координация, ведение журнала и масштабирование.
- Отсутствие основы для сотрудничества: отсутствие центральной шины событий, общей памяти или отслеживаемой истории действий агентов препятствует сотрудничеству и координации. Информация часто оказывается в ловушке прямых HTTP-вызовов или похоронена в журналах, что затрудняет понимание и отладку поведения агентов.
Решение заключается не в объединении всех агентов в монолитную платформу, а в создании общего стека на основе открытых протоколов, архитектуры, управляемой событиями, и обработки в реальном времени. Такой подход способствует функциональной совместимости, масштабируемости и отказоустойчивости.
Agent2Agent: Стандартизация коммуникации между агентами
Протокол A2A от Google - важный шаг на пути к решению проблемы взаимодействия агентов. Он предоставляет универсальный протокол для подключения агентов, независимо от их происхождения или среды выполнения. Определяя общий язык для агентов, A2A позволяет им:
- Объявлять о возможностях: агенты могут объявлять о своих возможностях через
AgentCard
, JSON-дескриптор, который указывает, что может делать агент и как с ним взаимодействовать. Это позволяет другим агентам обнаруживать и использовать их сервисы. - Обмениваться задачами: A2A облегчает структурированное взаимодействие между агентами через JSON-RPC, где один агент запрашивает помощь у другого и получает результаты или артефакты в ответ. Это позволяет агентам сотрудничать в решении сложных задач.
- Потоковая передача обновлений: агенты могут передавать обратную связь в режиме реального времени во время длительных или совместных задач, используя server-sent events (SSE). Это обеспечивает прозрачность и позволяет агентам отслеживать прогресс и реагировать на изменения.
- Обмен богатым контентом: A2A поддерживает обмен файлами, структурированными данными и формами, а не только простым текстом. Это позволяет агентам обмениваться сложной информацией и сотрудничать в решении более широкого круга задач.
- Обеспечение безопасности: A2A включает встроенную поддержку HTTPS, аутентификации и разрешений, обеспечивая безопасную связь между агентами. Это имеет решающее значение для защиты конфиденциальных данных и предотвращения несанкционированного доступа.
Model Context Protocol: Обеспечение использования инструментов и контекстной осведомленности
MCP от Anthropic дополняет A2A, стандартизируя способы использования агентами инструментов и доступа к внешнему контексту. Он определяет, как агенты могут вызывать API, вызывать функции и интегрироваться с внешними системами, позволяя им взаимодействовать с реальным миром.
В то время как A2A фокусируется на том, как агенты общаются друг с другом, MCP фокусируется на том, как агенты взаимодействуют со своей средой. Вместе эти два протокола обеспечивают всесторонний план для подключенной экосистемы агентов:
- MCP расширяет возможности интеллекта отдельного агента, предоставляя доступ к инструментам и информации.
- A2A обеспечивает коллективный интеллект, облегчая общение и сотрудничество между агентами.
Необходимость надежной инфраструктуры связи
Представьте себе компанию, в которой сотрудники могут общаться только посредством прямых, личных сообщений. Обмен обновлениями потребует отправки сообщений каждому человеку в отдельности, а координация проектов между несколькими командами потребует ручной передачи информации между группами. По мере роста компании такой подход становится все более хаотичным и неустойчивым.
Аналогичным образом, экосистемы агентов, построенные на прямых соединениях, становятся хрупкими и их трудно масштабировать. Каждый агент должен знать, с кем разговаривать, как с ними связаться и когда они доступны. По мере увеличения числа агентов число необходимых подключений растет в геометрической прогрессии, что делает систему неуправляемой.
A2A и MCP предоставляют агентам язык и структуру для общения и действий, но одного языка недостаточно. Для координации большого количества агентов в масштабах предприятия необходима надежная инфраструктура для управления потоком сообщений и реакциями агентов.
Apache Kafka и Apache Flink: основа координации агентов
Apache Kafka и Apache Flink предоставляют инфраструктуру, необходимую для поддержки масштабируемой связи и вычислений агентов. Kafka действует как распределенная платформа потоковой передачи событий, а Flink - как механизм обработки потоков в реальном времени.
Kafka, первоначально разработанный в LinkedIn, служит надежной высокопроизводительной шиной сообщений, позволяющей системам публиковать и подписываться на потоки событий в режиме реального времени. Он отделяет производителей от потребителей и гарантирует, что данные являются устойчивыми, воспроизводимыми и масштабируемыми. Kafka широко используется в различных приложениях, от финансовых систем до обнаружения мошенничества и конвейеров телеметрии.
Flink, также проект Apache, предназначен для обработки событий с сохранением состояния, высокой пропускной способностью и низкой задержкой. В то время как Kafka обрабатывает перемещение данных, Flink обрабатывает преобразование, обогащение, мониторинг и оркестровку этих данных по мере их прохождения через систему.
Вместе Kafka и Flink образуют мощную комбинацию: Kafka - это кровоток, а Flink - рефлекторная система. Они обеспечивают основу для построения масштабируемых и отказоустойчивых экосистем агентов.
Подобно тому, как A2A становится HTTP мира агентов, Kafka и Flink образуют основу, управляемую событиями, которая может поддерживать масштабируемую связь и вычисления агентов. Они решают проблемы, которые не может решить прямая связь «точка-точка»:
- Развязка: с Kafka агентам не нужно знать, кто будет потреблять их выходные данные. Они публикуют события (например,
"TaskCompleted"
,"InsightGenerated"
) в тему, и любой заинтересованный агент или система могут подписаться. - Наблюдаемость и воспроизводимость: Kafka ведет надежный, упорядоченный по времени журнал каждого события, что делает поведение агента полностью отслеживаемым, проверяемым и воспроизводимым.
- Принятие решений в реальном времени: Flink позволяет агентам реагировать в режиме реального времени на потоки событий, фильтруя, обогащая, объединяя или инициируя действия на основе динамических условий.
- Устойчивость и масштабирование: задания Flink могут масштабироваться независимо, восстанавливаться после сбоев и поддерживать состояние в рамках длительных рабочих процессов. Это необходимо для агентов, которые выполняют сложные многоэтапные задачи.
- Координация, основанная на потоковой передаче: вместо ожидания синхронного ответа агенты могут координировать свои действия через потоки событий, публикуя обновления, подписываясь на рабочие процессы и совместно продвигая состояние.
В итоге:
- A2A определяет, как говорят агенты.
- MCP определяет, как они действуют на внешние инструменты.
- Kafka определяет, как передаются их сообщения.
- Flink определяет, как эти потоки обрабатываются, преобразуются и превращаются в решения.
Четырехуровневый стек для AI-агентов корпоративного класса
Протоколы, такие как A2A и MCP, необходимы для стандартизации поведения и связи агентов. Однако без управляемой событиями основы, такой как Kafka, и среды выполнения, основанной на потоковой передаче, такой как Flink, эти агенты остаются изолированными, неспособными гибко координировать свои действия, масштабироваться или рассуждать с течением времени.
Чтобы в полной мере реализовать концепцию корпоративных, совместимых AI-агентов, нам нужен четырехуровневый стек:
- Протоколы: A2A и MCP определяют что в связи агентов и использовании инструментов.
- Фреймворки: LangGraph, CrewAI и ADK определяют как реализовывать агентов и управлять рабочими процессами.
- Инфраструктура обмена сообщениями: Apache Kafka поддерживает поток сообщений и событий между агентами.
- Вычисления в реальном времени: Apache Flink поддерживает мышление, обрабатывая и преобразуя потоки данных в реальном времени.
Этот четырехуровневый стек представляет собой новый интернет-стек для AI-агентов, обеспечивающий основу для создания систем, которые не только интеллектуальны, но и ориентированы на сотрудничество, наблюдаемы и готовы к производству.
Переход к подключенной экосистеме агентов
Мы находимся в поворотном моменте в эволюции программного обеспечения. Подобно тому, как исходный интернет-стек открыл новую эру глобальной связи, для AI-агентов появляется новый стек. Этот стек создан для автономных систем, работающих вместе для рассуждения, принятия решений и действий.
A2A и MCP предоставляют протоколы для связи агентов и использования инструментов, а Kafka и Flink предоставляют инфраструктуру для координации в реальном времени, наблюдаемости и отказоустойчивости. Вместе они позволяют перейти от несвязанных демонстраций агентов к масштабируемым интеллектуальным экосистемам производственного уровня.
Речь идет не только о решении инженерных задач, но и о создании нового типа программного обеспечения, в котором агенты сотрудничают за пределами границ, обеспечивая понимание и поток действий в режиме реального времени и позволяя интеллекту стать распределенной системой.
Чтобы реализовать это видение, мы должны строить открыто, функционально совместимо и с учетом уроков последней интернет-революции. В следующий раз, когда вы будете создавать агента, не спрашивайте только, что он может делать. Спросите, как он вписывается в более крупную систему:
- Может ли он общаться с другими агентами?
- Может ли он координировать свои действия с другими?
- Может ли он развиваться и адаптироваться к меняющимся обстоятельствам?
Будущее не просто управляется агентами; оно подключено к агентам.