Стек для 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 предоставляют инфраструктуру, необходимую для поддержки масштабируемой связи и вычислений агентов. 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-агентов, нам нужен четырехуровневый стек:

  1. Протоколы: A2A и MCP определяют что в связи агентов и использовании инструментов.
  2. Фреймворки: LangGraph, CrewAI и ADK определяют как реализовывать агентов и управлять рабочими процессами.
  3. Инфраструктура обмена сообщениями: Apache Kafka поддерживает поток сообщений и событий между агентами.
  4. Вычисления в реальном времени: Apache Flink поддерживает мышление, обрабатывая и преобразуя потоки данных в реальном времени.

Этот четырехуровневый стек представляет собой новый интернет-стек для AI-агентов, обеспечивающий основу для создания систем, которые не только интеллектуальны, но и ориентированы на сотрудничество, наблюдаемы и готовы к производству.

Переход к подключенной экосистеме агентов

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

A2A и MCP предоставляют протоколы для связи агентов и использования инструментов, а Kafka и Flink предоставляют инфраструктуру для координации в реальном времени, наблюдаемости и отказоустойчивости. Вместе они позволяют перейти от несвязанных демонстраций агентов к масштабируемым интеллектуальным экосистемам производственного уровня.

Речь идет не только о решении инженерных задач, но и о создании нового типа программного обеспечения, в котором агенты сотрудничают за пределами границ, обеспечивая понимание и поток действий в режиме реального времени и позволяя интеллекту стать распределенной системой.

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

  • Может ли он общаться с другими агентами?
  • Может ли он координировать свои действия с другими?
  • Может ли он развиваться и адаптироваться к меняющимся обстоятельствам?

Будущее не просто управляется агентами; оно подключено к агентам.