인공지능의 풍경은 거대한 아키텍처적 변화를 겪고 있습니다. 생성형 AI의 초기에는 모델과의 상호작용이 종종 일시적이고 상태 비저장 함수 호출로 여겨졌습니다. 즉, 약 50밀리초 동안 실행되고 종료되는 요청이었습니다.
오늘날, 세계는 AI v1을 잡아먹는 AI v2를 목격하고 있습니다. 생태계는 짧게 지속되는 고립된 작업에서 벗어나, 여러 개의 조율된 AI 에이전트를 지속적으로 배포하는 방향으로 나아가고 있습니다. 이러한 자율 에이전트들은 맥락을 유지하고, 외부 도구를 사용하며, 코드를 작성하고 실행하고, 장기간 서로 통신해야 합니다.
플랫폼 엔지니어링 팀이 이러한 새로운 AI 워크로드를 호스팅할 적절한 인프라를 찾을 때, 쿠버네티스는 당연한 선택으로 돋보입니다. 하지만 이러한 독특한 에이전트 워크로드를 전통적인 쿠버네티스 프리미티브에 매핑하려면 새로운 추상화가 필요합니다.
이 지점에서 새로운 Agent Sandbox 프로젝트(현재 SIG Apps에서 개발 중)가 등장합니다.
쿠버네티스의 장점 (및 추상화 간극)
쿠버네티스는 확장성, 강력한 네트워킹, 그리고 성숙한 생태계의 문제를 해결하기 때문에 클라우드 네이티브 애플리케이션 오케스트레이션의 사실상의 표준입니다. 하지만 AI가 단기 추론 요청에서 장기 실행 자율 에이전트로 발전함에 따라 새로운 운영 패턴이 나타나고 있습니다.
대조적으로 AI 에이전트는 일반적으로 격리된, 상태를 가지는, 단일(singleton) 워크로드입니다. 이는 LLM을 위한 디지털 작업 공간 또는 실행 환경 역할을 합니다. 에이전트는 영구적인 식별자와 (종종 신뢰할 수 없는) 코드를 작성하고 실행하기 위한 보안 스크래치패드가 필요합니다. 결정적으로, 이러한 장기 실행 에이전트들은 짧은 활동 버스트를 제외하고는 대부분 유휴 상태일 것으로 예상되므로, 일시 중단 및 빠른 재개와 같은 메커니즘을 지원하는 라이프사이클이 필요합니다.
이론적으로는 각 에이전트마다 크기 1의 StatefulSet, 헤드리스 서비스, PersistentVolumeClaim을 엮어서 유사하게 구현할 수 있지만, 이를 대규모로 관리하는 것은 운영상의 악몽이 됩니다.
이러한 고유한 특성 때문에 전통적인 쿠버네티스 프리미티브는 완벽하게 들어맞지 않습니다.
쿠버네티스 Agent Sandbox 소개
이러한 간극을 메우기 위해 SIG Apps는 agent-sandbox를 개발하고 있습니다. 이 프로젝트는 AI 에이전트 런타임과 같은 단일, 상태 저장 워크로드를 위해 특별히 맞춤화된 선언적이고 표준화된 API를 도입합니다.
본질적으로 이 프로젝트는 Sandbox CRD를 도입합니다. 이는 쿠버네티스 프리미티브를 기반으로 구축된 경량의 단일 컨테이너 환경으로, 다음을 제공합니다:
- 신뢰할 수 없는 코드에 대한 강력한 격리: AI 에이전트가 코드를 자율적으로 생성하고 실행할 때 보안이 최우선입니다. Sandbox 커스텀 리소스는 gVisor 또는 Kata Containers와 같은 다양한 런타임을 기본적으로 지원합니다. 이는 다중 테넌트, 신뢰할 수 없는 실행에 필요한 커널 및 네트워크 격리를 제공합니다.
- 라이프사이클 관리: 안정적이고 상태 비저장 트래픽에 최적화된 전통적인 웹 서버와 달리, AI 에이전트는 작업 사이에 몇 시간 동안 유휴 상태일 수 있는 상태 저장 작업 공간으로 작동합니다. Agent Sandbox는 이러한 유휴 환경을 0으로 스케일링하여 리소스를 절약하고, 중단된 지점부터 정확히 재개할 수 있도록 보장합니다.
- 안정적인 식별: 조율된 다중 에이전트 시스템은 안정적인 네트워킹을 필요로 합니다. 모든 Sandbox는 안정적인 호스트 이름과 네트워크 식별자를 가지므로, 고유한 에이전트들이 서로를 원활하게 검색하고 통신할 수 있습니다.
확장 기능으로 에이전트 스케일링
AI 분야가 믿을 수 없을 정도로 빠르게 변화하고 있기 때문에, 우리는 훨씬 더 빠른 반복 및 개발을 가능하게 하는 확장 API 계층을 구축했습니다.
새 파드를 시작하는 데 약 1초의 오버헤드가 발생합니다. 이는 마이크로서비스의 새 버전을 배포할 때는 전혀 문제가 되지 않지만, 에이전트가 유휴 상태에서 호출될 때 1초의 콜드 스타트는 상호작용의 연속성을 깨뜨립니다. 이는 사용자 또는 오케스트레이션 서비스가 모델이 생각하거나 행동을 시작하기 전에 환경이 프로비저닝될 때까지 기다리도록 강요합니다. SandboxWarmPool은 미리 프로비저닝된 Sandbox 파드 풀을 유지하여 이 문제를 해결하고, 콜드 스타트를 효과적으로 제거합니다. 사용자 또는 오케스트레이션 서비스는 SandboxTemplate에 대해 SandboxClaim을 발행하기만 하면 컨트롤러가 예열된, 완전히 격리된 환경을 즉시 에이전트에 넘겨줍니다.
빠른 시작
직접 시도해 볼 준비가 되셨습니까? 선택한 릴리스를 사용하여 Agent Sandbox 핵심 구성 요소와 확장 기능을 학습 또는 샌드박스 클러스터에 직접 설치할 수 있습니다.
프로젝트가 빠르게 진행되고 있으므로 최신 릴리스를 사용하는 것을 권장합니다.
# "vX.Y.Z"를 다음 릴리스의 특정 버전 태그(예: "v0.1.0")로 대체하십시오.
# https://github.com/kubernetes-sigs/agent-sandbox/releases
export VERSION="vX.Y.Z"
# 핵심 구성 요소를 설치합니다:
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/manifest.yaml
# 확장 구성 요소를 설치합니다 (선택 사항):
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/extensions.yaml
# Python SDK를 설치합니다 (선택 사항):
# 가상 Python 환경을 생성합니다
python3 -m venv .venv
source .venv/bin/activate
# PyPI에서 설치합니다
pip install k8s-agent-sandbox
설치되면 AI 에이전트를 위한 Python SDK를 사용해보거나, 격리된 에이전트 환경을 얼마나 쉽게 스핀업할 수 있는지 확인하기 위해 예제 중 하나를 배포해 볼 수 있습니다.
에이전트의 미래는 클라우드 네이티브입니다
50밀리초의 상태 비저장 작업이든, 몇 주에 걸친 대부분 유휴 상태의 협업 프로세스든, 격리된 상태 저장 싱글톤을 위해 특별히 설계된 프리미티브로 쿠버네티스를 확장하면 클라우드 네이티브 생태계의 모든 강력한 이점을 활용할 수 있습니다.
Agent Sandbox 프로젝트는 오픈 소스이며 커뮤니티 주도형입니다. AI 플랫폼을 구축하거나, 에이전트 프레임워크를 개발하거나, 쿠버네티스 확장성에 관심이 있다면 참여를 부탁드립니다.
- GitHub에서 프로젝트 확인: kubernetes-sigs/agent-sandbox
- 쿠버네티스 Slack의 #sig-apps 및 #agent-sandbox 채널에서 토론에 참여하세요.