인터넷은 진화하고 있습니다. 우리는 인간의 웹 브라우징을 위해 설계된 네트워크를 넘어 시스템 간에 협업하는 자율 에이전트를 지원하는 인프라로 나아가고 있습니다. 이 새로운 패러다임은 원활한 통신, 도구 활용 및 실시간 처리를 용이하게 하는 개방형 구성 요소를 기반으로 하는 근본적으로 다른 스택을 필요로 합니다.
이러한 새로운 스택의 핵심에는 다음과 같은 네 가지 주요 기술이 있습니다.
- Agent2Agent (A2A): Google에서 개발한 A2A는 에이전트가 서로를 검색하고 통신할 수 있도록 하는 프로토콜입니다. 에이전트가 기능을 알리고, 작업을 교환하고, 업데이트를 스트리밍할 수 있는 표준화된 방법을 제공합니다.
- Model Context Protocol (MCP): Anthropic에서 개척한 MCP는 도구 사용 및 외부 컨텍스트를 위한 표준입니다. 에이전트가 외부 API 및 도구에 액세스하고 활용할 수 있는 방법을 정의하여 실제 세계와 상호 작용할 수 있도록 합니다.
- Apache Kafka: 에이전트 통신을 위한 중앙 신경계 역할을 하는 분산 이벤트 스트리밍 플랫폼입니다. Kafka는 에이전트 간의 상호 작용을 조정하는 안정적이고 확장 가능한 방법을 제공합니다.
- Apache Flink: 에이전트 활동 스트림을 풍부하게 하고, 모니터링하고, 이에 따라 작동하는 실시간 처리 엔진입니다. Flink는 에이전트가 이벤트에 실시간으로 반응하고, 결정을 내리고, 복잡한 워크플로를 조정할 수 있도록 합니다.
파편화된 에이전트 생태계의 과제
현재 AI 에이전트 개발은 파편화 및 상호 운용성 부족과 관련된 심각한 문제에 직면해 있습니다. 이러한 문제는 강력하고 확장 가능한 AI 시스템의 생성을 방해합니다.
- 고립된 에이전트: 에이전트는 종종 사일로에서 작동하며 통신하거나 정보를 공유할 수 없습니다. 예를 들어 CRM 에이전트는 데이터 웨어하우스 에이전트가 발견한 통찰력을 알지 못할 수 있으므로 기회를 놓치고 비효율성이 발생합니다.
- 취약한 도구 사용: 도구 및 API를 호출하기 위한 표준화된 프로토콜이 없으면 에이전트는 유지 관리 및 재사용이 어려운 하드 코딩된 통합에 의존합니다. 이로 인해 변화하는 환경에 적응하고 새로운 시스템과 통합하는 능력이 제한됩니다.
- 일관성 없는 프레임워크: 다양한 에이전트 런타임은 다양한 모델을 사용하고 에이전트를 챗봇, 방향성 비순환 그래프(DAG) 또는 재귀적 플래너로 취급합니다. 이러한 일관성 부족으로 인해 이식 가능하고 상호 운용 가능한 에이전트를 만들기가 어렵습니다.
- 프로토타입 중심 개발: 많은 에이전트가 일회성 프로토타입으로 설계되어 실제 배포에 필요한 견고성과 확장성이 부족합니다. 재시도, 오류, 조정, 로깅 및 확장과 같은 중요한 문제를 해결하지 못하는 경우가 많습니다.
- 협업 백본 부족: 중앙 이벤트 버스, 공유 메모리 또는 에이전트 활동의 추적 가능한 기록이 없으면 협업과 조정이 방해받습니다. 정보는 종종 직접 HTTP 호출에 갇히거나 로그에 묻혀 에이전트 동작을 이해하고 디버그하기 어렵게 만듭니다.
해결책은 모든 에이전트를 단일 플랫폼으로 통합하는 것이 아니라 개방형 프로토콜, 이벤트 중심 아키텍처 및 실시간 처리를 기반으로 하는 공유 스택을 구축하는 데 있습니다. 이 접근 방식은 상호 운용성, 확장성 및 복원력을 촉진합니다.
Agent2Agent: 에이전트 통신 표준화
Google의 A2A 프로토콜은 에이전트 상호 운용성 문제를 해결하기 위한 중요한 단계입니다. 출처나 런타임 환경에 관계없이 에이전트를 연결하기 위한 범용 프로토콜을 제공합니다. A2A는 에이전트에 대한 공유 언어를 정의하여 다음을 가능하게 합니다.
- 기능 광고: 에이전트는
AgentCard
를 통해 기능을 알릴 수 있습니다.AgentCard
는 에이전트가 수행할 수 있는 작업과 상호 작용 방법을 지정하는 JSON 설명자입니다. 이를 통해 다른 에이전트가 해당 서비스를 검색하고 활용할 수 있습니다. - 작업 교환: A2A는 한 에이전트가 다른 에이전트의 도움을 요청하고 응답으로 결과 또는 아티팩트를 받는 JSON-RPC를 통해 에이전트 간의 구조화된 상호 작용을 촉진합니다. 이를 통해 에이전트가 복잡한 작업에 대해 협업할 수 있습니다.
- 업데이트 스트리밍: 에이전트는 서버 전송 이벤트(SSE)를 사용하여 장기 실행 또는 협업 작업 중에 실시간 피드백을 스트리밍할 수 있습니다. 이는 투명성을 제공하고 에이전트가 진행 상황을 모니터링하고 변경 사항에 대응할 수 있도록 합니다.
- 풍부한 콘텐츠 교환: A2A는 일반 텍스트뿐만 아니라 파일, 구조화된 데이터 및 양식의 교환을 지원합니다. 이를 통해 에이전트는 복잡한 정보를 공유하고 더 광범위한 작업에 대해 협업할 수 있습니다.
- 보안 보장: A2A는 HTTPS, 인증 및 권한에 대한 기본 지원을 통합하여 에이전트 간의 안전한 통신을 보장합니다. 이는 중요한 데이터를 보호하고 무단 액세스를 방지하는 데 매우 중요합니다.
모델 컨텍스트 프로토콜: 도구 사용 및 상황 인식 활성화
Anthropic의 MCP는 에이전트가 도구를 사용하고 외부 컨텍스트에 액세스하는 방법을 표준화하여 A2A를 보완합니다. 에이전트가 API를 호출하고, 함수를 호출하고, 외부 시스템과 통합할 수 있는 방법을 정의하여 실제 세계와 상호 작용할 수 있도록 합니다.
A2A는 에이전트가 서로 통신하는 방법에 중점을 두는 반면, MCP는 에이전트가 환경과 상호 작용하는 방법에 중점을 둡니다. 함께 이러한 두 프로토콜은 연결된 에이전트 생태계에 대한 포괄적인 청사진을 제공합니다.
- MCP는 도구 및 정보에 대한 액세스를 제공하여 개별 에이전트 인텔리전스를 강화합니다.
- A2A는 에이전트 간의 통신 및 협업을 촉진하여 집단 지능을 활성화합니다.
강력한 통신 인프라의 필요성
직원이 직접적인 일대일 메시지를 통해서만 통신할 수 있는 회사를 상상해 보십시오. 업데이트를 공유하려면 각 사람에게 개별적으로 메시지를 보내야 하고, 여러 팀 간의 프로젝트를 조정하려면 그룹 간에 정보를 수동으로 전달해야 합니다. 회사가 성장함에 따라 이 접근 방식은 점점 더 혼란스럽고 지속 불가능해집니다.
마찬가지로 직접 연결을 기반으로 구축된 에이전트 생태계는 취약해지고 확장하기 어려워집니다. 각 에이전트는 누구와 대화해야 하는지, 연락 방법 및 사용 가능한 시간을 알아야 합니다. 에이전트 수가 증가함에 따라 필요한 연결 수가 기하급수적으로 증가하여 시스템을 관리할 수 없게 됩니다.
A2A 및 MCP는 에이전트에 통신하고 행동할 수 있는 언어와 구조를 제공하지만 언어만으로는 충분하지 않습니다. 엔터프라이즈 전체에서 많은 수의 에이전트를 조정하려면 메시지 흐름과 에이전트 반응을 관리하는 강력한 인프라가 필요합니다.
Apache Kafka 및 Apache Flink: 에이전트 조정의 백본
Apache Kafka 및 Apache Flink는 확장 가능한 에이전트 통신 및 계산을 지원하는 데 필요한 인프라를 제공합니다. Kafka는 분산 이벤트 스트리밍 플랫폼으로 작동하는 반면, Flink는 실시간 스트림 처리 엔진입니다.
원래 LinkedIn에서 개발된 Kafka는 내구성이 뛰어나고 높은 처리량의 메시지 버스 역할을 하여 시스템이 이벤트 스트림을 실시간으로 게시하고 구독할 수 있도록 합니다. 생산자와 소비자를 분리하고 데이터가 내구성이 뛰어나고 재생 가능하며 확장 가능하도록 보장합니다. Kafka는 금융 시스템에서 사기 탐지, 텔레메트리 파이프라인에 이르기까지 다양한 애플리케이션에서 널리 사용됩니다.
또한 Apache 프로젝트인 Flink는 상태 저장, 높은 처리량, 짧은 대기 시간 이벤트 처리를 위해 설계되었습니다. Kafka는 데이터 이동을 처리하는 반면, Flink는 시스템을 통해 데이터가 흐를 때 해당 데이터의 변환, 강화, 모니터링 및 오케스트레이션을 처리합니다.
함께 Kafka와 Flink는 강력한 조합을 형성합니다. Kafka는 혈류이고 Flink는 반사 시스템입니다. 확장 가능하고 탄력적인 에이전트 생태계를 구축하기 위한 기반을 제공합니다.
A2A가 에이전트 세계의 HTTP로 부상하고 있는 것처럼 Kafka와 Flink는 확장 가능한 에이전트 통신 및 계산을 지원할 수 있는 이벤트 중심 기반을 형성합니다. 직접적인 지점 간 통신으로는 해결할 수 없는 문제를 해결합니다.
- 분리: Kafka를 사용하면 에이전트는 누가 출력을 소비할지 알 필요가 없습니다.
"TaskCompleted"
,"InsightGenerated"
와 같은 이벤트를 토픽에 게시하고 관심 있는 에이전트 또는 시스템은 구독할 수 있습니다. - 관찰 가능성 및 재생 가능성: Kafka는 모든 이벤트의 내구성이 뛰어나고 시간 순서대로 정렬된 로그를 유지 관리하여 에이전트 동작을 완전히 추적 가능하고 감사 가능하며 재생 가능하게 만듭니다.
- 실시간 의사 결정: Flink는 에이전트가 이벤트 스트림에 실시간으로 반응하고, 필터링하고, 보강하고, 조인하거나, 동적 조건을 기반으로 작업을 트리거할 수 있도록 합니다.
- 복원력 및 확장: Flink 작업은 독립적으로 확장하고, 오류에서 복구하고, 장기 실행 워크플로에서 상태를 유지 관리할 수 있습니다. 이는 복잡한 다단계 작업을 수행하는 에이전트에 필수적입니다.
- 스트림 네이티브 조정: 동기식 응답을 기다리는 대신 에이전트는 이벤트 스트림을 통해 조정하고, 업데이트를 게시하고, 워크플로를 구독하고, 상태를 공동으로 진행할 수 있습니다.
요약하면 다음과 같습니다.
- A2A는 에이전트가 말하는 방법을 정의합니다.
- MCP는 외부 도구에 대한 작업 방법을 정의합니다.
- Kafka는 메시지 흐름 방식을 정의합니다.
- Flink는 해당 흐름이 처리, 변환되고 의사 결정으로 바뀌는 방식을 정의합니다.
엔터프라이즈급 AI 에이전트를 위한 4계층 스택
A2A 및 MCP와 같은 프로토콜은 에이전트 동작 및 통신을 표준화하는 데 필수적입니다. 그러나 Kafka와 같은 이벤트 중심 서브스트레이트와 Flink와 같은 스트림 네이티브 런타임이 없으면 이러한 에이전트는 격리되어 유연하게 조정하고, 원활하게 확장하거나, 시간에 따라 추론할 수 없습니다.
엔터프라이즈급의 상호 운용 가능한 AI 에이전트의 비전을 완전히 실현하려면 4계층 스택이 필요합니다.
- 프로토콜: A2A 및 MCP는 에이전트 통신 및 도구 사용의 무엇을 정의합니다.
- 프레임워크: LangGraph, CrewAI 및 ADK는 에이전트 구현 및 워크플로 관리의 방법을 정의합니다.
- 메시징 인프라: Apache Kafka는 에이전트 간의 메시지 및 이벤트의 흐름을 지원합니다.
- 실시간 계산: Apache Flink는 실시간으로 데이터 스트림을 처리하고 변환하여 생각을 지원합니다.
이 4계층 스택은 AI 에이전트를 위한 새로운 인터넷 스택을 나타내며 지능적일 뿐만 아니라 협업적이고 관찰 가능하며 생산 준비가 된 시스템을 구축하기 위한 기반을 제공합니다.
연결된 에이전트 생태계를 향해 나아가기
우리는 소프트웨어 진화의 중요한 순간에 있습니다. 원래 인터넷 스택이 새로운 글로벌 연결 시대를 열었던 것처럼 AI 에이전트를 위한 새로운 스택이 등장하고 있습니다. 이 스택은 추론, 결정 및 행동을 위해 함께 작동하는 자율 시스템을 위해 구축되었습니다.
A2A 및 MCP는 에이전트 통신 및 도구 사용을 위한 프로토콜을 제공하고 Kafka 및 Flink는 실시간 조정, 관찰 가능성 및 복원력을 위한 인프라를 제공합니다. 함께 연결이 끊긴 에이전트 데모에서 확장 가능하고 지능적인 생산 등급 생태계로 이동할 수 있습니다.
이것은 엔지니어링 문제를 해결하는 것뿐만 아니라 에이전트가 경계를 넘어 협업하고, 통찰력과 행동 흐름을 실시간으로 제공하고, 지능이 분산 시스템이 될 수 있도록 하는 새로운 종류의 소프트웨어를 활성화하는 것입니다.
이 비전을 실현하려면 개방적이고 상호 운용 가능하며 지난 인터넷 혁명의 교훈을 염두에 두고 구축해야 합니다. 다음에 에이전트를 구축할 때는 에이전트가 무엇을 할 수 있는지 묻지 마십시오. 더 큰 시스템에 어떻게 적합한지 질문하십시오.
- 다른 에이전트와 통신할 수 있습니까?
- 다른 에이전트와 행동을 조정할 수 있습니까?
- 변화하는 상황에 적응하고 진화할 수 있습니까?
미래는 에이전트가 구동하는 것뿐만 아니라 에이전트가 연결된 것입니다.