Архитектура за AI агенти: A2A, MCP, Kafka, Flink

Дигиталният пейзаж се развива отвъд човеко-ориентираното уеб сърфиране към сфера на автономни агенти, които си сътрудничат безпроблемно в различни системи. Тази промяна налага нова инфраструктура и се оформя завладяващо решение, състоящо се от четири ключови компонента с отворен код.

  • Agent2Agent (A2A) от Google: Протокол, предназначен да улесни откриването и взаимодействието на агенти.
  • Model Context Protocol (MCP) от Anthropic: Стандарт, определящ как агентите използват инструменти и външни контекстуални данни.
  • Apache Kafka: Надежден комуникационен гръбнак, управляван от събития, позволяващ надеждна и разделена координация.
  • Apache Flink: Двигател за обработка в реално време, жизненоважен за обогатяване, наблюдение и действие върху потоци от дейности на агенти.

Тази статия изследва синергичните връзки между тези технологии, подчертавайки ограниченията на разчитането единствено на протоколи и демонстрирайки как тази архитектура полага основата за преход от изолирани ботове към динамични, интелигентни екосистеми от агенти.

Очакваното разпространение на AI агенти в организациите предполага, че повечето компании ще внедрят множество специализирани агенти, а не един всеобхватен. Тези агенти ще автоматизират задачи като генериране на код, управление на заявки за поддръжка, анализ на данни за клиенти, въвеждане на служители и наблюдение на инфраструктурата.

Съществуващите инструменти обаче са неадекватни за поддържане на такова бъдеще.

Предизвикателството се простира отвъд проблема с “остров на агенти”, където агентите функционират в силози и нямат комуникационни възможности. То обхваща по-обширна фрагментация на екосистемата:

  • Липса на комуникация между агенти: Агентите обикновено работят в изолирани среди. Агентът за управление на взаимоотношенията с клиенти (CRM) не е наясно с прозренията, получени от агент на хранилище за данни. Агентът за поддръжка не може да отговори на аномалии, открити от агент за наблюдение.
  • Крехко и персонализирано използване на инструменти: Без стандартизирани методи за достъп до инструменти или външни програмни интерфейси (API), агентите разчитат на хардкодирани интеграции и неизползваем логика.
  • Несъвместими рамки: Различните среди за изпълнение на агенти използват различни модели, третирайки агентите като чатботове, насочени ациклични графи (DAG) или рекурсивни плановици. Това води до липса на преносим слой за изпълнение или споделено състояние.
  • Дизайн, фокусиран върху среди на преносими компютри: Много агенти са разработени като еднократни прототипи, характеризиращи се с линейни, синхронни и ефимерни операции. Реалните системи обаче изискват стабилна обработка на повторни опити, повреди, координация, регистриране и мащабиране, което изисква поддържаща инфраструктура.
  • Липса на съвместен гръбнак: Няма шина за събития, споделена памет или проследима история на дейностите и обосновките на агентите. Информацията е ограничена до директни HTTP повиквания или заровена в регистри.

Както е подчертано от проекта 12-Factor Agents, агентите трябва да се придържат към принципите на облака, проявявайки възможност за наблюдение, свободна свързаност, възпроизводимост и осведоменост за инфраструктурата. За съжаление, по-голямата част са конструирани като крехки скриптове, сглобени ръчно и се предполага, че работят независимо.

Това води до неефективност, дублиране на усилия и крехкост.

Agent2Agent частично адресира този проблем, като предоставя на агентите стандартизиран протокол за откриване и комуникация. Преминаването обаче отвъд повърхностните демонстрации към мащабируемостта и надеждността, изисквани от производствените системи, изисква повече от просто протоколи. Изисква се цялостна инфраструктура.

Настоящата екосистема на агентите отразява ранните етапи на уеб, характеризиращи се с мощни, но изолирани и несъвместими системи. Подобно на ранните предизвикателства, пред които са изправени браузърите, комуникиращи със сървъри без стандартен протокол, AI агентите днес се борят да откриват, комуникират и си сътрудничат ефективно помежду си.

Agent2Agent (A2A) на Google: Универсален протокол за комуникация на агенти

A2A протоколът на Google е значителен опит да се реши този проблем. Той се отличава с това, че не е друга рамка на агент, а по-скоро универсален протокол, предназначен да свързва всеки агент, независимо от неговия произход или среда на разполагане.

Аналогично на това как HTTP стандартизира комуникацията на уебсайтове, A2A определя общ език за агентите, позволявайки им да:

  • Обявяват възможности: Чрез AgentCard, JSON дескриптор, който очертава възможностите на агента и методите на взаимодействие.
  • Изпращане и получаване на задачи: Чрез структурирани взаимодействия, използващи JSON-RPC, където един агент иска помощ, а друг отговаря с резултати или “артефакти”.
  • Поточни актуализации със Server-Sent Events (SSE): Улесняване на обратната връзка в реално време по време на продължителни или съвместни задачи.
  • Обмен на богато съдържание: Поддръжка на обмена на файлове, структурирани данни и формуляри, отвъд обикновения текст.
  • Поддържане на сигурност по подразбиране: Включване на вградена поддръжка за HTTPS, удостоверяване и разрешения.

Силата на A2A се крие в избягването на преоткриването на установени решения. Той използва добре установени уеб стандарти, подобни на HTTP и SMTP, улеснявайки по-лесното приемане и по-бързата интеграция.

A2A обаче представлява само един аспект от цялостното решение.

Model Context Protocol (MCP) на Anthropic: Стандартизиране на използването на инструменти и достъпа до контекст

MCP на Anthropic разглежда критичния аспект на това как агентите използват инструменти и имат достъп до контекстуална информация. MCP стандартизира процеса, чрез който агентите извикват API, извикват функции и се интегрират с външни системи, като по същество определя как работят в своята среда. Докато A2A управлява комуникацията между агенти, MCP се фокусира върху взаимодействието на агента с външния свят.

По същество:

  • MCP овластява индивидуалния интелект на агента.
  • A2A позволява колективен интелект.

Подобно на това как HTTP и SMTP изискват широко разпространение, инфраструктура и инструменти за разработчици, за да постигнат широко разпространен успех, A2A и MCP ще изискват стабилна екосистема, за да реализират напълно своя потенциал.

Дори и при усилия за стандартизация като A2A и MCP, остава критичен въпрос: Как комуникациите на агентите могат ефективно да се мащабират в сложни и динамични корпоративни среди? Разчитането единствено на директни, точка-до-точка връзки, определени от тези протоколи, въвежда предизвикателства, свързани с мащабируемостта, устойчивостта и възможността за наблюдение. Това подчертава необходимостта от стабилна основна комуникационна инфраструктура.

Помислете за компания, в която служителите могат да комуникират само чрез директни, индивидуални съобщения. Споделянето на актуализация би изисквало съобщения до всеки индивид поотделно. Координирането на проект между множество екипи би включвало ръчно предаване на информация между всяка група.

Мащабирането на такава система до стотици служители би довело до хаос.

Този сценарий отразява предизвикателствата, пред които са изправени в екосистемите на агентите, изградени върху директни връзки. Всеки агент трябва да знае кои агенти да се свърже, как да се свърже с тях и тяхната наличност. С увеличаването на броя на агентите броят на необходимите връзки нараства експоненциално, което води до крехка, трудна за управление и немащабируема система.

A2A и MCP предоставят на агентите езика и структурата за комуникация и действие. Само езикът обаче е недостатъчен. За да координират множество агенти в цялото предприятие, е необходима инфраструктура за управление на потока от съобщения и отговорите на агентите.

Apache Kafka и Apache Flink предоставят тази решаваща инфраструктура.

Apache Kafka, първоначално разработен в LinkedIn и сега проект на Apache Software Foundation, е разпределена платформа за поточно предаване на събития. Той функционира като трайна шина за съобщения с висока пропускателна способност, позволяваща на системите да публикуват и да се абонират за потоци от събития в реално време. Kafka се използва широко в различни приложения, включително финансови системи, откриване на измами и телеметрични тръбопроводи, поради способността си да разделя производителите от потребителите и да гарантира трайност на данните, възможност за повторение и мащабируемост.

Flink, друг проект на Apache, е машина за обработка на потоци в реално време, предназначена за обработка на събития с промяна на състоянието, висока пропускателна способност и ниска латентност. Докато Kafka управлява движението на данни, Flink обработва трансформацията, обогатяването, наблюдението и оркестрацията на данни, докато текат през система.

Заедно Kafka и Flink образуват мощна комбинация. Kafka служи като кръвоносна система, а Flink действа като рефлексна система.

Аналогично на ролята на A2A като HTTP на света на агентите, Kafka и Flink предоставят основа, управлявана от събития, за мащабируема комуникация и изчисление на агенти, справяйки се с предизвикателствата, които директната комуникация от точка до точка не може:

  • Разделяне: С Kafka агентите не трябва да знаят потребителите на своя изход. Те публикуват събития (например "TaskCompleted", "InsightGenerated") в тема, което позволява на всеки заинтересован агент или система да се абонира.
  • Възможност за наблюдение и повторение: Kafka поддържа траен, подреден във времето регистър на всички събития, като гарантира, че поведението на агента е напълно проследимо, проверимо и възпроизводимо.
  • Вземане на решения в реално време: Flink позволява на агентите да реагират в реално време на потоци от събития, филтриране, обогатяване, присъединяване или задействане на действия въз основа на динамични условия.
  • Устойчивост и мащабиране: Задачите на Flink могат да се мащабират независимо, да се възстановяват от повреди и да поддържат състояние в дълготрайни работни процеси, което е от съществено значение за агентите, изпълняващи сложни задачи с много стъпки.
  • Координация на потока: Вместо да чакат синхронни отговори, агентите могат да координират чрез потоци от събития, публикуване на актуализации, абониране за работни процеси и съвместно развитие на състоянието.

В заключение:

  • A2A определя как агентите комуникират.
  • MCP определя как взаимодействат с външни инструменти.
  • Kafka определя как текат техните съобщения.
  • Flink определя как тези потоци се обработват, трансформират и използват за вземане на решения.

Протоколи като A2A и MCP са от решаващо значение за стандартизиране на поведението и комуникацията на агентите. Въпреки това, без подложка, управлявана от събития, като Kafka и среда за изпълнение на потока като Flink, агентите остават изолирани, неспособни да координират ефективно, да се мащабират ефикасно или да разсъждават във времето.

Четирислойна архитектура за AI агенти от корпоративен клас

За да се реализира напълно визията за AI агенти от корпоративен клас, които са оперативно съвместими, е необходима четирислойна архитектура:

  • Протоколи: A2A, MCP – определяне на какво.
  • Рамки: LangGraph, CrewAI, ADK – определяне на как.
  • Инфраструктура за съобщения: Apache Kafka – поддържане на потока.
  • Изчисление в реално време: Apache Flink – поддържане на мисленето.

Заедно тези слоеве образуват новия интернет стек за AI агенти, предоставяйки основа за изграждане на системи, които са не само интелигентни, но и съвместни, наблюдаеми и готови за производство.

В момента сме в решаващ момент от еволюцията на софтуера.

Точно както оригиналният интернет стек – състоящ се от протоколи като HTTP и SMTP и инфраструктура като TCP/IP – въведе ера на глобална свързаност, нов стек се появява за AI агентите. Вместо обаче хора да навигират уеб страници или да изпращат имейли, този стек е проектиран за автономни системи, които си сътрудничат, за да разсъждават, решават и действат.

A2A и MCP предоставят протоколите за комуникация на агенти и използване на инструменти, докато Kafka и Flink предоставят инфраструктурата за координация, възможност за наблюдение и устойчивост в реално време. Заедно те позволяват прехода от несвързани демонстрации на агенти към мащабируеми, интелигентни, екосистеми от производствен клас.

Тази еволюция не е само за справяне с инженерни предизвикателства. Става дума за даване на възможност на нова парадигма на софтуер, където агентите си сътрудничат през граници, предоставяйки прозрения и стимулирайки действия в реално време, като по този начин позволяват на интелигентността да се превърне в разпределена система.

Тази визия обаче изисква активно развитие, като се набляга на отвореността, оперативната съвместимост и използването на уроците, научени от предишната интернет революция.

Следователно, когато разработвате агент, е изключително важно да вземете предвид неговата интеграция в по-широката система. Може ли да комуникира ефективно? Може ли да се координира с други агенти? Може ли да се развива и да се адаптира към променящите се условия?

Бъдещето не е само задвижвано от агенти; то е свързано с агенти.