AI Agents Platform via kagent, agentgateway
Introduction
엔터프라이즈 환경에서의 AI Agent 운영은 다음의 요구사항을 만족해야 합니다:
- 접근성: 내부 서비스, Kubernetes 리소스 등의 엔터프라이즈 자원에 안정적으로 접근
- 통제성: 자격 증명, 승인된 도구, 정책, 감사 로그 관리
- 지속성: 사용자 세션과 무관하게 Agent가 계속 실행
- 공유성: 팀과 시스템이 공통으로 접근 가능
핵심은 "Agent를 만들 수 있는가"가 아닌 "Agent를 운영 가능한 시스템으로 만들 수 있는가"입니다.
kagent와 agentgateway는 Kubernetes 맥락에서의 해결책입니다.
kagent: Agent와 MCP를 포함한 tool을 Kubernetes에서 운영 가능한 리소스로 만드는 플랫폼
agentgateway: Runtime Agent 트래픽을 통제 가능한 구조로 만드는 게이트웨이
AI Agent 요구사항: kagent, agentgateway features
Kubernetes 기반 서비스 운영 모델과의 정합성
- Kubernetes 네이티브 운영: 스케줄링, 확장, 격리, 네트워킹, 정책 적용
- 선언형 배포/수명주기 관리: Kubernetes/GitOps 친화적 모델
kagent, agentgateway는 위 요구사항에 공통으로 대응합니다.
AI Agent 플랫폼 전용 요구사항
kagent가 대응하는 요구사항
- 다수 Agent의 일관된 운영 관리: 동일한 방식으로 배포, 갱신, 권한 부여, 정책 적용, 관측
- 선언형부터 BYO까지의 Agent 작성 모델: prompt 기반 선언부터 사용자 코드/프레임워크 가져오기까지 지원
- 멀티 Agent 협업/위임 모델: 여러 Agent 간의 역할 분담 및 호출
- 상태 지속성/장기 실행 내구성: 세션 상태, task 상태, 재시도, 복구 지원
- 재사용 가능한 tool 제공 모델: MCP/Tool Server를 공용 서비스로 분리
- Human-in-the-loop 실행 제어: 승인, 보류, 재개 등의 개입 가능
- Agent 행동 통제 및 관찰성, 감사: tool, prompt, context, memory/state 사용의 정책 기반 제어
agentgateway가 대응하는 요구사항
- A2A/MCP/LLM 통합 접근 계층: Agent-to-Agent, Agent-to-Tool, Agent-to-LLM 호출 중재
- MCP 세션 상태의 연속성 보장: client-facing 세션과 backend MCP server 세션 간의 상태 연속성
- MCP server 통합/Multiplexing: 다중 MCP server의 tool 목록 통합, 이름 충돌 회피, target별 라우팅
- 인증/인가 및 정책 거버넌스: namespace 단위 데이터 경계, Gateway/Route별 정책, 권한 위임, Secret 관리
- 관찰성 및 감사: Agent와 tool, LLM 호출 추적 가능성
- 프롬프트/응답 수준의 런타임 통제: guardrail을 통한 mask/reject 기능
kagent, agentgateway 기반 AI Agent 플랫폼 Architecture
graph TD
User((<b>User / Operator</b>))
KagentCLI["<b>kagent CLI</b><br/><i>Client</i>"]
LLM["<b>LLM</b><br/>(ChatGPT, Gemini, Claude, etc.)"]
subgraph K8s["Kubernetes Cluster"]
direction TB
AGController["<b>agentgateway-controller</b><br/><i>1 Deployment</i>"]
KagentUI["<b>kagent-ui</b><br/><i>1 Deployment</i>"]
subgraph KagentCPGroup[" "]
direction TB
KagentCtrl["<b>kagent-controller</b><br/><i>1 Deployment</i>"]
KMCP["<b>kmcp-controller</b><br/><i>1 Deployment</i>"]
end
Agent["<b>Agent</b><br/><i>1..N Deployments</i>"]
MCPServer["<b>MCP / Tool Server</b><br/><i>1..N Deployments</i>"]
AG["<b>agentgateway</b><br/><i>1..N Deployments</i><br/><i>(one per Gateway)</i>"]
Service["<b>Service</b><br/><i>Workloads</i>"]
end
KagentUI <-->|User Interaction / Manage| KagentCPGroup
KagentCLI <-->|User Interaction / Manage| KagentCPGroup
KagentCtrl -->|Tool Discovery| MCPServer
KagentCtrl <-->|User Interaction / Manage| Agent
AGController -.->|Program Config / Policy| AG
KMCP -.->|Manage| MCPServer
User -->|User Interaction| KagentCLI
User -->|User Interaction| KagentUI
Agent <-->|A2A / MCP / LLM Traffic| AG
AG -->|Routing / Policy Enforcement| MCPServer
AG -->|Unified API / Guardrail| LLM
MCPServer -->|API Call| Service
컴포넌트 간 통신 프로토콜
| 통신 유형 | 설명 | 프로토콜 |
|---|---|---|
| User Interaction | 사용자 상호작용 | A2A, HTTP API |
| Manage | 운영자 리소스 관리 | Kubernetes API, CRDs, Gateway API |
| Tool Discovery | MCP 도구 메타데이터 수집 | streamable HTTP, SSE |
| Program Config / Policy | control plane → data plane 배포 | xDS |
| A2A / MCP / LLM Traffic | runtime bizlogic 트래픽 | A2A, MCP, LLM API |
| Routing / Policy Enforcement | 게이트웨이 인라인 처리 | MCP over HTTP, SSE |
| Unified API / Guardrail | LLM 요청/응답 처리 | OpenAI-compatible API |
| API Call | backend 서비스 호출 | HTTP/HTTPS |
컴포넌트 설명
Client / Interface Layer
| 컴포넌트 | 배포 형태 | 역할 |
|---|---|---|
| kagent CLI | External Client | Agent 호출과 관리 작업의 진입점 |
| kagent-ui | 1 Deployment | 브라우저 기반 사용자/운영자 인터페이스 |
Controller Layer
| 컴포넌트 | 배포 형태 | 역할 |
|---|---|---|
| kagent-controller | 1 Deployment | Agent, MCP Server, ModelConfig 관리. HTTP server로 UI backend, REST API, A2A proxy, MCP proxy 역할 |
| kmcp-controller | 1 Deployment | MCPServer CR을 watch하고 managed MCP server용 Deployment 생성/관리 |
| agentgateway-controller | 1 Deployment | Gateway API 리소스 watch/reconcile. xDS control plane으로 라우팅/정책 배포 |
Gateway Layer
| 컴포넌트 | 배포 형태 | 역할 |
|---|---|---|
| agentgateway | 1..N Deployments | A2A/MCP/LLM traffic 중재, 라우팅, 인증/인가, 정책 집행 |
Agent 실행 구조
모든 Agent는 A2A(over HTTP) Agent로서:
- 클러스터 외부 접근: kagent-controller Service에 노출
- 클러스터 내부 접근: 각 Agent의 Service를 통해 노출
Declarative vs BYO Agents
Declarative:
- 프롬프트, 모델, tool만 지정
- kagent가 ADK runtime 기반 Agent Deployment 생성/관리
BYO (Bring Your Own):
- 기존 agent runtime과 custom container image 활용
- 지원 framework: ADK, LangGraph, CrewAI, OpenAI Agents SDK