Agent SDK 호스팅

Claude Agent SDK는 대화 상태를 유지하고 지속적인 환경에서 명령을 실행한다는 점에서 기존의 상태 비저장 LLM API와 다릅니다. 이 가이드는 프로덕션에서 SDK 기반 에이전트를 배포하기 위한 아키텍처, 호스팅 고려사항, 그리고 모범 사례를 다룹니다.

SDK 아키텍처 이해하기

장기 실행 프로세스 모델

상태 비저장 API 호출과 달리, Claude Agent SDK는 다음과 같은 장기 실행 프로세스로 작동합니다:
  • 지속적인 셸 환경에서 명령을 실행
  • 작업 디렉토리 내에서 파일 작업을 관리
  • 이전 상호작용의 컨텍스트와 함께 도구 실행을 처리

호스팅 요구사항

컨테이너 기반 샌드박싱

보안과 격리를 위해 SDK는 샌드박스 컨테이너 환경 내에서 실행되어야 합니다. 이는 다음을 제공합니다:
  • 프로세스 격리 - 세션당 별도의 실행 환경
  • 리소스 제한 - CPU, 메모리, 스토리지 제약
  • 네트워크 제어 - 아웃바운드 연결 제한
  • 임시 파일시스템 - 각 세션에 대한 깨끗한 상태

시스템 요구사항

각 SDK 인스턴스는 다음을 필요로 합니다:
  • 런타임 종속성
    • Python 3.10+ (Python SDK용) 또는 Node.js 18+ (TypeScript SDK용)
    • Node.js (Claude Code CLI에서 필요)
    • Claude Code CLI: npm install -g @anthropic-ai/claude-code
  • 리소스 할당
    • 권장사항: 1GiB RAM, 5GiB 디스크, 1 CPU (필요에 따라 작업에 맞게 조정)
  • 네트워크 액세스
    • api.anthropic.com에 대한 아웃바운드 HTTPS
    • 선택사항: MCP 서버 또는 외부 도구에 대한 액세스

샌드박스 제공업체 옵션

여러 제공업체가 AI 코드 실행을 위한 보안 컨테이너 환경을 전문으로 합니다:

프로덕션 배포 패턴

패턴 1: 임시 세션

각 사용자 작업에 대해 새 컨테이너를 생성한 다음 완료되면 삭제합니다. 일회성 작업에 가장 적합하며, 작업이 완료되는 동안 사용자가 여전히 AI와 상호작용할 수 있지만 완료되면 컨테이너가 삭제됩니다. 예시:
  • 버그 조사 및 수정: 관련 컨텍스트로 특정 문제를 디버그하고 해결
  • 인보이스 처리: 회계 시스템을 위해 영수증/인보이스에서 데이터를 추출하고 구조화
  • 번역 작업: 언어 간 문서 또는 콘텐츠 배치 번역
  • 이미지/비디오 처리: 미디어 파일에 변환, 최적화 적용 또는 메타데이터 추출

패턴 2: 장기 실행 세션

장기 실행 작업을 위해 지속적인 컨테이너 인스턴스를 유지합니다. 종종 수요에 따라 컨테이너 내에서 여러 Claude Agent 프로세스를 실행합니다. 사용자 입력 없이 행동을 취하는 능동적 에이전트, 콘텐츠를 제공하는 에이전트 또는 대량의 메시지를 처리하는 에이전트에 가장 적합합니다. 예시:
  • 이메일 에이전트: 수신 이메일을 모니터링하고 콘텐츠에 따라 자율적으로 분류, 응답 또는 조치를 취함
  • 사이트 빌더: 컨테이너 포트를 통해 제공되는 라이브 편집 기능으로 사용자별 맞춤 웹사이트 호스팅
  • 고빈도 채팅봇: 빠른 응답 시간이 중요한 Slack과 같은 플랫폼에서 지속적인 메시지 스트림 처리

패턴 3: 하이브리드 세션

데이터베이스나 SDK의 세션 재개 기능에서 히스토리와 상태로 수화되는 임시 컨테이너입니다. 작업을 시작하는 사용자의 간헐적 상호작용이 있는 컨테이너에 가장 적합하며, 작업이 완료되면 종료되지만 계속될 수 있습니다. 예시:
  • 개인 프로젝트 관리자: 간헐적 체크인으로 진행 중인 프로젝트를 관리하는 데 도움을 주며, 작업, 결정, 진행 상황의 컨텍스트를 유지
  • 심층 연구: 여러 시간에 걸친 연구 작업을 수행하고, 발견사항을 저장하며 사용자가 돌아올 때 조사를 재개
  • 고객 지원 에이전트: 여러 상호작용에 걸친 지원 티켓을 처리하고, 티켓 히스토리와 고객 컨텍스트를 로드

패턴 4: 단일 컨테이너

하나의 글로벌 컨테이너에서 여러 Claude Agent SDK 프로세스를 실행합니다. 서로 밀접하게 협력해야 하는 에이전트에 가장 적합합니다. 에이전트들이 서로를 덮어쓰는 것을 방지해야 하므로 가장 인기가 적은 패턴일 것입니다. 예시:
  • 시뮬레이션: 비디오 게임과 같은 시뮬레이션에서 서로 상호작용하는 에이전트들.

FAQ

샌드박스와 어떻게 통신하나요?

컨테이너에서 호스팅할 때, SDK 인스턴스와 통신하기 위해 포트를 노출합니다. 애플리케이션은 외부 클라이언트를 위한 HTTP/WebSocket 엔드포인트를 노출할 수 있으며, SDK는 컨테이너 내부에서 내부적으로 실행됩니다.

컨테이너 호스팅 비용은 얼마인가요?

에이전트 서비스의 주요 비용은 토큰이며, 컨테이너는 프로비저닝하는 것에 따라 다르지만 최소 비용은 실행 시간당 약 5센트입니다.

유휴 컨테이너를 언제 종료하고 언제 웜 상태로 유지해야 하나요?

이는 제공업체에 따라 달라질 것입니다. 다른 샌드박스 제공업체들은 샌드박스가 종료될 수 있는 유휴 타임아웃에 대해 다른 기준을 설정할 수 있게 해줍니다. 사용자 응답이 얼마나 빈번할 것으로 생각하는지에 따라 이 타임아웃을 조정하고 싶을 것입니다.

Claude Code CLI를 얼마나 자주 업데이트해야 하나요?

Claude Code CLI는 semver로 버전이 관리되므로, 모든 중단 변경사항은 버전이 관리됩니다.

컨테이너 상태와 에이전트 성능을 어떻게 모니터링하나요?

컨테이너는 단순히 서버이므로 백엔드에 사용하는 것과 동일한 로깅 인프라가 컨테이너에도 작동할 것입니다.

에이전트 세션이 타임아웃되기 전에 얼마나 오래 실행될 수 있나요?

에이전트 세션은 타임아웃되지 않지만, Claude가 루프에 갇히는 것을 방지하기 위해 ‘maxTurns’ 속성을 설정하는 것을 권장합니다.

다음 단계