agentgateway: MCP와 A2A, LLM 트래픽을 하나로 묶는 AI 에이전트용 오픈소스 게이트웨이

agentgateway 소개

AI 에이전트가 실제 업무에 투입되면서, 에이전트는 더 이상 혼자 동작하지 않습니다. 에이전트끼리 작업을 주고받고(agent-to-agent), 내부 시스템이나 도구를 호출하고(agent-to-tool), 외부 LLM에 추론을 요청합니다(agent-to-LLM). 그런데 이 에이전트와 도구들은 서로 다른 프레임워크로 만들어지고 서로 다른 API와 데이터 소스에 접근하기 때문에, 연결 방식이 환경마다 제각각으로 흩어집니다. MCP(Model Context Protocol)와 A2A(Agent-to-Agent) 같은 프로토콜이 통신 규약 자체는 정의하지만, 인증과 권한, 거버넌스, 관측 같은 운영 단계의 문제까지 풀어 주지는 않습니다.

agentgateway는 이 빈틈을 메우기 위해 MCP와 A2A 위에 세워진 오픈소스 프록시입니다. agent-to-LLM, agent-to-tool, agent-to-agent 통신 경로에 보안과 관측, 거버넌스를 별도 코드 수정 없이 더해 주며, 특정 에이전트 프레임워크나 실행 환경에 묶이지 않습니다. Rust로 작성되어 롱리브드 연결과 팬아웃(fan-out) 패턴이 많은 에이전트 트래픽에서도 높은 처리량과 낮은 지연을 내도록 설계되었습니다. 처음에는 Solo.io가 개발했고, 현재는 Linux Foundation 프로젝트로 호스팅되고 있습니다.

agentgateway의 또 다른 축은 하나의 데이터 플레인 으로 일반 API 트래픽과 AI 워크로드를 함께 처리한다는 점입니다. 로드 밸런싱, 타임아웃, 재시도, TLS, 속도 제한, 권한 정책을 갖춘 범용 HTTP·gRPC 데이터 플레인 위에서, 같은 프록시로 LLM 추론과 MCP 도구 서버, A2A 에이전트 트래픽을 함께 다룹니다. 덕분에 "일반" 게이트웨이와 "AI" 게이트웨이를 따로 운영할 필요가 없습니다. 본 게시물에서는 agentgateway가 풀려는 문제와 핵심 기능, 설치 방법을 정리합니다.

agentgateway가 풀려는 문제

agentgateway가 왜 새로 필요한지는 기존 게이트웨이의 전제와 비교하면 분명해집니다. Envoy 같은 전통적인 API 게이트웨이와 리버스 프록시는 RESTful 마이크로서비스 구조에 맞춰 설계되었습니다. 클라이언트가 짧은 HTTP 요청을 보내면 게이트웨이가 백엔드를 골라 전달하고, 그 사이에 유지해야 할 세션이나 연결 상태가 거의 없는 모델입니다.

MCP는 이와 반대로 JSON-RPC 기반의 상태 유지(stateful) 프로토콜입니다. MCP 클라이언트와 서버는 요청과 응답을 계속 주고받는 롱리브드 세션을 유지해야 하고, 모든 요청과 응답이 같은 세션 컨텍스트에 묶여야 합니다. 게다가 MCP 서버는 클라이언트에게 비동기로 먼저 메시지를 보낼 수도 있어, 상태가 있는 세션 전체를 추적하는 일이 까다롭습니다. 사용할 수 있는 도구 목록을 조회하는 단일 요청 하나가 여러 백엔드 MCP 서버에 접근해 응답을 모은 뒤 하나로 합쳐 돌려줘야 하는 경우도 있고, 클라이언트마다 접근 가능한 도구가 다를 수도 있습니다.

이런 세션 인지·메시지 인지는 전통적인 게이트웨이가 설계 단계에서 고려하지 않은 부분이며, 이런 통신 패턴은 자원 소모도 커서 기존 게이트웨이를 빠르게 압박합니다. agentgateway는 이 문제를 핵심 설계 목표로 삼아, MCP와 A2A 통신에 보안·거버넌스·관측을 처음부터 내장한 프록시로 만들어졌습니다.

agentgateway의 핵심 기능

agentgateway는 에이전트 트래픽의 종류별로 게이트웨이 기능을 나눠 제공합니다.

LLM 게이트웨이

OpenAI, Anthropic, Gemini, Bedrock 등 주요 LLM 제공자로 가는 트래픽을 OpenAI 호환 API 하나로 통일해 라우팅합니다. 예산·지출 제어, 프롬프트 보강(prompt enrichment), 로드 밸런싱, 장애 시 페일오버(failover)를 함께 지원합니다. 최근 v1.3에서 추가된 가상 모델(Virtual Models)은 클라이언트에 노출하는 모델 이름 하나를 정해 두고, 그 뒤에서 여러 제공자·모델로 요청을 분산하도록 해 줍니다.

MCP 게이트웨이

LLM을 도구와 외부 데이터 소스에 연결하는 MCP 트래픽을 다룹니다. 여러 백엔드 MCP 서버를 묶는 도구 페더레이션(tool federation), stdio·HTTP·SSE·Streamable HTTP 전송 방식, OpenAPI 통합, OAuth 인증을 지원합니다. 단일 엔드포인트로 여러 MCP 서버를 합치고, 클라이언트별로 노출할 도구 서버를 가상화할 수 있습니다.

A2A 게이트웨이

A2A를 사용한 에이전트 간 통신을 보안이 적용된 상태로 중계합니다. 에이전트의 기능 탐색(capability discovery), 모달리티 협상(modality negotiation), 작업 협업(task collaboration)을 지원합니다.

추론 라우팅

자체 호스팅한 모델로 가는 요청을 Kubernetes Inference Gateway 확장을 이용해 지능적으로 라우팅합니다. GPU 사용률, KV 캐시, LoRA 어댑터, 큐 길이 같은 지표를 보고 라우팅을 결정합니다.

가드레일

정규식, OpenAI moderation, AWS Bedrock Guardrails, Google Model Armor, 커스텀 웹훅을 조합한 다층 콘텐츠 필터링을 제공합니다.

보안과 관측

JWT, API 키, OAuth 인증과 CEL 정책 엔진 기반의 세분화된 RBAC, 속도 제한, TLS를 갖추고 있습니다. 또한 OpenTelemetry 기반의 메트릭·로그·트레이싱으로 에이전트와 도구 사이의 상호작용을 관측할 수 있고, RBAC를 통해 도구 포이즈닝 공격(tool poisoning attack)으로부터 보호하도록 설계되었습니다.

위 그림처럼 agentgateway는 에이전트, CLI·IDE, 사용자에게서 들어오는 트래픽을 받아 보안·관측·거버넌스·복원력·추론 기능을 적용한 뒤, 다른 에이전트와 MCP 서버, LLM, OpenAPI 백엔드, 일반 애플리케이션으로 내보냅니다.

agentgateway의 통합 데이터 플레인과 운영 특징

핵심 게이트웨이 기능 외에도, agentgateway는 운영 환경에서 필요한 특징들을 갖추고 있습니다.

  • 통합 데이터 플레인 : HTTP, gRPC, 에이전트 트래픽을 하나의 게이트웨이로 처리하므로, 마이크로서비스 API와 MCP·A2A·LLM 트래픽을 같은 프록시로 라우팅할 수 있습니다. 기존 REST API를 에이전트가 쓰는 도구로 노출하는 것도 가능합니다.
  • 프레임워크 비종속 : LangGraph, AutoGen, kagent, Claude Desktop, OpenAI SDK 등 MCP와 A2A를 지원하는 모든 에이전트 프레임워크와 함께 동작합니다.
  • 플랫폼 비종속 : 베어메탈, 가상 머신, 컨테이너, Kubernetes 등 어떤 환경에서도 실행됩니다.
  • 자동 프로토콜 업그레이드·폴백 : MCP·A2A 프로토콜이 발전하면서 생기는 버전 차이를, 클라이언트나 서버 장애 없이 협상하고 처리하도록 설계되었습니다.
  • 셀프서비스 포털 : 에이전트와 도구를 연결·탐색·페더레이션·통합·보안 적용할 수 있는 개발자 포털 UI를 내장하고 있습니다.
  • Gateway API 적합성 : Kubernetes Gateway API 프로젝트에 적합(conformant)하여, Gateway API 구현체와 함께 게이트웨이로 사용할 수 있습니다.
  • 무중단 동적 설정 : xDS 인터페이스를 통해 다운타임 없이 설정을 갱신할 수 있습니다.

agentgateway 설치 및 사용법

agentgateway는 단독 바이너리(standalone)로도, Kubernetes 위에서 Gateway API로도 배포할 수 있습니다. 단독 바이너리는 설치 스크립트로 최신 릴리스를 받을 수 있습니다.

curl -sL https://agentgateway.dev/install | bash

특정 버전을 설치하려면 --version 플래그를 사용합니다.

curl -sL https://agentgateway.dev/install | bash -s -- --version 1.3.1

OpenAI로 라우팅하는 가장 단순한 예시는 API 키를 환경 변수로 설정하고 agentgateway를 실행하는 것입니다. 설정 파일 없이 agentgateway 를 실행하면 ~/.config/agentgateway/config.yaml 에 기본 설정을 부트스트랩하고 이를 자동으로 사용합니다.

export OPENAI_API_KEY='<your-api-key>'
agentgateway

실행하면 http://localhost:15000/ui 에서 관리 UI가 열립니다. 이 UI에서 리스너(Listener), 라우트(Route), 백엔드(Backend), 정책(Policy)을 확인하고, 내장 플레이그라운드로 채팅 완성 요청을 직접 보내 볼 수 있습니다.

agentgateway의 라이선스

agentgateway는 Apache 2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:house: agentgateway 공식 홈페이지

:books: agentgateway 문서 사이트

:github: agentgateway 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: