Anthropic은 11월 12일에 Self-hosted Claude Managed Agents의 비공개 테스트(Private Test)를 시작했으며, 다운로드는 Anthropic 고객팀을 통해 신청해야 합니다. 가격 책정 및 GA(General Availability) 일정은 아직 공지되지 않았습니다. 기존의 self-hosted sandbox와 비교했을 때 추가된 주요 기능은 서버 측까지 자가 호스팅된다는 점입니다: API, agent loop, 그리고 agents/sessions/세션 기록 저장소 모두 자체 클라우드 계정 또는 데이터 센터에 배치됩니다. 모델 호출은 기본적으로 Claude API를 사용하지만, Bedrock, Google Cloud, Microsoft Foundry 또는 자체 구축 게이트웨이로 변경할 수도 있습니다. 아래 내용은 Claude 플랫폼 문서의 Managed Agents self-hosted 섹션에서 가져온 정보입니다.
컴포넌트:
- cma-server: API 제공, agent loop 실행, 세션 기록 저장소 역할 수행하며, 쉘(shell)이나 파일 도구는 실행하지 않습니다.
- PostgreSQL 16 이상; 데이터베이스를 구성하지 않을 경우 데이터는 메모리에만 존재하며 재시작 시 손실됩니다.
- worker: ant beta:worker 또는 SDK worker이며, 서버에 작업을 폴링하고 샌드박스 내에서 bash 및 파일 도구를 실행합니다.
- cma-server-admin: 환경(environment)과 환경 키(environment key)를 생성합니다.
- 세 가지 자격 증명: server API key (애플리케이션 및 ant CLI 사용, 관리형 Claude API key와 동일), inference credential (서버 측에서만 사용), environment key (worker 사용).
추론 백엔드는 inference.provider에 의해 결정되며, anthropic(기본값), bedrock, vertex, foundry, gateway를 선택할 수 있습니다. anthropic이 아닌 값을 사용할 경우, 서버는 ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, ANTHROPIC_BASE_URL을 무시합니다.
관리형 버전과의 차이점:
self_hosted 유형의 환경만 클라우드 환경 요청 시 400 응답을 반환합니다.
- Messages API와 Models API를 제공하지 않으며, /v1/messages 및 /v1/models는 404를 반환합니다.
- Files API와 파일 리소스를 지원하지 않습니다. 이미지나 PDF는 메시지에 base64로 포함해야 합니다.
memory_store 리소스는 사용 가능합니다.
- mcp_oauth 유형의 vault 자격 증명은 지원하지 않으며, static_bearer를 사용하고 만료 전에 수동으로 업데이트해야 합니다.
- 사전 설치된 docx/pdf/pptx/xlsx 스킬(skills)은 거부되며, 커스텀 스킬로 업로드하려면 anthropics/skills 저장소에서 소스 코드를 가져와야 합니다.
- 예약 배포(scheduled deployments), dreams, 웹훅(webhooks) 기능이 없습니다. 예약 작업은 자체 cron을 사용하여 세션을 시작해야 합니다.
- web_search 및 web_fetch는 기본적으로 비활성화되어 있으며, 설정에서
web_tools.enabled: true로 설정해야 합니다. web_search는 anthropic, vertex, foundry 환경에서만 사용 가능하며, web_fetch는 anthropic, foundry 환경에서만 사용 가능합니다. 다른 백엔드에서도 에이전트를 저장할 수는 있지만, 이 두 도구를 호출할 수 없으며 오류도 발생하지 않습니다.
- inference_geo는 anthropic 환경에서만 유효하며, 다른 백엔드는 해당 필드가 설정된 에이전트 저장을 거부합니다.
- anthropic 백엔드는 기본적으로 서버 측 폴백(server-side fallback)을 활성화하여 안전 분류기가 거부할 경우 다른 Claude 모델이 응답할 수 있으나, 이에 대한 이벤트 알림은 없습니다. 이를 비활성화하려면
inference.model_fallback: false로 설정해야 합니다.
- 관리형 버전의 데이터는 마이그레이션되지 않습니다. 에이전트, 스킬, vault 자격 증명, memory store 등은 자체 구축 서버에서 재구축해야 합니다.
- 자체 구축 전용 기능: OIDC 싱글 사인온(Single Sign-On), vault 키를 외부 비밀 관리자(secret manager)에 저장하는 기능, MCP 호출을 위해 단기 토큰을 발급하는 에이전트 ID가 있습니다.
로컬 테스트(Docker Compose, 개발 전용):
- 호스트는 최소 2개의 CPU가 필요하며, .env 파일에 CMA_PG_PASSWORD, ANTHROPIC_API_KEY, CMA_SERVER__API_KEY, CMA_STORE__CREDENTIALS_ENCRYPTION_KEY를 작성합니다.
docker compose up --build -d를 실행합니다. 준비 상태 확인 경로는 /cma-server/readyz, 포트는 8400이며 평문 HTTP입니다. Docker Engine 28.3.3 이전 버전의 경우, 로컬 네트워크 내 다른 기기에서도 해당 포트에 접근할 수 있습니다.
ant CLI에서 ANTHROPIC_BASE_URL을 로컬 8400으로 지정하고, ANTHROPIC_API_KEY를 서버 API 키로 설정합니다. 이 터미널에서는 docker compose up을 실행하지 마십시오. 그렇지 않으면 서버가 모델 요청을 자신에게 보내게 됩니다.
- 기본적으로 10개의 워커(worker)가 있으며, 각 컨테이너는 동시에 하나의 세션만 실행합니다. 메시지를 받지 못한 세션은 최대 1시간 동안 워커를 점유하며, 포화 상태가 되면 다른 세션의 도구 호출이 대기열에 쌓입니다.
운영 환경에서는 공식적으로 배포 패키지에 포함된 두 개의 Helm 차트(chart)를 사용하여 Kubernetes에 배포할 것을 권장합니다.
보안 경계: bash 도구는 워커 프로세스 권한으로 실행되는 실제 셸(shell)입니다. 워커 자체는 격리되지 않으며, 격리는 컨테이너 또는 Pod에 의존합니다. 모델 호출 시마다 현재까지의 전체 대화 내용(도구 입력 및 결과 포함)이 추론 백엔드(inference backend)로 전송됩니다. 백엔드가 Claude API인 경우, 세션(session), 에이전트(agent), 환경(environment) ID가 추가적으로 첨부됩니다.